Sunday, 30 November 2014

IBM BPM to DB2 - You WILL respect my authority

Can you say "Doh" ? I bet you can.

I'm building a multi-Deployment Environment IBM BPM Advanced 8.5.5 environment today, with one DE hosting Process Center and another DE hosting Process Server. Why, because I can / want to / need to :-)

So I hit this problem AGAIN: -

/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/bootstrapProcessServerData.sh -clusterName AppCluster

Bootstraping data into cluster AppCluster

WASX7357I: By request, this scripting client is not connected to any server process. Certain configuration and application operations will be available in local mode.
java.lang.Exception: java.lang.reflect.InvocationTargetException
at com.ibm.bpm.bootstrap.BootstrapProcessServerDataHelper.loadInstallationGuid(BootstrapProcessServerDataHelper.java:534)

Caused by: java.lang.IllegalStateException: Failed to initialize registry
at com.lombardisoftware.core.Registry.getInstance(Registry.java:116)
at com.lombardisoftware.utility.spring.ProgrammaticTransactionSupport.<clinit>(ProgrammaticTransactionSupport.java:119)

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'handlersMap': Cannot create inner bean 'com.lombardisoftware.server.ejb.persistence.PSDefaultHandler#8d9b870e' of type [com.lombardisoftware.server.ejb.persistence.PSDefaultHandler] while setting bean property 'sourceMap' with key [TypedStringValue: value [Task], target type [null]]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.lombardisoftware.server.ejb.persistence.PSDefaultHandler#8d9b870e' defined in class path resource [registry.persistence.xml]: Cannot resolve reference to bean 'dao.task' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dao.task' defined in class path resource [registry.persistence.xml]: Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError

Yes, that cost me (cough) an hour or so of faffing about, before i re-visited THIS post on MY blog: -


In essence, I was connected from BPM to DB2 using db2user1 which did NOT have adequate permissions to insert/update data inside the tables :-(

db2 grant dbadm on database to user db2user1

at which point everything started working.

To make it even worse, I then hit something very similar with the Support Cluster (SupCluster) which threw these exceptions up: -

SystemOut.log

[29/11/14 09:06:56:427 GMT] 00000001 WsServerImpl  E   WSVR0009E: Error occurred during startup
com.ibm.ws.exception.RuntimeError: Failed to query the BPM version from database [jdbc/PerformanceDB]. Please check the ffdc log for detail information.
For fresh installation scenario, please run the database initialization scripts under the corresponding database schema first; for upgrade or migration scenario, please upgrade your database to match with current product version first.
        at com.ibm.bpm.migration.database.ValidateDatabaseVersion.verifyStandardDB(ValidateDatabaseVersion.java:392)
        at com.ibm.bpm.migration.database.ValidateDatabaseVersion.verifyStandardDB4ND(ValidateDatabaseVersion.java:260)


FFDC Logs

[29/11/14 09:06:56:414 GMT]     FFDC Exception:com.ibm.db2.jcc.am.SqlSyntaxErrorException SourceId:com.ibm.bpm.migration.database.ValidateDatabaseVersion.verifyStandardDB ProbeId:102 Reporter:java.lang.String@7eb4dcd0
com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-551, SQLSTATE=42501, SQLERRMC=DB2USER1;SELECT;DB2USER1.LSW_SYSTEM_SCHEMA, DRIVER=4.11.69

The first set of errors looked the most severe; the second set immediately nailed it - yes, it was the SAME DARN ANSWER :-(

db2 grant dbadm on database to user db2user1

Yes, again, once I changed the grants, everything just magically started working :-)

No comments: