PROPID_Q_JOURNAL

 

Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista

The PROPID_Q_JOURNAL property specifies how Message Queuing tracks messages removed from the queue.

Property ID

PROPID_Q_JOURNAL

Type Indicator

VT_UI1

MQPROPVARIANT Field

bVal

Property Value

This property can be set to one of the following values:

MQ_JOURNAL

Target journaling is requested. Copies of messages are stored in the journal of the queue whenever a receiving application removes a message.

MQ_JOURNAL_NONE

The default. Target journaling is not requested. Messages removed from the destination queue are no longer available.

Remarks

When PROPID_Q_JOURNAL is set to MQ_JOURNAL, Message Queuing stores a copy of each message removed from the queue in the journal of the queue. For information on tracking messages that are removed from the queue, see Target Journaling.

Queue journals are not created when target journaling is requested. Queue journals are created automatically by Message Queuing when the destination queue is created. However, applications can set the maximum size of the queue journal by setting the PROPID_Q_JOURNAL_QUOTA property of the destination queue.

Periodically clear messages from the queue journal to remove messages that are no longer needed. Messages stored in the queue journal count against the quota of the journal and the quota of the computer where the queue journal resides (the computer quota is set by the administrator). Processing the messages in queue journals is the responsibility of the application or the Message Queuing administrator. Messages should be removed from these queues on a regular basis so that they do not consume the resources of the computer. If the journal or computer quota is exceeded, Message Queuing will not send copies of the messages to the journal when the messages are received.

To set target journaling when creating a queue, include PROPID_Q_JOURNAL in the MQQUEUEPROPS structure and call the MQCreateQueue function.

To reset the journaling level, specify PROPID_Q_JOURNAL in the MQQUEUEPROPS structure and call MQSetQueueProperties. Resetting this property has no effect on messages already removed from the queue.

To retrieve the journaling level of the queue, specify PROPID_Q_JOURNAL in the MQQUEUEPROPS structure, and then call the MQGetQueueProperties function and examine its returned value.

When retrieving the journaling level, the type indicator can be set to VT_UI1 or VT_NULL. If you set the type indicator equal to VT_NULL, Message Queuing automatically changes the type indicator to VT_UI1 during the function call.

Equivalent COM Property

When using COM components, the journaling level of the queue can be set and retrieved using the MSMQQueueInfo.Journal property.

Example Code

The following code fragments show how PROPID_Q_JOURNAL is specified in arrays that can be used to initialize an MQQUEUEPROPS structure when setting (or resetting) and retrieving the journaling level of the queue.

To Set or Reset the Journaling Level

aQueuePropID[i] = PROPID_Q_JOURNAL;          // Property identifier  
aQueuePropVar[i].vt = VT_UI1;                // Type indicator  
aQueuePropVar[i].bVal = MQ_JOURNAL;          // Queue journal is used  
i++;  

To Retrieve the Journaling Level

aQueuePropID[i] = PROPID_Q_JOURNAL;          // Property identifier  
aQueuePropVar[i].vt = VT_NULL;               // Type indicator  
i++;  

The following examples are included in Using Message Queuing.

For an example of See
Setting the journaling level of an existing queue C/C++ Code Example: Setting PROPID_Q_JOURNAL
Retrieving the journaling level of an existing queue C/C++ Code Example: Retrieving PROPID_Q_JOURNAL

See Also

Queue Properties
MQCreateQueue
MQGetQueueProperties
MQQUEUEPROPS
MQSetQueueProperties
PROPID_Q_JOURNAL_QUOTA