3.2.3 Initialization

The implementation of this protocol SHOULD<8> open the local private change notification queue. This queue MUST be opened by raising an Open Queue ([MS-MQDMPR] section 3.1.7.1.5) event with the following arguments:

  • iFormatName := NOTIFY_QUEUE_PRIVATE as defined in section 1.9.

  • iRequiredAccess := ReceiveAccess.

  • iSharedMode := DenyNone.

This event returns rStatus and rOpenQueueDescriptor. If rStatus is MQ_OK, the value of rOpenQueueDescriptor is stored for reuse when dequeuing messages from this queue. Otherwise, if rStatus is different than MQ_OK, this protocol cannot work correctly.

After the change notification queue is open, the implementation MUST start a loop for the lifetime of the server side of this protocol for dequeuing and processing change notification messages:

  • Raise the Dequeue Message ([MS-MQDMPR] section 3.1.7.1.10) event with the following arguments:

    • iQueueDesc := The OpenQueueDescriptor ([MS-MQDMPR] section 3.1.1.16) ADM element instance referenced by rOpenQueueDescriptor returned by the Open Queue event that opened the change notification queue.

      This event returns rMessage, a reference to the Message ([MS-MQDMPR] section 3.1.1.12) ADM element instance that was dequeued.