3.3.5.3 Sending a Change Notification Message

The Change Notification Message (section 2.2.4) MUST be sent within a Message ([MS-MQDMPR] section 3.1.1.12) ADM element instance through MSMQ to the destination queue manager. This section specifies the values that MUST be set that are specific to notification messages.

The sender MUST perform the following actions to process this event:

  • Create a Message ADM element instance rMessage with the following ADM attributes:

    • TimeToReachQueue := 300 seconds

    • DeliveryGuarantee := Express

    • Class := Normal

    • HashAlgorithm := the default value required by the MSMQ version.<12>

    • AuthenticationLevel := Sig20<13>

    • The sender MUST create a buffer of bytes of the size of the Change Notification Message plus 1. This additional byte is unused and MUST NOT affect the behavior of this protocol. The Change Notification Message MUST be included at the beginning of the created buffer, which MUST be assigned to rMessage.Body.

    • If the Version field of the Change Notification Message is 0x01, the sender MUST perform the following actions:

      • Set rMessage.SenderIdentifier to the Identifier ADM attribute of the QueueManager ADM element instance referenced by the iDirectoryObject input argument to the Send Change Notification (section 3.3.4.1) event.

      • Set rMessage.SenderIdentifierType to QueueManagerIdentifier.

  • Once rMessage is prepared, the implementation of this protocol MUST generate an Enqueue Message ([MS-MQDMPR] section 3.1.7.1.9) event with the following arguments:

    • iQueue := openNotifyQueueDescriptor.QueueReference, where openNotifyQueueDescriptor references the OpenQueueDescriptor ([MS-MQDMPR] section 3.1.1.16) ADM element instance created during the initialization phase in section 3.3.3.

    • iMessage := rMessage