Tuesday, 3 March 2015

IBM Operational Decision Manager 8.7 - Overcoming an earlier issue with duplicate JDBC data sources

This problem has been nagging me for a few months, since first I installed IBM Operational Decision Manager (ODM) 8.5 for a client.

In brief, I was finding that the following exception: -

 [wsadmin] WASX7017E: Exception received while running file "/opt/ibm/WebSphereProfiles/ODMCell1Dmgr01/bin/rules/configureDSRulesNetworkDeployer.py"; exception information: com.ibm.websphere.management.exception.ConfigServiceException: ADMG0037E: A new instance of the DataSource object cannot be created because the jndiName attribute of an existing DataSource object has the same value as jdbc/resdatasource.

The additional pair of datasources turn up after the WAS profiles are created, and after the node(s) are federated into the cell.

The temporary solution is to delete jdbc/resdatasource ( one for each node ) via ISC *BEFORE* running the configureDSCluster.sh script.

However, I was looking for a more permanent solution, especially as I experienced the same issue with ODM 8.7 today.

I dug around inside IBM Support, and found the solution ...

It was the way that I was building the environment.

Briefly, I was creating the Deployment Manager and Node profiles, using manageprofiles against the profile templates for DM: -

/opt/ibm/WebSphere/AppServer/profileTemplates/rules/management/ds/

and Managed Node: -

/opt/IBM/WebSphere/AppServer/profileTemplates/rules/

This was part of the problem :-)

I need to play with this further, but I was able to overcome the issue by creating "bog standard" profiles for DM and Node, using the out-of-the-box templates, creating the WAS cell ( federating the nodes into the cell ), and then augmenting the Deployment Manager profile with the ODM template.

I'm going to write this up as a separate blog post shortly.

Bottom line, it's all in the profile templates, mate :-)

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="{...