2.2.2.9 MQMSGCLASS

The MQMSGCLASS enumeration defines values that indicate the classification of a Message. A Message can originate from a client of this protocol, or it can be generated by the operations that pertain to the message transfer process. The values defined for this enumeration indicate the reason that the Message was generated.

 typedef enum 
 {
   MQMSG_CLASS_NORMAL = 0x0,
   MQMSG_CLASS_REPORT = 0x1,
   MQMSG_CLASS_ACK_REACH_QUEUE = 0x2,
   MQMSG_CLASS_ACK_RECEIVE = 0x4000,
   MQMSG_CLASS_NACK_BAD_DST_Q = 0x8000,
   MQMSG_CLASS_NACK_PURGED = 0x8001,
   MQMSG_CLASS_NACK_REACH_QUEUE_TIMEOUT = 0x8002,
   MQMSG_CLASS_NACK_Q_EXCEED_QUOTA = 0x8003,
   MQMSG_CLASS_NACK_ACCESS_DENIED = 0x8004,
   MQMSG_CLASS_NACK_HOP_COUNT_EXCEEDED = 0x8005,
   MQMSG_CLASS_NACK_BAD_SIGNATURE = 0x8006,
   MQMSG_CLASS_NACK_BAD_ENCRYPTION = 0x8007,
   MQMSG_CLASS_NACK_COULD_NOT_ENCRYPT = 0x8008,
   MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q = 0x8009,
   MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG = 0x800a,
   MQMSG_CLASS_NACK_UNSUPPORTED_CRYPTO_PROVIDER = 0x800b,
   MQMSG_CLASS_NACK_SOURCE_COMPUTER_GUID_CHANGED = 0x800c,
   MQMSG_CLASS_NACK_Q_DELETED = 0xc000,
   MQMSG_CLASS_NACK_Q_PURGED = 0xc001,
   MQMSG_CLASS_NACK_RECEIVE_TIMEOUT = 0xc002,
   MQMSG_CLASS_NACK_RECEIVE_TIMEOUT_AT_SENDER = 0xc003
 } MQMSGCLASS;

MQMSG_CLASS_NORMAL:  The message originated from a client of this protocol via a call to MSMQMessage4::Send.

MQMSG_CLASS_REPORT:  The message was generated by the route tracing feature of the message transfer process. Messages of type MQMSG_CLASS_REPORT are generated while Messages for which TracingRequested is True arrive at Queues along the route to the final destination.

MQMSG_CLASS_ACK_REACH_QUEUE:  The message was generated as a result of a Message successfully arriving at its destination ApplicationQueue.

MQMSG_CLASS_ACK_RECEIVE:  The message was generated when a Message was successfully retrieved by a client of this protocol.

MQMSG_CLASS_NACK_BAD_DST_Q:  The message was generated to indicate that delivery of the Message was canceled because the destination ApplicationQueue was unreachable.

MQMSG_CLASS_NACK_PURGED:  The message was generated to indicate that the Message was deleted prior to arriving at the destination ApplicationQueue.

MQMSG_CLASS_NACK_REACH_QUEUE_TIMEOUT:  The message was generated to indicate that the Message.TimeToReachQueue timer expired before the Message arrived at the destination ApplicationQueue.

MQMSG_CLASS_NACK_Q_EXCEED_QUOTA:  The message was generated to indicate that the Message was not inserted into the destination ApplicationQueue because doing so would exceed the Quota.

MQMSG_CLASS_NACK_ACCESS_DENIED:  The message was generated to indicate that the Message was not inserted into the destination ApplicationQueue because the user identified by Message.SenderIdentifier did not have sufficient rights to insert the Message.

MQMSG_CLASS_NACK_HOP_COUNT_EXCEEDED:  The message was generated to indicate that delivery of the Message was canceled because it exceeded the maximum number of allowed routing hops.<1>

MQMSG_CLASS_NACK_BAD_SIGNATURE:  The message was generated to indicate that the Message was not inserted into the destination ApplicationQueue because the digital signature accompanying the Message was not successfully validated.

