2.2.5.3 SubqueueHeader

The SubqueueHeader encapsulates information about the message as specified following.<6> This header MUST be ignored if its SubqueueName field is an empty string.


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

HeaderSize

A

AcknowledgementClass

Reserved

AbortCounter

MoveCounter

LastMoveTime

SubqueueName (64 bytes)

...

...

TargetSubqueueName (64 bytes)

...

...

HeaderSize (4 bytes): A ULONG ([MS-DTYP] section 2.2.51) that specifies the size in bytes of the SubqueueHeader.

A - TM (1 bit): A one-bit ([MS-DTYP] section 2.1.1) flag that MUST be set to 0.

AcknowledgementClass (2 bytes): A USHORT ([MS-DTYP] section 2.2.58) that MUST specify the acknowledgment class of the message. See [MS-MQQB] section 2.2.18.1.6.

Reserved (15 bits): MUST be ignored.

AbortCounter (4 bytes): A ULONG that specifies the number of sequentially failed attempts to read the message or to move the message. See sections 3.1.4.13, 3.1.4.10, and 3.1.6.1.

MoveCounter (4 bytes): A ULONG that specifies the number of times that the message has been moved. See section 3.1.4.10.

LastMoveTime (4 bytes): A ULONG that specifies the local time of the most recent move of the message. The time is specified as the number of milliseconds elapsed since midnight of January 1, 1970. If the message has never been moved, this value is 0x00000000. See section 3.1.4.10.

SubqueueName (64 bytes): If the message belongs to a subqueue, the value MUST contain the null-terminated Unicode string that specifies the subqueue name. If the subqueue name is shorter than the field size, the remaining bytes MUST be set to 0x00. If the message does not belong to the subqueue, all bytes MUST be set to 0x00.

TargetSubqueueName (64 bytes): If the message is participating in the transacted Move operation that is not yet committed or aborted, this field MUST contain the null-terminated Unicode string that specifies the target subqueue name. If the subqueue name is shorter than the field size, the remaining bytes MUST be set to 0x00. If the message is not part of a transacted Move operation, all bytes MUST be set to 0x00.