MQDestination.NET class
Use MQDestination to access methods that are common to MQQueue and MQTopic. MQDestination is an abstract base class and cannot be instantiated.
Class
System.Object | └─ IBM.WMQ.MQBase | └─ IBM.WMQ.MQBaseObject | └─ IBM.WMQ.MQManagedObject | └─ IBM.WMQ.MQDestination | └─ IBM.WMQ.MQQueue | └─ IBM.WMQ.MQTopicpublic class IBM.WMQ.MQDestination extends IBM.WMQ.MQManagedObject;
Properties
Test for MQException being thrown when getting properties.
- public DateTime CreationDateTime {get;}
-
The date and time that the queue or topic was created. Originally contained within MQQueue, this property has been moved into the base MQDestination class.
There is no default value.
- public int DestinationType {get;}
-
Integer value describing the type of destination being used. Initialized from the sub classes constructor, MQQueue or MQTopic, this value can take one of these values:
- MQOT_Q
- MQOT_TOPIC
There is no default value.
Methods
- public void Get(MQMessage message);
- public void Get(MQMessage message, MQGetMessageOptions getMessageOptions);
- public void Get(MQMessage message, MQGetMessageOptions getMessageOptions, int MaxMsgSize);
-
Throws MQException.
Gets a message from a queue if the destination is an MQQueue object or from a topic if the destination is an MQTopic object, using a default instance of MQGetMessageOptions to do the get.
If the get fails, the MQMessage object is unchanged. If it succeeds, the message descriptor and message data portions of the MQMessage are replaced with the message descriptor and message data from the incoming message.
All calls to IBM MQ from a particular MQQueueManager are synchronous. Therefore, if you perform a get with wait, all other threads using the same MQQueueManager are blocked from making further IBM MQ calls until the Get call is accomplished. If you need multiple threads to access IBM MQ simultaneously, each thread must create its own MQQueueManager object.
- message
- Contains the message descriptor and the returned message data. Some of the fields in the message descriptor are input parameters. It is important to ensure that the MessageId and CorrelationId input parameters are set as required.
- getMessageOptions
- Options controlling the action of the get.
Use option MQC.MQGMO_CONVERT might result in an exception with reason code MQC.MQRC_CONVERTED_STRING_TOO_BIG when converting from single-byte character codes to double byte codes. In this case, the message is copied into the buffer without conversion.
If getMessageOptions is not specified, the message option used is MQGMO_NOWAIT.
If we use the MQGMO_LOGICAL_ORDER option in a reconnectable client, the MQRC_RECONNECT_INCOMPATIBLE reason code is returned.
- MaxMsgSize
- The largest message this message object is to receive. If the message on the queue is larger than this size, one of two things occurs:
- If the MQGMO_ACCEPT_TRUNCATED_MSG flag is set in the MQGetMessageOptions object, the message is filled with as much of the message data as possible. An exception is thrown with the MQCC_WARNING completion code and MQRC_TRUNCATED_MSG_ACCEPTED reason code.
- If the MQGMO_ACCEPT_TRUNCATED_MSG flag is not set, the message remains on the queue. An exception is thrown with the MQCC_WARNING completion code and MQRC_TRUNCATED_MSG_FAILED reason code.
If MaxMsgSize is not specified, the whole message is retrieved.
- public void Put(MQMessage message);
- public void Put(MQMessage message, MQPutMessageOptions putMessageOptions);
-
Throws MQException.
Puts a message to a queue if the destination is an MQQueue object or publishes a message to a topic if the destination is an MQTopic object.
Modifications to the MQMessage object after the Put call has been accomplished do not affect the actual message on the IBM MQ queue or publication topic.
Put updates the MessageId and CorrelationId properties of the MQMessage object and does not clear message data. Further Put or Get calls refer to the updated information in the MQMessage object. For example, in the following code snippet, the first message contains a and the second ab.msg.WriteString("a"); q.Put(msg,pmo); msg.WriteString("b"); q.Put(msg,pmo);
- message
- An MQMessage object containing the message descriptor data, and message to be sent. The message descriptor can be altered as a consequence of this method. The values in the message descriptor immediately after the completion of this method are the values that were put to the queue or published to the topic.
- putMessageOptions
- Options controlling the action of the put.
Note: For simplicity and performance, if you want to put a single message to a queue, use MQQueueManager.Put object. You should have an MQQueue object for this.