3.1.7.7 Message Position Available

This event is triggered when the Message Position Available ([MS-MQDMPR] section 3.1.7.2.2) event is raised.

The following arguments are passed when the event is raised:

  • iQueue: A reference to a Queue ADM element instance.

  • iPosition: A reference to a MessagePosition ADM element instance.

The following steps MUST be performed to process the event:

  • If iQueue is not an OutgoingQueue ADM element instance, take no further action.

  • If neither of the following conditions is met, take no further action.

    • iQueue.Multicast is TRUE.

    • iQueue.DestinationFormatName is a direct format name (see [MS-MQMQ] section 2.1.2) and it specifies using HTTP or HTTPS.

  • If iQueue.State is equal to OnHold or Inactive, take no further action.

  • Convert the Message ADM element referred to by iPosition.MessageReference to an SRMPMessage ADM element by adding the fields described in section 3.1.1.1.4, initialized as follows:

    • AwaitingStreamReceipt is set to FALSE.

    • AwaitingFinalStreamReceipt is set to FALSE.

  • If the iQueue.ConnectionHistory array is empty, the protocol MUST establish a connection by raising an Establish Transport Connection (section 3.1.7.9) event with the following argument:

    • iOutgoingQueue := iQueue

  • The Add Message To Dispatch Collection ([MS-MQDMPR] section 3.1.7.1.28) event MUST be raised with the following arguments.

    • iPosition := A reference to OutgoingMessagePosition.MessagePosition.

    • iData := NULL.