3.2.5.2 Processing a Change Notification Message Version 0x02

For a Change Notification Message (section 2.2.4) with a Version field set to 0x02, NotificationMessage.Data is a Notification Body (section 2.2.5). The server MUST update the state of the queue or machine object referenced by the GUID contained in ObjectGuid. If the value contained in Event indicates creation or update, the queue manager MUST request information from the directory service specified within DomainController for the updating process, as specified in [MS-MQDMPR].

The following actions MUST be performed upon the reception of a notification message:

  •  If Event is set to 1 (create queue), the following processing rules MUST be performed:

    • Raise a Read Directory ([MS-MQDMPR] section 3.1.7.1.20) event with the following arguments:

      • iDirectoryObjectType := "Queue".

      • iFilter := "Identifier" EQUALS ObjectGuid

      • iAttributeList := {"Type", "Identifier", "BasePriority", "Journal", "Quota", "JournalQuota", "CreateTime", "ModifyTime", "Security", "Pathname", "Label", "Authentication", "PrivacyLevel", "Transactional", "MulticastAddress", "DirectoryPath"}

    • Raise a Create Queue ([MS-MQDMPR] section 3.1.7.1.3) event with the following arguments:

      • iQueue := A copy of the Queue ([MS-MQDMPR] section 3.1.1.2) ADM element instance returned by the Read Directory event.

      • iSkipDirectory := True.

  • If Event is set to 2 (change queue), the following processing rules MUST be performed:

    • Raise a Read Directory event with the following arguments:

      • iDirectoryObjectType := "Queue".

      • iFilter := "Identifier" EQUALS ObjectGuid

      • iAttributeList := {"Type", "Identifier", "BasePriority", "Journal", "Quota", "JournalQuota", "CreateTime", "ModifyTime", "Security", "Pathname", "Label", "Authentication", "PrivacyLevel", "Transactional", "MulticastAddress", "DirectoryPath"}

    • Update the corresponding Queue ADM element instance in the QueueCollection ADM attribute of the local QueueManager ([MS-MQDMPR] section 3.1.1.1) ADM element instance with the Queue ADM element instance returned by the Read Directory event.

  • If Event is set to 3 (delete queue), the following processing rules MUST be performed:

    • Raise a Delete Queue ([MS-MQDMPR] section 3.1.7.1.4) event with the following arguments:

      • iQueue := A reference to the Queue ADM element instance rQueue in the QueueCollection ADM attribute of the local QueueManager ADM element instance, where rQueue.Identifier is equal to ObjectGuid.

      • iSkipDirectory := True.

  • If Event is set to 4 (change queue manager), the following processing rules MUST be performed:

    • Raise a Read Directory event with the following arguments:

      • iDirectoryObjectType := "QueueManager".

      • iFilter := "Identifier" EQUALS ObjectGuid

      • iAttributeList := {"QueueManagerQuota", "JournalQuota", "Security"}

    • Update the local QueueManager ADM element instance with the QueueManager ADM element instance returned by the Read Directory event.

Section 3.2.1 describes the abstract model that can be used as a reference to maintain data specific to the Queue and QueueManager ADM elements in a queue manager that implements this protocol.