Discussion:
LDAP AddOnly - Error 65 - Object Class Violation
(too old to reply)
hak
2009-01-27 21:38:54 UTC
Permalink
Hello!

Thanks everyone for your help thus far.

I'm stuck on a problem now with with an LDAP connector in "AddOnly"
mode.

However, I keep getting the LDAP Error 65 Objectclass Violation
error... See below.

15:36:19 [AddToTAM6LDAP] CTGDIS810E handleException - cannot handle
exception , addonly
javax.naming.directory.SchemaViolationException: [LDAP: error code 65
- Object Class Violation]; remaining name 'uid=testuser,o=demo'
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3031)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2946)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2752)
at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(LdapCtx.java:785)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext
(ComponentDirContext.java:334)
at
com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext
(PartialCompositeDirContext.java:263)
at javax.naming.directory.InitialDirContext.createSubcontext
(InitialDirContext.java:194)
at com.ibm.di.connector.LDAPConnector.putEntry(Unknown Source)
at com.ibm.di.server.AssemblyLineComponent.add1(Unknown Source)
at com.ibm.di.server.AssemblyLineComponent.add(Unknown Source)
at com.ibm.di.server.AssemblyLine.msExecuteNextConnector(Unknown
Source)
at com.ibm.di.server.AssemblyLine.executeMainStep(Unknown Source)
at com.ibm.di.server.AssemblyLine.executeMainLoop(Unknown Source)
at com.ibm.di.server.AssemblyLine.executeMainLoop(Unknown Source)
at com.ibm.di.server.AssemblyLine.executeAL(Unknown Source)
at com.ibm.di.server.AssemblyLine.run(Unknown Source)


I added the"task.dumpEntry(work);" command to my code for debugging
purposes in the "Before Add" Hook, and here is my output:

15:36:19 CTGDIS003I *** Start dumping Entry
15:36:19 Operation: add
15:36:19 Entry attributes:
15:36:19 sn (replace): 'User'
15:36:19 objectclass
(replace): 'top' 'person' 'inetorgperson' 'organizationalperson'
15:36:19 uid (replace): 'testuser'
15:36:19 cn (replace): 'Test User'
15:36:19 CTGDIS004I *** Finished dumping Entry

The objectclasses and schemas are standard out of the box with my IBM
LDAP 5.2 installation.

Am I missing something here????
crawfordm
2009-01-27 21:49:36 UTC
Permalink
Post by hak
Hello!
Thanks everyone for your help thus far.
I'm stuck on a problem now with with an LDAP connector in "AddOnly"
mode.
However, I keep getting the LDAP Error 65 Objectclass Violation
error... See below.
15:36:19  [AddToTAM6LDAP] CTGDIS810E handleException - cannot handle
exception , addonly
javax.naming.directory.SchemaViolationException: [LDAP: error code 65
- Object Class Violation]; remaining name 'uid=testuser,o=demo'
        at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3031)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2946)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2752)
        at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(LdapCtx.java:785)
        at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext
(ComponentDirContext.java:334)
        at
com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext
(PartialCompositeDirContext.java:263)
        at javax.naming.directory.InitialDirContext.createSubcontext
(InitialDirContext.java:194)
        at com.ibm.di.connector.LDAPConnector.putEntry(Unknown Source)
        at com.ibm.di.server.AssemblyLineComponent.add1(Unknown Source)
        at com.ibm.di.server.AssemblyLineComponent.add(Unknown Source)
        at com.ibm.di.server.AssemblyLine.msExecuteNextConnector(Unknown
Source)
        at com.ibm.di.server.AssemblyLine.executeMainStep(Unknown Source)
        at com.ibm.di.server.AssemblyLine.executeMainLoop(Unknown Source)
        at com.ibm.di.server.AssemblyLine.executeMainLoop(Unknown Source)
        at com.ibm.di.server.AssemblyLine.executeAL(Unknown Source)
        at com.ibm.di.server.AssemblyLine.run(Unknown Source)
I added the"task.dumpEntry(work);" command to my code for debugging
15:36:19  CTGDIS003I *** Start dumping Entry
15:36:19        Operation: add
15:36:19                sn (replace):   'User'
15:36:19                objectclass
(replace):      'top'   'person'        'inetorgperson' 'organizationalperson'
15:36:19                uid (replace):  'testuser'
15:36:19                cn (replace):   'Test User'
15:36:19  CTGDIS004I *** Finished dumping Entry
The objectclasses and schemas are standard out of the box with my IBM
LDAP 5.2 installation.
Am I missing something here????
Hi,
the issue is in the LDAP itself is stopping the update. It is probably
that you are trying to add an entry without a required attribute being
present.
If you look in the LDAP error log(ibmslapd.log) and search for the 65
error, you should see the details of the objectclass violation,
including the
attribute that is not present in your IDI.
If its not clear, in the log, look at the LDAP schema definition and
examine the inetorgperson definition for the "required" attributes and
check you
are supplying them all.


Crawford
Eddie Hartman
2009-01-28 08:53:49 UTC
Permalink
In addition to Crawford's suggestion, you could also dump
out the conn Entry in the Before Add Hook (or even easier,
just fire up the Debugger and pause execution at this Hook)

task.dumpEntry(conn);

Just to make sure you have the Attributes you expect. This
will let you know if your Output Map is working correctly.
If not, then make sure the Work Entry has all the Attributes
that the Output Map is referencing.

-Eddie
Post by crawfordm
Post by hak
Hello!
Thanks everyone for your help thus far.
I'm stuck on a problem now with with an LDAP connector in "AddOnly"
mode.
However, I keep getting the LDAP Error 65 Objectclass Violation
error... See below.
15:36:19  [AddToTAM6LDAP] CTGDIS810E handleException - cannot handle
exception , addonly
javax.naming.directory.SchemaViolationException: [LDAP: error code 65
- Object Class Violation]; remaining name 'uid=testuser,o=demo'
        at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3031)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2946)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2752)
        at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(LdapCtx.java:785)
        at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext
