Tuesday, 5 January 2010

CTGDKE039E Error occurred when creating TDI Property store

Finally, having bashed my head against the screen of my Thinkpad repeatedly for the past few days, I've cracked a problem that was baffling me with Tivoli Directory Integrator V6.1.1 FP7.

In short, I have created an Assembly Line that reads from Domino Directory via the LDAP Connector, and only returns users who are members of a specific group. This is to help resolve a problem that I'm seeing at a customer, where they're looking to use group membership to "control" who gets added to the Profiles database within Connections.

The TDI wizard that is supplied with Connections 2.5 is great, but doesn't have that specific tweak, and Domino LDAP doesn't seem to have the equivalent of the memberOf filter that other LDAPs support.

Anyhow, having created my Assembly Line, I was struggling to execute it as a command line ( via a shell script ). It worked perfectly well within the TDI toolkit itself ( /opt/IBM/TDI/V6.1.1/ibmditk ), but not via the command-line interface ( /opt/IBM/TDI/V6.1.1/ibmdisrv ).

The exception that I kept receiving was: -

CTGDKE039E
Error occurred when creating TDI Property store. Property store: Solution-Properties Exception: null
CTGDKE039E
Error occurred when creating TDI Property store. Property store: System-Properties Exception: java.net.ConnectException : Error opening socket to server localhost on port 1527 with message : Connection refused

The port number was niggling me, as I'd seen reference to 1527 before.

After a while it hit me. When I got back off the floor, I remembered .... port 1527 is often used by the Apache Derby database ( fka Cloudscape ).

I checked within my TDI solution directory ( I'm actually running my script from within the Connections Wizard subdirectory ( /root/Wizards/TDIPopulation/TDISOL/linux ) and found a script entitled derby.sh. I executed said script: -

./derby.sh start

and saw the friendly message: -

Server is ready to accept connections on port 1527

Lo and behold, my TDI script now works.

The reason that this was occuring, methinks, is because I'm using an external properties file to configure the TDI Assembly Line to talk to a specific Domino server with a specific search filter and a specific set of credentials. The objective being to allow my customer to change the properties file without needing to change the Assembly Line itself.

Looking at the Assembly Line configuration,I'm guessing that TDI needs to iterate through all available properties: -

Solution-Properties
Global-Properties
Java-Properties
System-Properties

*BEFORE* it gets to my own properties file.

I'll blog my Assembly Line etc. in the next day or so ....

No comments: