SRMP messages

Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

SRMP messages

Internet messaging is increasingly using the medium of XML, particularly the XML messaging framework of SOAP 1.1. The Web Services Routing Protocol (WS-Routing) supports both one-way and request/response message exchange paradigms. However, it is explicitly not a goal of WS-Routing to provide reliability. The SOAP Reliable Messaging Protocol (SRMP) is an open general-purpose extension of WS-Routing that adds reliability to WS-Routing and SOAP.

Message Queuing uses both WS-Routing and SRMP elements as well as elements defined in the MSMQ namespace to specify its message properties in HTTP messages. Some Message Queuing message properties have equivalents defined by WS-Routing, and others have equivalents defined by SRMP.

When sending an HTTP message, Message Queuing automatically transforms the individual binary message properties to specific WS-Routing elements, SRMP elements, and elements of the MSMQ namespace, and includes them in the header portion of the SOAP envelope. On the receiver side, Message Queuing maps these XML elements to the respective binary message properties before storing the message. The end-to-end semantics for transmitting message properties over a non-HTTP transport are preserved for messages sent over an HTTP transport.

The header portion of the SOAP envelope in an HTTP message contains two required entries and up to seven optional entries in the following order:

  • <path>

    (Required.) Contains WS-Routing subelements.

  • <properties>

    (Required.) Contains SRMP subelements.

  • <services>

    (Optional.) Contains SRMP subelements.

  • <Stream>

    (Optional.) Contains SRMP subelements. This entry is generated only in transactional messages.

  • <streamReceipt>

    (Optional.) Contains SRMP subelements. A <streamReceipt> entry is generated only in order acknowledgment messages (stream receipts) sent for transactional messages (streamed HTTP messages).

  • <deliveryReceipt>

    (Optional.) Contains SRMP subelements. A <deliveryReceipt> entry is generated only in acknowledgment messages sent in response to a request to indicate that the original message reached the destination queue.

  • <commitmentReceipt>

    (Optional.) Contains SRMP subelements. A <commitmentReceipt> entry is generated only in acknowledgment messages sent in response to a request to indicate whether or not the original message is received from the destination queue before its time-to-be-received timer expires.

  • <Msmq>

    (Optional.) Contains subelements defined in the MSMQ namespace.

  • <Signature>

    (Optional.) Contains subelements that specify an XML digital signature.

For more information about SRMP elements and the equivalent Message Queuing properties, see the Message Queuing Software Development Kit (SDK). For details of how to access the SDK, see Additional Message Queuing resources.

Applications can be written to create messages that are indistinguishable from Message Queuing-generated HTTP messages on computers that do not have HTTP Support installed, such as computers running MSMQ 1.0 or MSMQ 2.0. These messages can be sent as HTTP packets and accepted by queues hosted on computers with HTTP Support installed. They can then be received as HTTP messages by applications running on those computers.