Properties of Message
An overview of the properties of the Message object, with links to more detailed reference information.
Name of property | Description |
---|---|
JMS_IBM_CHARACTER_SET | The identifier (CCSID) of the coded character set, or code page, that the strings of character data in the body of the message is in when the XMS client forwards the message to its intended destination. In XMS, this property has a numeric value and maps to CCSID. However, this property is based on a JMS property so has a string type value and maps to the Java character set that represents this numeric CCSID. |
JMS_IBM_ENCODING | How numerical data in the body of the message is represented when the XMS client forwards the message to its intended destination. |
JMS_IBM_EXCEPTIONMESSAGE | Text that describes why the message was sent to the exception destination. This property is read-only. |
JMS_IBM_EXCEPTIONPROBLEMDESTINATION | The name of the destination that the message was at before the message was sent to the exception destination. |
JMS_IBM_EXCEPTIONREASON | A reason code indicating the reason why the message was sent to the exception destination. |
JMS_IBM_EXCEPTIONTIMESTAMP | The time when the message was sent to the exception destination. |
JMS_IBM_FEEDBACK | A code that indicates the nature of a report message. |
JMS_IBM_FORMAT | The nature of the application data in the message. |
JMS_IBM_LAST_MSG_IN_GROUP | Indicate whether the message is the last message in a message group. |
JMS_IBM_MSGTYPE | The type of the message. |
JMS_IBM_PUTAPPLTYPE | The type of application that sent the message. |
JMS_IBM_PUTDATE | The date when the message was sent. |
JMS_IBM_PUTTIME | The time when the message was sent. |
JMS_IBM_REPORT_COA | Request 'confirm on arrival' report messages, specifying how much application data from the original message must be included in a report message. |
JMS_IBM_REPORT_COD | Request 'confirm on delivery' report messages, specifying how much application data from the original message must be included in a report message. |
JMS_IBM_REPORT_DISCARD_MSG | Request that the message is discarded if it cannot be delivered to its intended destination. |
JMS_IBM_REPORT_EXCEPTION | Request exception report messages, specifying how much application data from the original message must be included in a report message. |
JMS_IBM_REPORT_EXPIRATION | Request expiration report messages, specifying how much application data from the original message must be included in a report message. |
JMS_IBM_REPORT_NAN | Request negative action notification report messages. |
JMS_IBM_REPORT_PAN | Request positive action notification report messages. |
JMS_IBM_REPORT_PASS_CORREL_ID | Request that the correlation identifier of any report or reply message is the same as the correlation identifier of the original message. |
JMS_IBM_REPORT_PASS_MSG_ID | Request that the message identifier of any report or reply message is the same as the message identifier of the original message. |
JMS_IBM_RETAIN | Set this property indicates to the queue manager to treat a message as Retained Publication. |
JMS_IBM_SYSTEM_MESSAGEID | An identifier that identifies the message uniquely within the service integration bus. This property is read-only. |
JMSX_APPID | The name of the application that sent the message. |
JMSX_DELIVERY_COUNT | The number of attempts to deliver the message. |
JMSX_GROUPID | The identifier of the message group to which the message belongs. |
JMSX_GROUPSEQ | The sequence number of the message within a message group. |
JMSX_USERID | The user identifier associated with the application that sent the message. |
JMS_IBM_MQMD* properties
IBM Message Service Client for .NET enables client applications to read/write MQMD fields using APIs. It also allows access to MQ message data. By default access to MQMD is disabled and must be enabled explicitly by the application using Destination properties XMSC_WMQ_MQMD_WRITE_ENABLED and XMSC_WMQ_MQMD_READ_ENABLED. These two properties are independent of each other.
All MQMD fields except StrucId and Version are exposed as additional Message object properties and are prefixed JMS_IBM_MQMD.
JMS_IBM_MQMD* properties take higher precedence over other properties like JMS_IBM* described in the previous table.
Send messages
All MQMD fields except StrucId and Version are represented. These properties refer only to the MQMD fields; where a property occurs both in the MQMD and in the MQRFH2 header, the version in the MQRFH2 is not set or extracted. Any of these properties can be set, except JMS_IBM_MQMD_BackoutCount. Any value set for JMS_IBM_MQMD_BackoutCount is ignored.
If a property has a maximum length and you supply a value that is too long, the value is truncated.
For certain properties, we must also set the XMSC_WMQ_MQMD_MESSAGE_CONTEXT property on the Destination object. The application must be running with appropriate context authority for this property to take effect. If we do not set XMSC_WMQ_MQMD_MESSAGE_CONTEXT to an appropriate value, the property value is ignored. If you set XMSC_WMQ_MQMD_MESSAGE_CONTEXT to an appropriate value but we do not have sufficient context authority for the queue manager, an exception is issued. Properties requiring specific values of XMSC_WMQ_MQMD_MESSAGE_CONTEXT are as follows.
The following properties require XMSC_WMQ_MQMD_MESSAGE_CONTEXT to be set to XMSC_WMQ_MDCTX_SET_IDENTITY_CONTEXT or XMSC_WMQ_MDCTX_SET_ALL_CONTEXT:- JMS_IBM_MQMD_UserIdentifier
- JMS_IBM_MQMD_AccountingToken
- JMS_IBM_MQMD_ApplIdentityData
The following properties require XMSC_WMQ_MQMD_MESSAGE_CONTEXT to be set to XMSC_WMQ_MDCTX_SET_ALL_CONTEXT:
- JMS_IBM_MQMD_PutApplType
- JMS_IBM_MQMD_PutApplName
- JMS_IBM_MQMD_PutDate
- JMS_IBM_MQMD_PutTime
- JMS_IBM_MQMD_ApplOriginData
Receive messages
All these properties are available on a received message if XMSC_WMQ_MQMD_READ_ENABLED property is set to true, irrespective of the actual properties that the producing application set. An application cannot modify the properties of a received message unless all properties are cleared first, according to the JMS specification. The received message can be forwarded without modifying the properties.Note: If the application receives a message from a destination with XMSC_WMQ_MQMD_READ_ENABLED property set to true, and forwards it to a destination with XMSC_WMQ_MQMD_WRITE_ENABLED set to true, this results in all the MQMD field values of the received message being copied into the forwarded message. Table of propertiesProperty | Description | Type |
---|---|---|
JMS_IBM_MQMD_REPORT | Options for report messages | System.Int32 |
JMS_IBM_MQMD_MSGTYPE | Message type | System.Int32 |
JMS_IBM_MQMD_EXPIRY | message lifetime | System.Int32 |
JMS_IBM_MQMD_FEEDBACK | Feedback or reason code | System.Int32 |
JMS_IBM_MQMD_ENCODING | Numeric encoding of message data | System.Int32 |
JMS_IBM_MQMD_CODEDCHARSETID | Character set identifier of message data | System.Int32 |
JMS_IBM_MQMD_FORMAT | Format name of message data | System.String |
JMS_IBM_MQMD_PRIORITYNote: If you assign a value to JMS_IBM_MQMD_PRIORITY that is not within the range 0-9, this value violates the JMS specification. | Message priority | System.Int32 |
JMS_IBM_MQMD_PERSISTENCE | Message persistence | System.Int32 |
JMS_IBM_MQMD_MSGIDNote: The JMS specification states that the message ID must be set by the JMS provider and that it must either be unique or null. If you assign a value to JMS_IBM_MQMD_MSGID, this value is copied to the JMSMessageID. Thus it is not set by the JMS provider and might not be unique: this value violates the JMS specification. | Message identifier | Byte ArrayNote: The use of byte array properties on a message violates the JMS specification. |
JMS_IBM_MQMD_CORRELIDNote: If you assign a value to JMS_IBM_MQMD_CORRELID that starts with the string 'ID:', this value violates the JMS specification. | Correlation identifier | Byte ArrayNote: The use of byte array properties on a message violates the JMS specification. |
JMS_IBM_MQMD_BACKOUTCOUNT | Backout counter | System.Int32 |
JMS_IBM_MQMD_REPLYTOQ | Name of reply queue | System.String |
JMS_IBM_MQMD_REPLYTOQMGR | Name of reply queue manager | System.String |
JMS_IBM_MQMD_USERIDENTIFIER | User identifier | System.String |
JMS_IBM_MQMD_ACCOUNTINGTOKEN | Accounting token | Byte Array Note: The use of byte array properties on a message violates the JMS specification. |
JMS_IBM_MQMD_APPLIDENTITYDATA | Application data relating to identity | System.String |
JMS_IBM_MQMD_PUTAPPLTYPE | Type of application that put the message | System.Int32 |
JMS_IBM_MQMD_PUTAPPLNAME | Name of the application that put the message | System.String |
JMS_IBM_MQMD_PUTDATE | Date when message was put | System.String |
JMS_IBM_MQMD_PUTTIME | Time when message was put | System.String |
JMS_IBM_MQMD_APPLORIGINDATA | Application data relating to origin | System.String |
JMS_IBM_MQMD_GROUPID | Group identifier | Byte Array Note: The use of byte array properties on a message violates the JMS specification. |
JMS_IBM_MQMD_MSGSEQNUMBER | Sequence number of local message within group | System.Int32 |
JMS_IBM_MQMD_OFFSET | Offset of data in physical message from start of logical message | System.Int32 |
JMS_IBM_MQMD_MSGFLAGS | Message flags | System.Int32 |
JMS_IBM_MQMD_ORIGINALLENGTH | Length of original message | System.Int32 |
See MQMD for further details.
Examples
This example results in a message being put to a queue or topic with MQMD.UserIdentifier set to "JoeBloggs".
// Create a ConnectionFactory, connection, session, producer, message // ... // Create a destination // ... // Enable MQMD write dest.setBooleanProperty(XMSC_WMQ_MQMD_WRITE_ENABLED, XMSC_WMQ_MQMD_WRITE_ENABLED_YES); // Optionally, set a message context if applicable for this MD field dest.setIntProperty(XMSC_WMQ_MQMD_MESSAGE_CONTEXT, XMSC_WMQ_MDCTX_SET_IDENTITY_CONTEXT); // On the message, set property to provide custom UserId msg.setStringProperty(JMS_IBM_MQMD_USERIDENTIFIER, "JoeBloggs"); // Send the message // ...
It is necessary to set XMSC_WMQ_MQMD_MESSAGE_CONTEXT before setting JMS_IBM_MQMD_USERIDENTIFIER. For more information about the use of XMSC_WMQ_MQMD_MESSAGE_CONTEXT, see Message object properties.
Similarly, we can extract the contents of the MQMD fields by setting XMSC_WMQ_MQMD_READ_ENABLED to true before receiving a message and then using the get methods of the message, such as getStringProperty. Any properties received are read-only.
This example results in the value field holding the value of the MQMD.ApplIdentityData field of a message got from a queue or a topic.
// Create a ConnectionFactory, connection, session, consumer // ... // Create a destination // ... // Enable MQMD read dest.setBooleanProperty(XMSC_WMQ_MQMD_READ_ENABLED, XMSC_WMQ_MQMD_READ_ENABLED_YES); // Receive a message // ... // Get required MQMD field value using a property System.String value = rcvMsg.getStringProperty(JMS_IBM_MQMD_APPLIDENTITYDATA);Parent topic: Properties of XMS objects