2.2.4 OrderAck Packet

The OrderAck Packet (section 2.2.4) contains a stand-alone transactional acknowledgment message. The packet acknowledges the transactional messages that have been received (accepted or rejected) by the receiver so that the sender can remove the messages from its outgoing queue and, if requested, add them to the wait list for receiving final acknowledgments. The OrderAck Packet is an end-to-end acknowledgment.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

BaseHeader (16 bytes)

...

...

UserHeader (variable)

...

MessagePropertiesHeader (variable)

...

BaseHeader (16 bytes): A BaseHeader ([MS-MQMQ] section 2.2.19.1). The BaseHeader.Flags field MUST have all bits set to 0.

UserHeader (variable): A UserHeader ([MS-MQMQ] section 2.2.19.2). The Flags.MP flag MUST be set to 0x1 to indicate that a MessagePropertiesHeader ([MS-MQMQ] section 2.2.19.3) is included. All other bits MUST be set to 0 except Flags.DQ, which MUST be set either to 0x3 or to 0x7. If Flags.DQ is 0x3, the DestinationQueue field MUST be a PrivateQueueFormatNameId ([MS-MQMQ] section 2.2.18.1.5.1) with PrivateQueueIdentifier set to 0x00000004. If Flags.DQ is 0x7, the DestinationQueue field MUST be a DirectQueueFormatName ([MS-MQMQ] section 2.2.18.1.5.2) with DirectFormatName set to a string in the format specified by the following ABNF rules.

 orderQueueName = ("TCP:" ip-address / "SPX:" ipx-address ) 
                            "\PRIVATE$\order_queue$"
 ip-address=(IPv6address / IPv4address)
 ipx-address= 8HEXDIG "." 12HEXDIG ; network.node
 HEXDIG = Digit | "A" | "B" | "C" | "D" | "E" | "F"
 Digit = %x30-39

The use of TCP or SPX depends on whether TCP or SPX transport is supported.<16> The value for IPv4address [RFC3986], IPv6address [RFC3986], or ipx-address MUST represent the IP or IPX address of the queue manager to receive the message.

MessagePropertiesHeader (variable): A MessagePropertiesHeader. The Label field MUST be set to "QM Ordering Ack". The MessageSize field MUST be set to 0x00000024. The Flags field MUST have all bits set to 0. The MessageClass field MUST be set to MQMSG_CLASS_ORDER_ACK.

For more details about message class identifiers, see [MS-MQMQ] section 2.2.18.1.6.

The BodyType field MUST be set to the value VT_EMPTY ([MS-MQMQ] section 2.2.12). The MessageBody field MUST be in the OrderAck Body (section 2.2.4.1) format.