Technote (troubleshooting)
Problem(Abstract)
You have a J2EE application that is deployed in WebSphere Application Server (WAS). Upon connecting to the WebSphere MQ queue manager, this application gets the following exception:
.
QueueTransportUnavailableException: javax.jms.JMSException: CC=2; RC 2009
Output of "MQRC 2009"shows this message code: MQRC_CONNECTION_BROKEN
For numerous reasons, IBM had to adjust where the WebSphere MQ resource adapter was installed after WebSphere Application Server V7 was shipped. This means that if you install WAS 7.0.0.0 and then create a profile, then the profile will hold a copy of the resource adapter which will not get updated by service updates. If you create a profile at WAS 7.0.0.1 or later then the profile will point to the copy of the resource adapter in the root install directory, which does get updated by service, and this issue will not occur. The script below swaps the pointer to the resource adapter from the one in the profile to the one in the root install directory.
Symptom
FDC files are generated in the profile_root/mqm/errors directory:
Probe Id :- RM680037
Component :- rriBadDataReceived
Program Name :- amqrmppa
Major Errorcode :- rrcE_PROTOCOL_ERROR
Probe Description :- AMQ9504: A protocol error was detected for channel
'SYSTEM.DEF.SVRCONN'.
Arith1 :- 24 (0x18)
Arith2 :- 28 (0x1c)
The exception QueueTransportUnavailableException is written to the WAS SystemOut log file.
Other generic errors may be seen in the MQ error logs. The following is one of them:
AMQ6183: An internal WebSphere MQ error has occurred.
Cause
Incompatible/outdated WebSphere MQ Resource Adapter.
Diagnosing the problem
You can verify the diagnostic data from both, WAS and MQ, and see if it matches the entries listed in the Symptom section above.
Resolving the problem
There are a few steps that comprise the resolution of this problem. These steps are actually outlined in this session of the Information Center for WAS V7:
You should follow all the steps outlined in the Information Center, however, in step 4, which is the most important step, you might run into some syntax errors upon trying to run the Jython script convertWMQRA.py. If you do, use the following script instead:
ras = AdminUtilities.convertToList(AdminConfig.list('J2CResourceAdapter'))
for ra in ras :
desc = AdminConfig.showAttribute(ra, "description")
# if (desc == "WAS 7.0 Built In WebSphere MQ Resource Adapter") or
# (desc == "WAS 7.0.0.1 Built In WebSphere MQ Resource Adapter") or
# (desc == "WAS Built In WebSphere MQ Resource Adapter"):
if desc.endswith( 'MQ Resource Adapter' ):
print "Updating archivePath and classpath of " + ra
AdminConfig.modify(ra, [['archivePath', "${WAS_INSTALL_ROOT}/installedConnectors/wmq.jmsra.rar"]])
AdminConfig.unsetAttributes(ra, ['classpath'])
AdminConfig.modify(ra, [['classpath', "${WAS_INSTALL_ROOT}/installedConnectors/wmq.jmsra.rar"]])
AdminConfig.save()
#end if
#end for
Just as instructed in the Information Center section above, copy this new Jython script into a file called convertWMQRA.py and then save it in the profile_root/bin directory and run it using the wsadmin tool. Once this is done, go on to the next step, step 5, in the Information Center section above.
| Segment | Product | Component | Platform | Version | Edition |
|---|---|---|---|---|---|
| Business Integration | WebSphere MQ | Service Integration Technologies /SIB |
Product Alias/Synonym
WebSphere Application Server WAS SIB SIBUS SI BUS WMQ WebSphere MQ MQSeries
Rate this page:
Copyright and trademark information
IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.