MSMQ Receive Function May Return PassThrough Error (283035)



The information in this article applies to:

  • Microsoft BizTalk Server 2000

This article was previously published under Q283035

SYMPTOMS

When you use a Microsoft Message Queue Server (MSMQ) receive function to receive data from a well-known queue, the following error message may occur:
Event ID: 324
Source: BizTalk Server
Category: Document Processing
Description:
An error occurred in BizTalk Server.

Details:
------------------------------
The ""Direct=OS:server\private$\TestQ"" Message Queuing receive function is not configured for a pass-through submission, but it has encountered a document that was submitted previously as a pass-through submission. Change this receive function to accept pass-through submissions or remove the pass-through document from the queue. This receive function will be shut down.

The receive function "TestQ" has experienced problems, it will be shut down and disabled. Once these problems have been corrected, re-enable this receive function in BizTalk Server Administration.

There was a failure processing the "TestQ" receive function. Check your receive function configuration in BizTalk Server Administration.

CAUSE

The MSMQ receive function is designed to retrieve messages from a designated queue. If the data in the queue is a byte array (VT_ARRAY | VT_UI1), the receive function checks the message for the AppSpecific property setting. The intended use of this property is for code page information that is related to the contents of the message. In addition, the BizTalk Server MSMQ receive function checks the AppSpecific property for a value of -1. If the AppSpecific property is set to -1, the MSMQ receive function determines that the message is a PassThrough message, and that it should be treated accordingly. However, if the properties of the MSMQ receive function are not set to handle PassThrough data, an error occurs and the receive function is disabled.

The error that is listed in the "Symptoms" section of this article also can occur if the document is written to the MSMQ queue that is monitored by the MSMQ receive function with the XmlMessageFormatter object in the .NET System.Messaging application programming interface (API).

The error that is listed earlier can also occur if the MSMQ queue, that is monitored by the MSMQ Receive function, is not marked as a transactional queue.

RESOLUTION

If your application needs to use the MSMQ Message AppSpecific property setting, make sure that the property is not set to a value of -1. The BizTalk Server MSMQ receive function will use that value for PassThrough notification.

If you are using the XmlMessageFormatter object to write documents to the MSMQ queue that is monitored by the BizTalk Receive function, try writing documents to the queue by using the ActiveXFormatter object instead.
If the MSMQ queue that is monitored by the MSMQ Receive function is not marked as a transactional queue, recreate the queue as a transactional queue.

STATUS

This behavior is by design.

MORE INFORMATION

For more information on BizTalk Server receive functions, see the BizTalk Server Documentation.

For more information on MSMQ messages and message body types, see the Message Queuing SDK.

Modification Type:MajorLast Reviewed:9/1/2006
Keywords:kbbug kbpending KB283035