2.2.5 Notification Body

A Notification Body is used to encapsulate a change notification that indicates a change either on a queue or a machine object within a directory service. The change is expressed as a notification event that indicates one of the following events: creation of a queue object, change on a queue object, deletion of a queue object, or change on a machine object. A Notification Body is used by a queue manager to send a change notification message to the queue manager that is the owner of the modified object. This format does not include the changed data. The recipient queue manager MUST read the data from the directory service, as specified in section 3.2.5.2; therefore, queue managers do not have to be trusted.

<Notification>

<Event>Event</Event>

<ObjectGuid>ObjectGuid</ObjectGuid>

<DomainController>DirectoryServiceServer</DomainController>

</Notification>

Event

Specifies the notification event for a queue or a machine object on which changes were made within a domain controller (DC). This MUST be set to 1, 2, 3, or 4. A value of 1 indicates creation of a queue object. A value of 2 indicates change on a queue object; a value of 3 indicates deletion of a queue object. A value of 4 indicates change on a machine object.

ObjectGuid

Specifies the object that was modified within the DC. This MUST be set to the GUID of the modified object that MUST be either a queue or a machine object.

DirectoryServiceServer

Specifies the name of the Directory Service server through which the queue or the machine object was modified in the directory.

Notification body MUST be set to a Unicode string in the format specified by the following Augmented Backus-Naur Form (ABNF) rule.

 NotificationBody =     "<Notification>"
                        "<Event>"event"</Event>"
                        "<ObjectGuid>"object-guid"</ObjectGuid >"
                        "<DomainController>"
                          DirectoryServiceServer
                        "</DomainController>"
                        "</Notification>"
      
 event            = "1" / "2" / "3" / "4"
                    ;where "1": create queue, "2": change queue, 
                    ;"3": delete queue, "4": change machine
      
 object-guid      = 8HEXDIG"-"4HEXDIG"-"4HEXDIG"-"4HEXDIG"-"12HEXDIG
                    ; A GUID of the form XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 DirectoryServiceServer = 1*256(VCHAR)
                     ; A directory service name.
      
 HEXDIG            =  DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
 DIGIT             =  %x30-39
                      ; 0-9
 VCHAR             =  %x21-7E