MQMSG_CLASS_NACK_BAD_ENCRYPTION:  The message was generated to indicate that the Message was not inserted into the destination ApplicationQueue because the Message could not be decrypted successfully.

MQMSG_CLASS_NACK_COULD_NOT_ENCRYPT:  The message was generated to indicate that the Message was canceled prior to delivery because the Message could not be successfully encrypted.

MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q:  The message was generated to indicate that the Message was not inserted into the destination ApplicationQueue because the Message was sent as part of a transaction but the destination ApplicationQueue.Transactional property equals False.

MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG:  The message was generated to indicate that the Message was not inserted into the destination ApplicationQueue because the Message was not sent as part of a transaction but the destination ApplicationQueue.Transactional property equals True.

MQMSG_CLASS_NACK_UNSUPPORTED_CRYPTO_PROVIDER:  The message was generated to indicate that the Message was not inserted into the destination ApplicationQueue because the destination QueueManager does not support a cryptography library sufficient to decrypt the Message or validate its signature.

MQMSG_CLASS_NACK_SOURCE_COMPUTER_GUID_CHANGED:  The message was generated to indicate that delivery of the Message was canceled because the Identifier property of the QueueManager that originated the Message changed.<2>

MQMSG_CLASS_NACK_Q_DELETED:  The message was generated to indicate that the destination ApplicationQueue was deleted before the Message was received by a client of this protocol.

MQMSG_CLASS_NACK_Q_PURGED:  The message was generated to indicate that the destination ApplicationQueue was purged before the Message was received by a client of this protocol.

MQMSG_CLASS_NACK_RECEIVE_TIMEOUT:  The message was generated to indicate that the Message.TimeToBeReceived timer expired before the Message was received from the destination ApplicationQueue by a client of this protocol.

MQMSG_CLASS_NACK_RECEIVE_TIMEOUT_AT_SENDER:  The message was generated to indicate that the Message.TimeToBeReceived timer expired before the Message was inserted into the destination ApplicationQueue.

Used by:

The MQMSGCLASS enumeration values map to the enumeration values for Message.Class as shown in the following table:

MQMSGCLASS enumeration constants

Message.Class

Constant Values

MQMSG_CLASS_NORMAL

Normal

0x0000

MQMSG_CLASS_REPORT

Report

0x0001

MQMSG_CLASS_ACK_REACH_QUEUE

AckReachQueue

0x0002

MQMSG_CLASS_ACK_RECEIVE

AckReceive

0x4000

MQMSG_CLASS_NACK_BAD_DST_Q

NackBadDestQueue

0x8000

MQMSG_CLASS_NACK_DELETED

NackPurged

0x8001

MQMSG_CLASS_NACK_REACH_QUEUE_TIMEOUT

NackReachQueueTimeout

0x8002

MQMSG_CLASS_NACK_Q_EXCEED_QUOTA

NackQueueExceedQuota

0x8003

MQMSG_CLASS_NACK_ACCESS_DENIED

NackAccessDenied

0x8004

MQMSG_CLASS_NACK_HOP_COUNT_EXCEEDED

NackHopCountExceeded

0x8005

MQMSG_CLASS_NACK_BAD_SIGNATURE

NackBadSignature

0x8006

MQMSG_CLASS_NACK_BAD_ENCRYPTION

NackBadEncryption

0x8007

MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q

NackNotTransactionalQueue

0x8009

MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG

NackNotTransactionalMessage

0x800A

MQMSG_CLASS_NACK_UNSUPPORTED_CRYPTO_PROVIDER

NackUnsupportedCryptoProvider

0x800B

MQMSG_CLASS_NACK_SOURCE_COMPUTER_GUID_CHANGED

NackSourceComputerGuidChanged

0x800C

MQMSG_CLASS_NACK_Q_DELETED

NackQueueDeleted

0xC000

MQMSG_CLASS_NACK_Q_PURGED

NackQueuePurged

0xC001

MQMSG_CLASS_NACK_RECEIVE_TIMEOUT

NackReceiveTimeout

0xC002