How do I add/configure a partition over the network? Is there an example I can
go off?
When I initialize the partition in the code below, I see the files being
created. However, when I restart my ApacheDS server, and try to add the context
entry, I'm this error seeing:
2014-02-12 13:06:57,741 PartitionCommand [ERROR] Error creating partition:
org.apache.directory.api.ldap.model.exception.LdapNoSuchObjectException:
NO_SUCH_OBJECT: failed for MessageType : ADD_REQUEST
Message ID : 4
Add Request :
Entry
dn[n]: dc= newParition,dc=com
objectClass: top
objectClass: domain
dc: newParition
: ERR_268 Cannot find a partition for dc= newParition,dc=com
When I create a partition through Studio, and restart the server, I see a
partition entry in the config.ldif. I assume I need to create that entry using
the java api? Is there an example on how to do this?
Appreciate the help. Thanks.
From: <Louie>, "Louie, Kenneth W"
<[email protected]<mailto:[email protected]>>
Date: Wednesday, February 12, 2014 10:50 AM
To: "[email protected]<mailto:[email protected]>"
<[email protected]<mailto:[email protected]>>
Subject: Re: Trying to create a partition programmatically - need help
I'm trying to create a new partition on a remote ApacheDS server. I can do it
through the Studio, but I would like to automate this process. Is it possible
to do this programmatically? The examples I see are for an embedded server.
Thanks
From: <Louie>, "Louie, Kenneth W"
<[email protected]<mailto:[email protected]>>
Date: Tuesday, February 11, 2014 1:53 PM
To: "[email protected]<mailto:[email protected]>"
<[email protected]<mailto:[email protected]>>,
"[email protected]<mailto:[email protected]>"
<[email protected]<mailto:[email protected]>>
Subject: Trying to create a partition programmatically - need help
I'm trying to create a partition programatically. I've tried following the
example on the ApacheDS website
(https://directory.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html#adding-a-partition-programmatically)
, but this example is definitely not correct.
Here is my code:
try {
LdapConnection connection = new LdapNetworkConnection(host, port);
connection.bind(admin, password);
log.info("Loading Schema...");
connection.loadSchema();
SchemaManager schemaManager = connection.getSchemaManager();
Dn suffixDn = new Dn(schemaManager, "dc=newParition,dc=com");
log.info("Start to create partition...");
JdbmPartition newPartition = new JdbmPartition(schemaManager);
newPartition.setId("newParition");
newPartition.setSuffixDn(suffixDn);
newPartition.setCacheSize(1000);
newPartition.setPartitionPath(new
URI("file:///var/lib/apacheds-2.0.0-M15/default/partitions/newParition"));
newPartition.addIndex(new JdbmIndex("objectClass", false));
newPartition.addIndex(new JdbmIndex("dc", false));
Entry contextEntry = new DefaultEntry(schemaManager, suffixDn);
contextEntry.put("objectClass", "domain", "top");
contextEntry.put("dc", "newParition");
log.info("Initializing Parition");
newPartition.initialize();
log.info("Adding Entry to Partition");
newPartition.add(new AddOperationContext(null, contextEntry));
} catch (URISyntaxException ex) {
log.error("Error with partition location: " + ex);
} catch (Exception ex) {
log.error("Error creating partition: " + ex);
}
When I run this, I'm seeing:
Error creating partition:
org.apache.directory.api.ldap.model.exception.LdapSchemaViolationException:
ERR_219 Entry dc=newParition,dc=com contains no entryCsn attribute: Entry …
It doesn't even look like the partition is being added to my server (when I
restart my apacheds server, I don't see any new namingContexts under the Root
DSE). I think I'm missing some steps here, but not sure what they are. Can
anyone help me? I'd greatly appreciate it.
Thanks