Share via


PROPID_M_JOURNAL (Compact 2013)

3/26/2014

This property specifies the source journaling level for the message.

The source journaling level specifies if a copy of the message should be kept in a machine journal (on the originating machine), sent to a dead-letter queue, or neither.

  • Type Indicator
    VT_UI1
  • PROPVARIANT Field
    bVal
  • Property Values
    This property can be set to one or more of the following values.

    Value

    Description

    MQMSG_DEADLETTER

    For nontransactional messages, the message is sent to the nontransactional dead-letter queue on the computer that could not deliver the message (for example, if a message timer expires).

    For transactional messages, the message is sent to the transactional dead-letter queue on the source machine in all negative and in-doubt cases.

    For MSMQ 1.0 and 2.0 differences, see the Remarks section.

    MQMSG_JOURNAL

    When the message is transmitted (from the originating machine to the next hop), it is kept in a machine journal on the originating machine.

    MQMSG_JOURNAL_NONE

    The default. The message is not kept in the machine journal of the originating machine.

Remarks

PROPID_M_JOURNAL does not create a queue.

Machine journals and dead-letter queues are system queues generated by MSMQ.

When you store messages in a journal or dead-letter queue, clear these queues periodically to remove messages that are no longer needed.

Messages stored in a journal and dead-letter queues count against the quota for the computer where the queues reside (the computer quota is set by the administrator).

Keep in mind the following differences between MSMQ 1.0 and MSMQ 2.0:

  • In MSMQ 1.0, this property is ignored for transactional messages; all transactional messages not confirmed by MSMQ are sent to the dead-letter queue.
  • In MSMQ 2.0, this property is not ignored. The default of the PROPID_M_JOURNAL property is MQMSG_JOURNAL_NONE (undelivered transactional messages are not sent to the dead-letter queue).
    To use the transaction confirmation process provided by MSMQ, specify MQMSG_DEADLETTER.
    To use a machine journal or dead-letter queue, specify PROPID_M_JOURNAL in the MQMSGPROPS structure and call MQSendMessage.
    To retrieve the journaling level of a message, specify PROPID_M_JOURNAL in the MQMSGPROPS structure. Then call MQReceiveMessage and examine the returned value.

Examples

This example shows how PROPID_M_JOURNAL is specified in the MQMSGPROPS structure.

aMsgPropId[i] = PROPID_M_JOURNAL;           // Property ID
aMsgPropVar[i].vt = VT_UI1;                 // Type indicator
MsgProps.aPropVar[i].bVal = MQMSG_JOURNAL;  // Value
i++;

Note

OS versions prior to 2.12 require the MSMQ add-on pack.

Requirements

Header

mq.h

See Also

Reference

MSMQ Properties
MQReceiveMessage
MQSendMessage
MQMSGPROPS