2.1 Transport

For the remainder of sections 2 and 3, "message" refers to a COMQC message unless otherwise specified.

COMQC uses MSMQ Queue Manager Client Protocol [MS-MQMP], and MSMQ: Data Structures [MS-MQMQ] as transport.

A new instance of a Message Queuing (MSMQ) Message ADM element (as specified in [MS-MQDMPR] section 3.1.1.12) MUST be created. The message defined in section 2.2 MUST be stored as a BLOB in the Body attribute of the Message ADM element instance.

The Extension attribute of the Message ADM element MUST be set to GUID (as specified in [MS-DTYP] section 2.3.4.2) {1664BCFB-1751-11d2-B58E-00E0290E6C31}.

When opening a message queue, a COMQC client MUST specify the MSMQ parameters MQ_SEND_ACCESS (as specified in [MS-MQMP] section 3.1.4.17) and MQ_DENY_NONE. When opening a message queue, a COMQC server MUST specify MQ_RECEIVE_ACCESS and MQ_DENY_NONE. Both transacted and nontransacted message queues MUST be supported.

When running MSMQ in workgroup mode, the AuthenticationLevel attribute of the Message ADM element (as specified in [MS-MQDMPR] section 3.1.1.12) MUST be set to None and the SenderIdentifierType attribute of the Message ADM element to None. Otherwise, a COMQC client SHOULD allow all MSMQ message-level parameters to be configurable. A COMQC server MUST support all MSMQ message-level parameters.

When running MSMQ in workgroup mode, the message queue name SHOULD be set to "<computer name>\PRIVATE$\<COM+ application name>", where <computer name> is the lowercase, non-fully-qualified domain name of the computer running the server and <COM+ application name> is the display name of the COM+ application hosting the objects that are exposed via COMQC.

Otherwise, the message queue name SHOULD be set to "<computer name>\<COM+ application name>".

The entire communication between client and server MUST be contained in a single message. The server MUST NOT send a reply message, and the client MUST NOT expect one.