Unable to create partition in LDAP ApacheDS

Carla picture Carla · Apr 9, 2016 · Viewed 6.9k times · Source

I'm newbie on LDAP and I'd like to create my first schema using an LDIF file. Here is the first part of the LDIF file:

dn: dc=demo,dc=com
objectclass: top
objectclass: domain
dc: demo

dn: ou=Users,dc=demo,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Users
description: demo.Com Users


dn: uid=bob,ou=Users,dc=demo,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: User Test
sn: Test
displayName: User Test
givenName: User
mail: [email protected]
ou: Users
uid: bob
userPassword:: e1NTSEF9MGhuUjhnWkFNZFpKVUNwZXFwcFEzeUQ2YkJNOTVQUVo4WU9JSUE9P
 Q==

Even if the LDIF declares the top domain "demo.com" the following error is raised:

"Entry dn[n]: dc=demo,dc=com objectclass: top objectclass: domain dc: demo : ERR_268 Cannot find a partition for dc=demo,dc=com]"

On the other hand, creating the partition "demo.com" manually with ApacheDS studio UI (and removing the first dn block) it works. I'm a bit confused! Any help to sort out the problem?

Answer

Guillermo R picture Guillermo R · Apr 11, 2016

Importing your LDIF file into ApacheDS will just create the entries not the partition. Since all your entries have to be stored in a partition you get the below error when the partition doesn't exist:

ERR_268 Cannot find a partition for dc=demo,dc=com

Every partition has a suffix or base DN associated with it which will act as the parent entry for all the other entries stored in the same partition. In your case the suffix will be:

dc=demo,dc=com

Notice that the suffix is also an entry (just like any other entry in your directory).

Creating a new DIT (Directory Information Tree) involves the following steps:

  1. Create a new partition.
  2. Create suffix entry.
  3. Create additional entries.

Some utilities (like Apache Studio) will create the suffix entry automatically when you create the partition (I think that's what's confusing you) but in reality they are two different operations.

You can read more about ApacheDS partitions here.