Subscribing MQ Adapter Has 4MB Message Size Limit
(Doc ID 398925.1)
Last updated on MARCH 26, 2019
Applies to:Oracle Applications InterConnect Tool Kit - Version 10.1.2.0.2 and later
Information in this document applies to any platform.
It appears the MQ series adapter has a 4MB message size limit when sending messages to an MQ Series system. When sending messages which are 4MB or larger, the adapter consistently throws the following exception, which can be seen in the adapter's log files:
Entering method: MQD3L_produce <MSG_TEXT>A JMS exception was raised during send() to MQ Series destination:</MSG_TEXT> <SUPPL_DETAIL><![CDATA[javax.jms.JMSException: MQJMS2007: failed to send message to MQ queue at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java: 553)at com.ibm.mq.jms.MQMessageProducer.sendInternal(MQMessageProducer.java:1602) at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:1022) at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:1056)at oracle.oai.agent.adapter.mqseries.MQTransactionalDestination.send(MQTransactio nalDestination.java:749)at oracle.oai.agent.adapter.mqseries.MQMessageReceiver.messageReceived(MQMessageR eceiver.java:196)at oracle.oai.agent.client.SmartQueueDispatcher.run(SmartQueueDispatcher.java:324) at java.lang.Thread.run(Thread.java:534) ]]></SUPPL_DETAIL> ... etc.
The same message sent in the same environment, but smaller than 4MB is sent and received correctly.
Research done on the MQJMS2007 error initially implied the error was on the MQ side. But IBM confirmed that the MQ client Java API sets an internal default limit of 4MB on the message size. This default value can be overriden by the client, using the maxMessageLength attribute of the MQChannelDefinition class. The class and attribute are described in the IBM WebSphere MQ documentation, currently located at the WebSphere MQ information center home on IBM's web site.
However, this document doesn't mention the default 4MB limit. The API's description can be found at the above link under Using Java > WebSphere MQ base Java API reference > Package com.ibm.mq > MQChannelDefinition
Initially, it was assumed that Oracle's implementation of the MQ Series adapter doesn't set the maxMessageLength parameter, meaning that we are hitting the default 4MB limit.
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document