Troubleshooting
Problem
WebSphere MQ Adapter configured in Sync Receive mode fails to download more than 10000 messages from MQ Server and BP fails with "com.ibm.mq.MQException:- MQJE001: Completion Code 2, Reason 2024"
Note - MQ Server's Queue Manager is configured with "Max uncommitted messages" as 10000
--Business Process (BP) snippet --
Symptom
Following exception is printed in system.log
[2014-10-03 13:11:59.275] ERRORDTL [1412356319274]com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2024'.
at com.ibm.mq.MQDestination.getInt(MQDestination.java:655)
at com.ibm.mq.MQDestination.get(MQDestination.java:459)
at com.sterlingcommerce.woodstock.services.websphereMQ.WebSphereMQServerImpl.doRcv(WebSphereMQServerImpl.java:365)
at com.sterlingcommerce.woodstock.services.websphereMQ.WebSphereMQServerImpl.getMessage(WebSphereMQServerImpl.java:213)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:618)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:339)
at sun.rmi.transport.Transport$1.run(Transport.java:189)
at sun.rmi.transport.Transport$1.run(Transport.java:186)
at java.security.AccessController.doPrivileged(AccessController.java:366)
at sun.rmi.transport.Transport.serviceCall(Transport.java:185)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:823)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:626)
at java.lang.Thread.run(Thread.java:804)
Cause
WebSpehere MQ adapter is reaching out to MQ Queue for downloading of messages with these receive options.
MQGMO_SYNCPOINT
MQGMO_ALL_MSGS_AVAILABLE
MQGMO_SYNCPOINT option enables sync point and download happens in transaction. Since MQ server imposing limit (of 10000) on no. of uncommitted messages, when client tries to download more than 10000 messages in single transaction MQ server reports error.
Diagnosing The Problem
Look for MQ error "MQJE001: Completion Code 2, Reason 2024" either from BP or system.log
Resolving The Problem
If transaction is not required by WebSphere MQ Adapter for downloading of large number messages, turn off syncpoint through GPM property rcv_MQGMO_syncpoint
-- Updated BP snippet --
<operation name="WebSphere MQ Adapter">
<participant name="DOWNLOAD.ALL.MSGS"/>
<output message="WebsphereMQInputMessage">
<assign to="." from="*"></assign>
<assign to="rcv_msgHandling">ALL</assign>
<assign to="rcv_MQGMO_syncpoint">No</assign>
</output>
<input message="inmsg">
<assign to="." from="*"></assign>
</input>
</operation>
Was this topic helpful?
Document Information
Modified date:
09 January 2020
UID
swg21686455