My Oracle Support Banner

Subscribing MQ Adapter Has 4MB Message Size Limit (Doc ID 398925.1)

Last updated on SEPTEMBER 04, 2018

Applies to:

Oracle Applications InterConnect Tool Kit - Version: 10.1.2.0.2
This problem can occur on any platform.

Symptoms

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.

Cause

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
  Symptoms
  Cause
  Solution
  References

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.