TIBCO MDM startup fails with JBOSS unable to execute scripts in $MQ_HOME/bin .

TIBCO MDM startup fails with JBOSS unable to execute scripts in $MQ_HOME/bin .

book

Article ID: KB0086501

calendar_today

Updated On:

Products Versions
TIBCO MDM -
Not Applicable -

Description

Description:
TIBCO MDM 8.3.X server fails to start, throwing the error, "java.lang.ClassNotFoundException" on JBOSS when used with EMS 8.0. Also, the following error is thrown while executing different scripts located in the $MQ_HOME/bin directory, such as MigrateRules, topicChat, datacleanup, textIndexMigration, etc. The following exception will be seen in the thread "main" java.lang.NoClassDefFoundError: javax/jms/JMSContext.

Symptoms:
Code: JAV-8001: Unexpected error. Class: 'com.tibco.mdm.infrastructure.globalobj.GlobalObjInitializer' and method name: 'createAndInitObject'. Additional information: java.lang.NoClassDefFoundError: javax/jms/JMSContext.
ID: 0A617962_8AE1F9E23F3CC25E013F3CC25E260000
DATETIME: Thu Jun 13 14:28:58 IST 2013
EXCEPTIONMESSAGE: java.lang.NoClassDefFoundError: javax/jms/JMSContext
STACKTRACE: java.lang.NoClassDefFoundError: javax/jms/JMSContext 
    at com.tibco.mdm.integration.messaging.queue.tibco.TIBCOClusterLiaison.createConnectionFactory(TIBCOClusterLiaison.java:124) 
    at com.tibco.mdm.integration.messaging.queue.MqClusterMgr.createConnectionFactory(MqClusterMgr.java:2348) 
    at com.tibco.mdm.integration.messaging.queue.MqClusterMgr.getConnectionFactory(MqClusterMgr.java:2328) 
    at com.tibco.mdm.integration.messaging.queue.MqClusterMgr.createClusterDefConnection(MqClusterMgr.java:2187) 
    at com.tibco.mdm.integration.messaging.queue.MqClusterMgr.createSharedConnInfo(MqClusterMgr.java:1736) 
    at com.tibco.mdm.integration.messaging.queue.MqClusterMgr.createQueueDefConnRef(MqClusterMgr.java:1676) 
    at com.tibco.mdm.integration.messaging.queue.MqClusterMgr.getConnection(MqClusterMgr.java:500) 
    at com.tibco.mdm.integration.messaging.queue.MqMessageEnqueuer.beginSession(MqMessageEnqueuer.java:371) 
    at com.tibco.mdm.integration.messaging.util.MqMessageSenderManager.init(MqMessageSenderManager.java:646) 
    at com.tibco.mdm.integration.messaging.util.MqMessageSenderManager.init(MqMessageSenderManager.java:74) 
    at com.tibco.mdm.util.InitClassUtil.initObject(InitClassUtil.java:728) 
    at com.tibco.mdm.util.InitClassUtil.createAndInitObject(InitClassUtil.java:556) 
    at com.tibco.mdm.util.InitClassUtil.createAndInitObject(InitClassUtil.java:462) 
    at com.tibco.mdm.infrastructure.globalobj.GlobalObjInitializer.createAndInitObject(GlobalObjInitializer.java:163) 
    at com.tibco.mdm.infrastructure.globalobj.GlobalObjInitializer.init(GlobalObjInitializer.java:72) 
    at com.tibco.mdm.infrastructure.globalobj.MqStartup.__init(MqStartup.java:213) 
    at com.tibco.mdm.infrastructure.globalobj.MqStartup.<init>(MqStartup.java:94) 
    at com.tibco.mdm.infrastructure.globalobj.MqStartup.getInstance(MqStartup.java:276) 
    at com.tibco.mdm.infrastructure.globalobj.MqStartupWrapper.init(MqStartupWrapper.java:56) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:242) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1102) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3655) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3873) 
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:722)
CLASSNAME: com.tibco.mdm.infrastructure.globalobj.GlobalObjInitializer
METHODNAME: createAndInitObject
ERRORMESSAGE: Error initializing global object with properties key prefix: com.tibco.cim.init.AsyncCallQueueSenderManager
<MqException: END>

Cause:
This is a symptom of a JVM not picking up the new jms-2.0.jar file in its classpath. EMS 8.0.0 implements JMS 2.0 and it ships with a new jms-2.0.jar instead of the old jms.jar. Also, while executing scripts in $MQ_HOME/bin, the JVM fails to locate jms-2.0.jar in CPATH_COMMON_PRE variable in cpath.bat / cpath.sh script located in the $MQ_HOME/bin directory.

Issue/Introduction

TIBCO MDM startup fails with JBOSS unable to execute scripts in $MQ_HOME/bin .

Resolution

Follow the installation instructions in the Install Guide. Then perform the following.

1). Replace the files tibjms.jar and tibcrypt.jar in the folder JBOSS_HOME\modules\com\tibco\mdm\main with the updated JAR files (EMS8).

2). Rename JBOSS_HOME\modules\javax\jms\api\main\jboss-jms-api_1.1_spec-1.0.0.Final.jar  to  jboss-jms-api_1.1_spec-1.0.0.Final.jar.org .
 
3). Copy EMS_HOME\lib\jmsXX.jar into folder JBOSS_HOME\modules\javax\jms\api\main\jboss-jms-api_1.1_spec-1.0.0.Final.jar .

4). Make sure JBoss is configured to run with JDK1.7+ .

5). Merge Jms-2.0.jar into ECM.ear .

6). Copy jms-2.0.jar file from $EMS_HOME/lib to $MQ_HOME/lib/external and include this jms-2.0.jar location in the CPATH_COMMON_PRE variable in cpath.sh / cpath.bat script, located in the $MQ_HOME/bin directory. 

7). Restart the JBoss Application server.

Step 5 and Step 6 are specific to overcome issues with scripts located in the $MQ_HOME/bin directory.

Additional Information

TIB_cim_8.3.2_installation.pdf, Previously worked SRs