(ComponentDirContext.java:334)
        at
com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext
(PartialCompositeDirContext.java:263)
        at javax.naming.directory.InitialDirContext.createSubcontext
(InitialDirContext.java:194)
        at com.ibm.di.connector.LDAPConnector.putEntry(Unknown Source)
        at com.ibm.di.server.AssemblyLineComponent.add1(Unknown Source)
        at com.ibm.di.server.AssemblyLineComponent.add(Unknown Source)
        at com.ibm.di.server.AssemblyLine.msExecuteNextConnector(Unknown
Source)
        at com.ibm.di.server.AssemblyLine.executeMainStep(Unknown Source)
        at com.ibm.di.server.AssemblyLine.executeMainLoop(Unknown Source)
        at com.ibm.di.server.AssemblyLine.executeMainLoop(Unknown Source)
        at com.ibm.di.server.AssemblyLine.executeAL(Unknown Source)
        at com.ibm.di.server.AssemblyLine.run(Unknown Source)
I added the"task.dumpEntry(work);" command to my code for debugging
15:36:19  CTGDIS003I *** Start dumping Entry
15:36:19        Operation: add
15:36:19                sn (replace):   'User'
15:36:19                objectclass
(replace):      'top'   'person'        'inetorgperson' 'organizationalperson'
15:36:19                uid (replace):  'testuser'
15:36:19                cn (replace):   'Test User'
15:36:19  CTGDIS004I *** Finished dumping Entry
The objectclasses and schemas are standard out of the box with my IBM
LDAP 5.2 installation.
Am I missing something here????
Hi,
the issue is in the LDAP itself is stopping the update. It is probably
that you are trying to add an entry without a required attribute being
present.
If you look in the LDAP error log(ibmslapd.log) and search for the 65
error, you should see the details of the objectclass violation,
including the
attribute that is not present in your IDI.
If its not clear, in the log, look at the LDAP schema definition and
examine the inetorgperson definition for the "required" attributes and
check you
are supplying them all.
Crawford
hak
2009-01-28 18:49:37 UTC
Permalink
Post by Eddie Hartman
In addition to Crawford's suggestion, you could also dump
out the conn Entry in the Before Add Hook (or even easier,
just fire up the Debugger and pause execution at this Hook)
    task.dumpEntry(conn);
Just to make sure you have the Attributes you expect. This
will let you know if your Output Map is working correctly.
If not, then make sure the Work Entry has all the Attributes
that the Output Map is referencing.
-Eddie
Post by crawfordm
Post by hak
Hello!
Thanks everyone for your help thus far.
I'm stuck on a problem now with with an LDAP connector in "AddOnly"
mode.
However, I keep getting the LDAP Error 65 Objectclass Violation
error... See below.
15:36:19  [AddToTAM6LDAP] CTGDIS810E handleException - cannot handle
exception , addonly
javax.naming.directory.SchemaViolationException: [LDAP: error code 65
- Object Class Violation]; remaining name 'uid=testuser,o=demo'
        at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3031)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2946)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2752)
        at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(LdapCtx.java:785)
        at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext
(ComponentDirContext.java:334)
        at
com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext
(PartialCompositeDirContext.java:263)
        at javax.naming.directory.InitialDirContext.createSubcontext
(InitialDirContext.java:194)
        at com.ibm.di.connector.LDAPConnector.putEntry(Unknown Source)
        at com.ibm.di.server.AssemblyLineComponent.add1(Unknown Source)
        at com.ibm.di.server.AssemblyLineComponent.add(Unknown Source)
        at com.ibm.di.server.AssemblyLine.msExecuteNextConnector(Unknown
Source)
        at com.ibm.di.server.AssemblyLine.executeMainStep(Unknown Source)
        at com.ibm.di.server.AssemblyLine.executeMainLoop(Unknown Source)
        at com.ibm.di.server.AssemblyLine.executeMainLoop(Unknown Source)
        at com.ibm.di.server.AssemblyLine.executeAL(Unknown Source)
        at com.ibm.di.server.AssemblyLine.run(Unknown Source)
I added the"task.dumpEntry(work);" command to my code for debugging
15:36:19  CTGDIS003I *** Start dumping Entry
15:36:19        Operation: add
15:36:19                sn (replace):   'User'
15:36:19                objectclass
(replace):      'top'   'person'        'inetorgperson' 'organizationalperson'
15:36:19                uid (replace):  'testuser'
15:36:19                cn (replace):   'Test User'
15:36:19  CTGDIS004I *** Finished dumping Entry
The objectclasses and schemas are standard out of the box with my IBM
LDAP 5.2 installation.
Am I missing something here????
Hi,
the issue is in the LDAP itself is stopping the update. It is probably
that you are trying to add an entry without a required attribute being
present.
If you look in the LDAP error log(ibmslapd.log) and search for the 65
error, you should see the details of the objectclass violation,
including the
attribute that is not present in your IDI.
If its not clear, in the log, look at the LDAP schema definition and
examine the inetorgperson definition for the "required" attributes and
check you
are supplying them all.
Crawford
Guys,

Thank you.... Using task.dumpentry(conn) helped me to discover that
none of my attributes were actually ever put on the Output Map.

Therefore, I used the "*" input map from the previous connector to
read EVERYTHING in...

... and then I used conn.removeAttribute("whatever") to remove the
attributes I didn't need.

So I am now able to read changes from an LDAPChangeLog connector and
update a new LDAP server with these changes.

Thanks everyone! This forum is a great resource!

Loading...