Applications cannot use the "0xc00e0050 MQ_ERROR_TRANSACTIONAL_USAGE" error message to determine whether a queue is transactional in Message Queuing 3.0 (901281)



The information in this article applies to:

  • Microsoft Message Queue Server (MSMQ) 3.0
  • Microsoft Message Queue Server (MSMQ) 2.0
  • Microsoft Message Queue Server (MSMQ) 1.0

SYMPTOMS

In Microsoft Message Queuing 3.0, applications cannot use the "0xc00e0050 MQ_ERROR_TRANSACTIONAL_USAGE" error message to determine whether a queue is transactional. However, this error message is returned in earlier versions of Message Queuing.

CAUSE

This behavior occurs because Message Queuing 3.0 does not return the "0xc00e0050 MQ_ERROR_TRANSACTIONAL_USAGE" error message. Earlier versions of Message Queuing return the "0xc00e0050 MQ_ERROR_TRANSACTIONAL_USAGE" error message when Message Queuing can determine the transactional property of the destination queue. This behavior is by design.

WORKAROUND

To work around this behavior, modify the application to use the System.Messaging.MessageQueue.Transactional property of a queue. The System.Messaging.MessageQueue.Transactional property of a queue returns a Boolean value. You do not have to use the "0xc00e0050 MQ_ERROR_TRANSACTIONAL_USAGE" error message to determine whether the destination queue is transactional.

MORE INFORMATION

In Message Queuing 1.0 and in Message Queuing 2.0, you receive a "0xc00e0050 MQ_ERROR_TRANSACTIONAL_USAGE" error message when the following conditions are true:
  • You try to send a message to a queue where the transaction property can be determined. This includes sending the messages to local queues, to remote public queues that use path names, and to local private queues.
  • You incorrectly start the transaction.
You do not receive this error message when you try to send a message to remote private queues because the sender cannot determine the transactional property.

Modification Type:MajorLast Reviewed:7/19/2005
Keywords:kbtshoot kbprb KB901281 kbAudDeveloper