Gathering license metrics fails with a NoClassDefFoundError message
If the lifecycle rule for gathering license metrics fails with a NoClassDefFoundError error message, you must check the server trace file.
About this task
<Trace Level="MIN">
<Time Millis="1380725218925"> 2013.10.02 10:46:58.925-04:00</Time>
<Server Format="IP">markdb.tivlab.raleigh.ibm.com</Server>
<ProductId>CTGIM</ProductId>
<Component>com.ibm.itim.messaging.mdb</Component>
<ProductInstance>markdb</ProductInstance>
<LogText><![CDATA[Caught exception handling message:
JMSMessage class: jms_text
JMSType: null
JMSDeliveryMode: 2
JMSExpiration: 0
JMSPriority: 6
JMSMessageID: ID:0b675c3fe4bad77ef5d0f8ae110a134f0000000000000001
JMSTimestamp: 1380725218566
JMSCorrelationID: null
JMSDestination: queue://itim_wf?busName=itim_bus
JMSReplyTo: null
JMSRedelivered: false
JMSXDeliveryCount: 1
JMSXAppID: Service Integration Bus
JMS_IBM_System_MessageID: 20DC611C593112D9_3052074
JMSXUserID: isimsystem
H4sIAAAAAAAAAFvzloG1uIhBJzk/Vy8zCYhLMnP1yvOLstNy8sv1UvPSM/NS9RyTSzLLMksqnfPz
SlIrSg4nJ4SoP81/ysTA7M ..., rolling back transaction.]]></LogText>
<Source FileName="com.ibm.itim.messaging.mdb.TransactedMessageListenerBean" Method="onMessage"/>
<Thread>SIBJMSRAThreadPool : 43</Thread>
<Exception><![CDATA[javax.ejb.TransactionRolledbackLocalException:
; nested exception is: com.ibm.ws.exception.WsEJBException:
nested exception is: java.lang.NoClassDefFoundError: com.ibm.license.metric.MetricPersistenceException
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(J9VMInternals.java:93)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:170)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:179)
at com.ibm.itim.workflow.engine.ApplicationActivityExecutor.execute(ApplicationActivityExecutor.java:90)
at com.ibm.itim.workflow.engine.WorkflowEngine.executeActivity(WorkflowEngine.java:2750)
at com.ibm.itim.workflow.engine.WorkflowEngine.processMessage(WorkflowEngine.java:571)
at com.ibm.itim.workflow.engine.ExecutionContext.processMessage(ExecutionContext.java:1044)
at com.ibm.itim.workflow.engine.MessageRouter.onMessage(MessageRouter.java:54)
at com.ibm.itim.messaging.mdb.MessageHandlerBean.handleMessage(MessageHandlerBean.java:134)
at com.ibm.itim.messaging.mdb.EJSLocalStatelessenroleejb_ContainerManagedMessag_ae956b4e.handleMessage(Unknown Source)
at com.ibm.itim.messaging.mdb.TransactedMessageListenerBean.handleMessage(TransactedMessageListenerBean.java:240)
at com.ibm.itim.messaging.mdb.TransactedMessageListenerBean.onMessage(TransactedMessageListenerBean.java:165)
at com.ibm.ejs.container.MessageEndpointHandler.invokeMdbMethod(MessageEndpointHandler.java:1164)
at com.ibm.ejs.container.MessageEndpointHandler.invoke(MessageEndpointHandler.java:843)
at com.sun.proxy.$Proxy57.onMessage(Unknown Source)
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaEndpointInvokerImpl.invokeEndpoint(JmsJcaEndpointInvokerImpl.java:233)
at com.ibm.ws.sib.ra.inbound.impl.SibRaDispatcher.dispatch(SibRaDispatcher.java:901)
at com.ibm.ws.sib.ra.inbound.impl.SibRaSingleProcessListener$SibRaWork.run(SibRaSingleProcessListener.java:592)
at com.ibm.ejs.j2c.work.WorkProxy.run(WorkProxy.java:608)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1815)
Caused by: com.ibm.ws.exception.WsEJBException: nested exception is:
java.lang.NoClassDefFoundError: com.ibm.license.metric.MetricPersistenceException
at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java:276)
at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSITransactionRolledBackException
(LocalExceptionMappingStrategy.java:565)
at com.ibm.ejs.container.EJSDeployedSupport.mapCSITransactionRolledBackException(EJSDeployedSupport.java:751)
at com.ibm.ejs.container.EJSContainer.postInvokeRolledbackException(EJSContainer.java:5315)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:5086)
... 11 more
Caused by: java.lang.NoClassDefFoundError: com.ibm.license.metric.MetricPersistenceException
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(J9VMInternals.java:93)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:170)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:179)
at com.ibm.itim.workflow.engine.ApplicationActivityExecutor.execute(ApplicationActivityExecutor.java:90)
at com.ibm.itim.workflow.engine.WorkflowEngine.executeActivity(WorkflowEngine.java:2750)
at com.ibm.itim.workflow.engine.WorkflowEngine.processMessage(WorkflowEngine.java:571)
at com.ibm.itim.workflow.engine.ExecutionContext.processMessage(ExecutionContext.java:1044)
at com.ibm.itim.workflow.engine.MessageRouter.onMessage(MessageRouter.java:54)
at com.ibm.itim.messaging.mdb.MessageHandlerBean.handleMessage(MessageHandlerBean.java:134)
... 11 more
Caused by: java.lang.ClassNotFoundException: com.ibm.license.metric.MetricPersistenceException
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:204)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:688)
at java.lang.ClassLoader.loadClass(ClassLoader.java:667)
at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:119)
at java.lang.ClassLoader.loadClass(ClassLoader.java:650)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:616)
at java.lang.ClassLoader.loadClass(ClassLoader.java:650)
... 22 more
]]></Exception>
</Trace>
Procedure
- Log in to the administrative console of WebSphere.
- Expand Environment.
- Click Shared libraries.
- On the Shared Libraries page, click ITIM_LIB.
- On the ITIM LIB page, add ${IM_HOME}/lib/license_metric_logger_1.0.0.201303060931.jar to the Classpath field.
- Click OK, and then click Save to save the changes directly to the master configuration.
- Log out of the administrative console.
- Restart WebSphere for the changes to take effect.