The PROPID_M_TRACE property specifies whether Message Queuing traces the route of the message.
This property can be set to one of the following values:
Tracing is requested. Each hop made by the original message generates a report message that is sent to a report queue.
The default. Tracing is not requested.
When tracing is enabled and a report queue is specified, report messages are created and sent to the report queue each time the message leaves or arrives at a Message Queuing computer. For example, report messages are generated at the following time.
When the message leaves the source computer one report message is generated.
When the message arrives at and leaves a routing server two report messages are generated.
When the message arrives the target computer where the destination queue resides one report message is generated.
Report queues are specified by the computer. If MQMSG_SEND_ROUTE_TO_REPORT_QUEUE is specified but the report queue is not specified, this property is ignored. For information on selecting report queues and what is contained in a report message, see Tracing Messages.
|Message Queuing does not support tracing under the following conditions.|
When you send messages to multiple destinations using distribution lists, multicast addresses, and multiple-element format names.
When you send HTTP messages.
To retrieve the tracing level of a message, specify PROPID_M_TRACE in the MQMSGPROPS structure. Then call MQReceiveMessage or MQReceiveMessageByLookupId and examine the returned value. When retrieving this property, the type indicator can be set to VT_UI1 or VT_NULL. If you set the type indicator to VT_NULL, Message Queuing automatically changes the type indicator to VT_UI1 during the function call.
Equivalent COM Property
With COM components, the equivalent property is MSMQMessage.Trace.
The following code fragment shows how to specify PROPID_M_TRACE in arrays that can be used to initialize an MQMSGPROPS structure to set and retrieve the tracing level.
To Set the Tracing Level
aMsgPropId[i] = PROPID_M_TRACE; // Property ID aMsgPropVar[i].vt = VT_UI1; // Type indicator aMsgPropVar[i].bVal = MQMSG_SEND_ROUTE_TO_REPORT_QUEUE; // Tracing level requested. i++;
To Retrieve the Tracing Level
aMsgPropId[i] = PROPID_M_TRACE; aMsgPropVar[i].vt = VT_NULL; i++;
The following examples are included in Using Message Queuing.
|For an example of||See|
Sending messages that request tracing
Reading report messages in a report queue