Read-only. The Id property identifies the message using an MSMQ-generated message identifier.
Type: | Variant containing array of bytes. |
Run time: | read-only |
object.Id
Syntax Element | Description |
object | Message (MSMQMessage) object from queue. |
20-byte message identifier (array of bytes).
MSMQ generates a 20-byte message identifier and attaches it to the message when the message is sent. The identifier is an array of bytes that can be read by either the sending or receiving application.
MSMQ generates message identifiers for all messages, including acknowledgment messages generated by MSMQ and MSMQ Connector applications. When an acknowledgment message is created, the identifier of the original message can be found in the acknowledgment message's CorrelationId property.
This example locates a destination queue (creating one if one does not exist), sends two messages to the queue, then reads the message and displays their message identifier.
To try this example using Microsoft Visual Basic (version 5.0), paste the code into the Code window of a form, and then run the example and click the form.
Dim query As New MSMQQuery Dim qinfos As MSMQQueueInfos Dim qinfoDest As MSMQQueueInfo Dim q As MSMQQueue Dim msgSent1 As New MSMQMessage Dim msgSent2 As New MSMQMessage Dim msgRead As MSMQMessage Dim strID As String 'String representation of ID. Private Sub Form_Click() '********************************** ' Locate destination queue '(create one if one doesn't exist). '********************************** Set qinfos = query.LookupQueue(Label:="Destination Queue") qinfos.Reset Set qinfoDest = qinfos.Next If qinfoDest Is Nothing Then Set qinfoDest = New MSMQQueueInfo qinfoDest.PathName = ".\DestQueue" qinfoDest.Label = "Destination Queue" qinfoDest.Create End If '************************ ' Open destination queue. '************************ Set q = qinfoDest.Open(MQ_SEND_ACCESS, MQ_DENY_NONE) '************** ' Send Messages. '************** msgSent1.Label = "Test Message" msgSent1.Body = "This message tests the message identifier." msgSent1.Send q For counter = LBound(msgSent.Id) To UBound(msgSent.Id) strID = strID & Hex(msgSent.Id(Counter)) Next counter MsgBox "Message (" + StrID + ") was sent to the queue." strID = "" msgSent2.Label = "Test Message" msgSent2.Body = "This message tests the message identifier." msgSent2.Send q For counter = LBound(msgSent2.Id) To UBound(msgSent2.Id) strID = strID & Hex(msgSent2.Id(Counter)) Next counter MsgBox "Message (" + strID + ") was sent to the queue." strID = "" q.Close '************************************ ' Read the message in the destination ' queue and display its identifier. '************************************ Set q = qinfoDest.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE) Set msgRead = q.Receive (ReceiveTimeout:=0) While Not msgRead Is Nothing For Counter = LBound(msgRead.Id) To UBound(msgRead.Id) strID = strID & Hex(msgRead.Id(Counter)) Next Counter MsgBox "The message " + strID + " was removed from the queue." strID = "" Set msgRead = q.Receive Wend End Sub
Body, Close, Create, Label, MSMQMessage, MSMQQuery, MSMQQueue, MSMQQueueInfo, MSMQQueueInfos, Next, Open, PathName, Receive, Reset, Send