Friday, December 19, 2014

How to fix JMS destination corrupt error in SystemOut.log

Error description is as
CWSIP0291W: An attempt to send a message to exception destination _SYSTEM.Exception.Destination.qnode.server1-SCA.APPLICATION.qcell.Bus on messaging engine qnode.server1-SCA.APPLICATION.qcell.Bus failed due to the following : com.ibm.ws.sib.processor.exceptions.SIMPDestinationCorruptException: CWSIK0027E: The destination with name _SYSTEM.Exception.Destination.qnode.server1-SCA.APPLICATION.qcell.Bus is corrupt


 Messaging engine must be running

To view the status of messaging engines , go to
Service integration  ==> Buses. ==> Bus Name ==>Messaging engines


The wsadmin jython command  for resetting the destination would be

me = AdminControl.queryNames("type=SIBMessagingEngine,name=messaging_engine_name,*" )

 where messaging_engine_name is the name of the messaging engine and  can be obtained from the errors in SystemOut.log


AdminControl.invoke(me, "resetDestination", ["destination"] )
where destination is the name of the destination and can be obtained from the errors in SystemOut.log


Then in the last , stop and start the Server hosting the messaging engine.

For a websphere process server topology , there will be four buses
BPC , SCA Application , SCA System , CEI .



Example Command


 me = AdminControl.queryNames("type=SIBMessagingEngine,name=qnode.server1-SCA.APPLICATION.qcell.Bus,*" )

 AdminControl.invoke(me, "resetDestination", ["_SYSTEM.Exception.Destination.qnode.server1-SCA.APPLICATION.qcell.Bus"] )

You may get the following error after running the second command


 WASX7015E: Exception running command: " AdminControl.invoke(me, "resetDestination", ["_SYSTEM.Exception.Destination.qnode.server1-SCA.APPLICATION.qcell.Bus"] )"
; exception information: javax.management.MBeanException com.ibm.ws.sib.processor.exceptions.SIMPRuntimeOperationFailedException: com.ibm.ws.sib.processor.exceptions.SIMPRuntimeOperationFailedException: com.ibm.ws.sib.processor.impl.exceptions.InvalidOperationException: CWSIP0005E: An internal messaging error occurred INDOUBT in com.ibm.ws.sib.processor.impl.indexes.statemod
el.State, 1:219:1.13


In that case

Go to
Service integration , Buses, Bus Name, Messaging engines , Messaging Engine Name , Queue Points

Select the Queue Point where Queue Depth is greater than 0

Go to Runtime Tab , Messages

 Click on delete all

This will delete all the messages in that queue point .

Restart the messaging engine or the application server itself .

Just restarting the messaging engine will get rid you of the error until there is another message in the destination .

No comments: