Introduction

This article describes a software update that enables support for the IBM WebSphere MQ backout queue feature in the WCF Channel for WebSphere MQ feature. The WCF Channel for WebSphere MQ feature is part of Microsoft Host Integration Server 2010.

More Information

The backout queue feature that is included with IBM WebSphere MQ is a local queue that is used to store poison messages. Poison messages are MQ messages that cannot be processed and that are repeatedly returned to the message queue. If poison messages are not deleted from the message queue, they could lead to deadlocks that may affect application performance.The IBM WebSphere MQ queue manager keeps a record of the number of times that each message is backed out. When the number reaches a configured backout threshold, the message can be moved to a backout queue. MQ does not automatically move poison messages. It is the responsibility of the program to move them to a backout queue. An MQ application at the transport layer can query the backout count and decide what to do with the message. For example:

  • If the backout count is less than the configured threshold, the backout queue feature can process the message and then pass it up to the application.

  • If the backout count reaches the configured threshold, the backout queue feature can move the message to the backout queue.

  • The backout queue feature can take some other action.

Software update information

A supported feature that changes the product's default behavior is now available from Microsoft. However, this feature is intended to change only the behavior that this article describes. Apply it only to systems that specifically require it. This feature may receive additional testing. Therefore, if your system is not severely affected by the lack of this feature, we recommend that you wait for the next Host Integration Server 2010 service pack that contains this feature. To obtain this feature immediately, contact Microsoft Customer Support Services. For a complete list of Microsoft Customer Support Services telephone numbers and information about support costs, visit the following Microsoft website:

http://support.microsoft.com/contactus/?ws=support

File information

The English (United States) version of this hotfix uses a Microsoft Windows Installer package to install the hotfix. The dates and the times for these files are listed in Coordinated Universal Time (UTC) in the following table. When you view the file information, the date is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.

For Microsoft Host Integration Server 2010 32-bit edition

File name

File version

File size

Date

Time

Platform

System.servicemodel.channels.webspheremq.baseclient.dll

8.5.4264.2

177,072

03-Feb-2011

23:30

x86

System.servicemodel.channels.webspheremq.channel.dll

8.5.4264.2

119,720

03-Feb-2011

23:30

x86

System.servicemodel.channels.webspheremq.extendedclient.dll

8.5.4264.2

177,080

03-Feb-2011

23:30

x86

System.servicemodel.channels.webspheremq.server.dll

8.5.4264.2

177,056

03-Feb-2011

23:30

x86

For Microsoft Host Integration Server 2010 64-bit edition

File name

File version

File size

Date

Time

Platform

System.servicemodel.channels.webspheremq.baseclient.dll

8.5.4264.2

177,072

03-Feb-2011

23:34

x86

System.servicemodel.channels.webspheremq.channel.dll

8.5.4264.2

119,720

03-Feb-2011

23:34

x86

System.servicemodel.channels.webspheremq.extendedclient.dll

8.5.4264.2

177,080

03-Feb-2011

23:34

x86

System.servicemodel.channels.webspheremq.server.dll

8.5.4264.2

177,056

03-Feb-2011

23:34

x86

System.servicemodel.channels.webspheremq.baseclient.dll

8.5.4264.2

204,720

03-Feb-2011

23:34

x64

System.servicemodel.channels.webspheremq.channel.dll

8.5.4264.2

119,720

03-Feb-2011

23:34

x86

System.servicemodel.channels.webspheremq.extendedclient.dll

8.5.4264.2

204,728

03-Feb-2011

23:34

x64

System.servicemodel.channels.webspheremq.server.dll

8.5.4264.2

204,704

03-Feb-2011

23:34

x64

After you apply the update, the WCF Channel for Websphere MQ can be configured to use a backout queue feature by setting the new MoveMessageToBackoutQueue binding property to True.The backout queue feature is supported only on a receive (get) operation and only when transactions are enabled. Also, the backout queue cannot be used in combination with ReceiveContext. If the MoveMessageToBackoutQueue property is set to True, and if the Transaction and SyncPoint properties are True, the following process will occur during an MQGet operation:

  1. The backout count is checked, and if it is nonzero, it is compared to the backout threshold that is defined on the message queue.

  2. If the backout count is less than the backout threshold, the message is sent to the WCF application to be processed. If, for some reason, the transaction is not committed, the message is rolled back, and the MQ Manager increments the message backout count. Additionally, the cycle continues until the message is committed successfully or until the backout count becomes greater than the backout threshold.

  3. If the backout count is greater than the threshold, the MQ Manager is queried, the message is written to the queue that is specified in the BOQNAME parameter, and then the message is committed. Frequently a Dead Letter Header (MQDLH) is attached to the message to indicate why the message was written to the backout queue.Note MQ applications use the name BOQNAME for the backout queue that is used for write messages that were backed out.

If the Dead Letter binding property, the MoveMessageToBackoutQueue property, and the Transaction and SyncPoint properties are all set to True, the following process will occur during an MQGet operation:

  1. The backout count is checked, and if it is nonzero, it is compared to the backout threshold that is defined on the message queue.

  2. If the backout count is less than the backout threshold, the dead letter process is used. If the message cannot be processed, the message is written to the Dead Letter Queue.

  3. If the message can be processed, it is sent to the WCF application to be processed. If the transaction is not committed, the message is rolled back, and the MQ Manager increments the message backout count. Then, the cycle continues until the message is committed successfully or until the backout count becomes greater than the backout threshold.

  4. If the backout count is greater than the backout threshold, the MQ Manager is queried, the message is written to the queue that is specified in the BOQNAME parameter, and then the message is committed. Frequently a Dead Letter Header (MQDLH) is attached to the message to indicate why the message was written to the backout queue.

More Information

The following are examples that display how the relevant properties must be configured to enable the backout queue feature.

If the properties are set in the application code

WebSphereMQBinding mqbinding = new WebSphereMQBinding(); mqbinding.ConnectionType = "ExtendedClient"; // this might be Server mqbinding.MqcdChannelName = _ChannelName; mqbinding.MqcdTransportType = "TCP"; // this could be SNAmqbinding.Transaction = true;qbinding.MqgmoSyncPoint = true;mqbinding.MoveMessageToBackoutQueue = true; // new Backout queue binding property

If the properties are set in the AppConfig file

<mqChannelBinding> <binding name="TransactionalSendReceiveSampleBinding" connectionType="ExtendedClient" mqcdChannelName="MQone" moveMessageToBackoutQueue="true" mqcdTransportType="TCP" mqgmoSyncPoint="true" transaction="true">See the "Issue 6: Message backouts" topic in the following document for additional details about the usage of the backout queue feature by the IBM Websphere MQ:

Best Practices: WebSphere MQ shared queues and application programs 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.

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.