Friday, 12 August 2011

IBM Connections 3.0.1 and IBM Tivoli Directory Integrator 7.0.0.0 - Not playing nicely ...

The title of this post is a plot spoiler as it gives away the solution to the problem that we saw earlier today.

This is with a newly minted IBM Connections 3.0.1 server, where we're using IBM Tivoli Directory Integrator to populate the Profiles database from Microsoft Active Directory 2003.

We're testing with a single user, added into the collect.dns file within the /opt/IBM/TDI/V7.0/tdissol/TDI directory, so we only wanted to run the Assembly Line that pushes users into Profiles (./populate_from_dn_file.sh ).

However, when we ran this script, we saw this exception in the ibmdi.log: -
...
2011-08-11 12:14:58,041 INFO  [TDISOL30] - CTGDIS116I Scripting hook of type prolog0 finished.
2011-08-11 12:14:58,049 ERROR [com.ibm.di.config.interfaces.MetamergeConfigCFG] - CTGDKE225E The evaluation of parameter assemblyLine in Functions/SourceRepositoryLookupFC using expression '{javascript ret.value = lcConf.source_repository_lookup_assemblyline;}' caused an error.
com.ibm.jscript.InterpretException: Script interpreter error, line=2, col=12: Unknown member 'value' in Java class 'com.ibm.di.util.ParameterSubstitution$Parameter'
at com.ibm.jscript.types.JavaAccessObject.put(JavaAccessObject.java:832)
at com.ibm.jscript.types.FBSReferenceByName.putValue(FBSReferenceByName.java:87)
at com.ibm.jscript.ASTTree.ASTAssign.interpret(ASTAssign.java:94)
at com.ibm.jscript.std.FunctionObject._executeFunction(FunctionObject.java:230)
at com.ibm.jscript.std.FunctionObject.executeFunction(FunctionObject.java:162)
at com.ibm.jscript.std.FunctionObject.call(FunctionObject.java:148)
at com.ibm.di.script.ScriptEngine.call(ScriptEngine.java:456)
at com.ibm.di.util.ParameterSubstitution$Parameter.expand(ParameterSubstitution.java:476)
at com.ibm.di.util.ParameterSubstitution.buildArgumentList(ParameterSubstitution.java:377)
at com.ibm.di.util.ParameterSubstitution.substitute(ParameterSubstitution.java:176)
at com.ibm.di.util.ParameterSubstitution.substitute(ParameterSubstitution.java:231)
at com.ibm.di.config.base.BaseConfigurationImpl.expandPropertyValue(BaseConfigurationImpl.java:1090)
at com.ibm.di.config.base.BaseConfigurationImpl.getParameter(BaseConfigurationImpl.java:871)
at com.ibm.di.config.base.BaseConfigurationImpl.getParameter(BaseConfigurationImpl.java:842)
at com.ibm.di.config.base.BaseConfigurationImpl.getParameter(BaseConfigurationImpl.java:875)
at com.ibm.di.config.base.BaseConfigurationImpl.getParameter(BaseConfigurationImpl.java:842)
at com.ibm.di.config.base.BaseConfigurationImpl.getParameter(BaseConfigurationImpl.java:875)
at com.ibm.di.config.base.BaseConfigurationImpl.getParameter(BaseConfigurationImpl.java:842)
at com.ibm.di.config.base.BaseConfigurationImpl.getParameter(BaseConfigurationImpl.java:875)
at com.ibm.di.config.base.BaseConfigurationImpl.getParameter(BaseConfigurationImpl.java:842)
at com.ibm.di.fc.Function.getParam(Function.java:153)
at com.ibm.di.fc.AssemblyLineFC.getTCB(AssemblyLineFC.java:484)
at com.ibm.di.fc.AssemblyLineFC.startInstance(AssemblyLineFC.java:644)
at com.ibm.di.fc.AssemblyLineFC.initialize(AssemblyLineFC.java:552)
at com.ibm.di.server.FunctionComponent.doInitialize(FunctionComponent.java:164)
at com.ibm.di.server.FunctionComponent.initialize(FunctionComponent.java:138)
at com.ibm.di.server.AssemblyLine.initConnectors(AssemblyLine.java:1916)
at com.ibm.di.server.AssemblyLine.msInitConn(AssemblyLine.java:3422)
at com.ibm.di.server.AssemblyLine.executeMainStep(AssemblyLine.java:3239)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:2888)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:2871)
at com.ibm.di.server.AssemblyLine.executeAL(AssemblyLine.java:2838)
at com.ibm.di.server.AssemblyLine.run(AssemblyLine.java:1274)
2011-08-11 12:14:58,049 ERROR [TDISOL30] - CTGDIS266E Error in InitConnectors. Exception occurred: java.lang.ClassCastException: com.ibm.jscript.InterpretException incompatible with java.lang.String 
java.lang.ClassCastException: com.ibm.jscript.InterpretException incompatible with java.lang.String
at com.ibm.di.fc.AssemblyLineFC.getTCB(AssemblyLineFC.java:484)
at com.ibm.di.fc.AssemblyLineFC.startInstance(AssemblyLineFC.java:644)
at com.ibm.di.fc.AssemblyLineFC.initialize(AssemblyLineFC.java:552)
at com.ibm.di.server.FunctionComponent.doInitialize(FunctionComponent.java:164)
at com.ibm.di.server.FunctionComponent.initialize(FunctionComponent.java:138)
at com.ibm.di.server.AssemblyLine.initConnectors(AssemblyLine.java:1916)
at com.ibm.di.server.AssemblyLine.msInitConn(AssemblyLine.java:3422)
at com.ibm.di.server.AssemblyLine.executeMainStep(AssemblyLine.java:3239)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:2888)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:2871)
at com.ibm.di.server.AssemblyLine.executeAL(AssemblyLine.java:2838)
at com.ibm.di.server.AssemblyLine.run(AssemblyLine.java:1274)
2011-08-11 12:14:58,052 INFO  [TDISOL30] - CLFRN0027I: After iteration, success records is 0, duplicate records 0, failure records is 0, last successful entry is null
2011-08-11 12:14:58,054 INFO  [TDISOL30] - CTGDIS100I Printing the Connector statistics.
2011-08-11 12:14:58,055 INFO  [TDISOL30] -  [iterate_over_dns] Not used
2011-08-11 12:14:58,055 INFO  [TDISOL30] -  [PopFromDns_lookup_dn] Errors:1
2011-08-11 12:14:58,055 INFO  [TDISOL30] -  [callSyncDB_mod] Not used
2011-08-11 12:14:58,055 INFO  [TDISOL30] - CTGDIS104I Total: Errors:2.
2011-08-11 12:14:58,055 INFO  [TDISOL30] - CTGDIS101I Finished printing the Connector statistics.
2011-08-11 12:14:58,055 ERROR [TDISOL30] - CTGDIS077I Failed with error: com.ibm.jscript.InterpretException incompatible with java.lang.String.
2011-08-11 12:14:58,055 ERROR [TDISOL30] - CTGDIS078I AssemblyLine AssemblyLines/populate_from_dns_file failed with error: com.ibm.jscript.InterpretException incompatible with java.lang.String.
2011-08-11 12:14:59,618 INFO  [TDISOL30] - CTGDIS037I Server terminates because only main thread is left.
2011-08-11 12:14:59,618 INFO  [TDISOL30] - CTGDIS174I Config Instance TDISOL30 exited with status 0.
2011-08-11 12:14:59,618 INFO  [server] - CTGDIS228I Unregister server: TDISOL30.
2011-08-11 12:14:59,620 INFO  [server] - CTGDIS627I IBM Tivoli Directory Integrator Shutdown.
... 

As you can imagine, this was causing a little frustration - we tried all the usual tricks, including turning off and on again …..

The solution ?

As per the title of this post, for some reason, we'd forgotten to apply the 7.0.0.5 fix pack to IBM Tivoli Directory Integrator.

This was confirmed by the command: -

$  /opt/IBM/TDI/V7.0/bin/applyUpdates.sh

which returned: -

...
Information from .registry file in: /opt/IBM/TDI/V7.0
Edition: Identity
Level: 7.0.0.0
License: None

Fixes Applied
=-=-=-=-=-=-=
None
..

Once we correctly applied the update, the same queryreg command returned: -

Information from .registry file in: /opt/IBM/TDI/V7.0
Edition: Identity
Level: 7.0.0.5
License: None

Fixes Applied
=-=-=-=-=-=-=
TDI-7.0-FP0005 (7.0.0.0)

The moral of the story ? Read my own blog post and then read it again … and again … and again ….

No comments:

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...