Consider the following scenario:
You have a receive location that is configured to use the MQSC adapter to receive messages from IBM WebSphere MQ.
The MQSC adapter is configured to use a character set setting of UCS-2 and UTF-16 or UTF-8.
The MQSC adapter tries to receive a message from IBM WebSphere MQ in Microsoft BizTalk Server 2010.
The message is larger than 1 megabyte (MB).
In this scenario, the following error may be logged in the Application log:
Event ID: 5740
Source: BizTalk Server
The adapter "MQSC" raised an error message. Details "Failure encountered while attempting to get message from queue. queue = default, queueManager = queuemanager, reasonCode = 2010".
This problem occurs because the character set that is specified for the MQSC adapter affects the total length of the message that is being received. For example, when a character set of UTF-8 is used, the actual message requires a buffer size five times larger than the message size. Therefore, a 1 MB message requires a 5 MB buffer. This exceeds the default Maximum Message Length setting of 4 MB that is used by the MQSC adapter. If the received message requires buffer space larger than the MQSC adapter's Maximum Message Length setting, the error that is mentioned in the "Symptoms" section is logged.
Cumulative update information
The fix that resolves this problem is included in cumulative update package 8 for Host Integration Server 2010. For more information about how to obtain the cumulative update package, see Cumulative update package 8 for Host Integration Server 2010.
To work around this problem, increase the Maximum Message Length setting in the MQSC adapter configuration to match the received message size based on the additional buffer space that is required by the character set that is being used.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
After this update is applied, when the system is retrieving messages from the queue, the MQSC adapter specifies an option that lets IBM WebSphere MQ handle the buffer resizing automatically.
The Maximum Message Length setting is basically a suggested setting that is based on the message length and the encoding (or character set) of the message. Therefore, the Maximum Message Length setting should be adjusted to match the specific message size requirements to help make sure that all messages are received successfully. The Maximum Message Length settings can be specified in the MQSC adapter parameters and in IBM WebSphere MQ settings. Therefore, you should make sure that the settings agree.
The following list describes the buffer size requirements based on the character set that is used by the messages that are received from the message queue:
Character set UTF-16: When you use a character set setting of UTF-16, the required buffer space is equal to two times the size of the received message.
Character set UCS-2 and UTF-8: When you use a character set setting of UCS-2 and UTF-8, the required buffer space is five times the size of the received message.
We recommend that you not only apply this update but also upgrade to IBM WebSphere MQ version 7.5 Fixpack 1 when the MQSC adapter is used. IBM WebSphere MQ version 7.5 Fixpack 1 includes a fix for a problem that is related to UTF-16 DBCS data conversions.
If you cannot upgrade to IBM WebSphere MQ version 7.5 Fixpack 1, we recommend that you use IBM WebSphere MQ version 220.127.116.11 (or a later version) together with this update.
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.