com.ibm.mq

Class MQMD

  1. java.lang.Object
  2. extended bycom.ibm.mq.jmqi.JmqiObject
  3. extended bycom.ibm.mq.MQMD
Direct known subclasses:
MQMessage

  1. public class MQMD
  2. extends com.ibm.mq.jmqi.JmqiObject
The MQMD class contains the control information that accompanies the application data when a message travels between the sending and receiving applications.

Character data in the message descriptor is in the character set of the queue manager to which the application is connected; this is given by the CodedCharSetId queue manager attribute. Numeric data in the message descriptor is in the native machine encoding (given by MQENC_NATIVE).

If the sending and receiving queue managers use different character sets or encodings, the data in the message descriptor is converted automatically - it is not necessary for the receiving application to perform these conversions.

You can write an exit to convert an application's message data, that will be invoked when an MQGET call retrieves the message.

See Also:
MQMessage

Field Summary

Modifier and Type Field and Description
  1. byte[]
accountingToken
The accounting token.
  1. java.lang.String
applicationIdData
Application ID data.
  1. java.lang.String
applicationOriginData
Data about the originating application.
  1. int
backoutCount
The number of times the message has been backed out.
  1. int
characterSet
The coded character set identifier of character data in the application message data.
  1. byte[]
correlationId
Specifies the correlation identifier of the message to be retrieved.
  1. int
encoding
Specifies the representation used for numeric values in the application message data.
  1. int
expiry
The expiry time (in tenths of a second).
  1. int
feedback
The nature of the feedback report.
  1. java.lang.String
format
A name which indicates the nature of the data in the message.
  1. byte[]
groupId
The ID of the message group.
  1. int
messageFlags
Flags controlling the segmentation and status of the message.
  1. byte[]
messageId
Specifies the message identifier of the message to be retrieved.
  1. int
messageSequenceNumber
Sequence number of logical message within group.
  1. int
messageType
Indicates the type of the message.
  1. int
offset
Offset of data in the physical message from the start of the logical message.
  1. int
originalLength
Original length of a segmented message.
  1. int
persistence
The message persistence.
  1. int
priority
The message priority.
  1. java.lang.String
putApplicationName
The name of the application that put the message.
  1. int
putApplicationType
The type of application that put the message.
  1. java.util.GregorianCalendar
putDateTime
The time and date when the message was put.
  1. java.lang.String
replyToQueueManagerName
The name of the queue manager to which reply or report messages should be sent.
  1. java.lang.String
replyToQueueName
The name of the queue to which a reply should be sent.
  1. int
report
This field enables the application sending the original message to specify which report messages are required, whether the application message data is to be included in them, and also how the message and correlation ID in the report or reply are to be set.
  1. java.lang.String
userId
The user ID.
Fields inherited from class com.ibm.mq.jmqi.JmqiObject
COMP_JM, COMP_JN, COMP_JO

Constructor Summary

Constructor and Description
MQMD()
The default constructor.

Method Summary

Modifier and Type Method and Description
  1. int
getVersion()
Gets the version of the message.
  1. void
setVersion(int version)
Sets the version of the message.
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail

report

  1. public int report
This field enables the application sending the original message to specify which report messages are required, whether the application message data is to be included in them, and also how the message and correlation ID in the report or reply are to be set. It comprises one or more constants from the MQC class combined by means of the '+' or '|' operators.
You can select one type from each row of the following table:
basic with data with full data
Exception MQC.MQRO_EXCEPTION MQC.MQRO_EXCEPTION_WITH_DATA MQC.MQRO_EXCEPTION_WITH_FULL_DATA
Expiration MQC.MQRO_EXPIRATION MQC.MQRO_EXPIRATION_WITH_DATA MQC.MQRO_EXPIRATION_WITH_FULL_DATA
Confirm on arrival MQC.MQRO_COA MQC.MQRO_COA_WITH_DATA MQC.MQRO_COA_WITH_FULL_DATA
Confirm on delivery MQC.MQRO_COD MQC.MQRO_COD_WITH_DATA MQC.MQRO_COD_WITH_FULL_DATA

You can specify how the message ID is generated for the report or reply message:

You can specify one of the following to control how to set the correlation ID of the report or reply message:

You can specify the following to pass the discard option and exiry time of the original message to the report or reply message:

You can specify one of the following to control the disposition of the original message when it cannot be deleivered to the destination queue:

If no report options are specified, the default is
MQC.MQRO_NEW_MSG_ID | MQC.MQRO_COPY_MSG_ID_TO_CORREL_ID | MQC.MQRO_DEAD_LETTER_Q.


messageType

  1. public int messageType
Indicates the type of the message. The following values are currently defined:

Application defined values can also be used; these should be in the range MQMT_APPL_FIRSTto MQMT_APPL_LAST.

The default value of this field is MQC.MQMT_DATAGRAM.


expiry

  1. public int expiry
The expiry time (in tenths of a second). It is set by the application which puts the message. After a message's expiry time has elapsed, it is eligible to be discarded by the queue manager. If the message specified one of the MQC.MQRO_EXPIRATIONflags, then a report is generated when the message is discarded.

The default value is MQC.MQEI_UNLIMITED, which means that the message never expires.


feedback

  1. public int feedback
The nature of the feedback report. It is used with a message of type MQC.MQMT_REPORTto indicate the nature of the report.

The following feedback codes are defined:

Application-defined feedback values in the range MQC.MQFB_APPL_FIRSTto MQC.MQFB_APPL_LASTcan also be used.

The default value of this field is MQC.MQFB_NONE, indicating that no feedback is provided.


encoding

  1. public int encoding
Specifies the representation used for numeric values in the application message data. This applies to binary, packed decimal and floating point data. The behaviour of the read and write methods for these numeric formats is altered accordingly.

The following encodings are defined:

binary packed decimal floating point
big-endian MQC.MQENC_INTEGER_NORMAL MQC.MQENC_DECIMAL_NORMAL MQC.MQENC_FLOAT_IEEE_NORMAL
little-endian MQC.MQENC_INTEGER_REVERSED MQC.MQENC_DECIMAL_REVERSED MQC.MQENC_FLOAT_IEEE_REVERSED
zSeries MQC.MQENC_INTEGER_NORMAL MQENC_DECIMAL_NORMAL MQC.MQENC_FLOAT_S390

Construct a value for the encoding field by combining one value from each row of the table by use of '+' or '|' operators. The default value is MQC.MQENC_INTEGER_NORMAL | MQC.MQENC_DECIMAL_NORMAL | MQC.MQENC_FLOAT_IEEE_NORMAL. For convenience this value is also represented by MQC.MQENC_NATIVE. This setting causes MQMessage.writeInt()to write, for example, a big-endian integer, and MQMessage.readInt()to read a big-endian integer.

A loss in precision can occur when converting from IEEE format floating point values to zSeries format floating point values.


characterSet

  1. public int characterSet
The coded character set identifier of character data in the application message data. It alters the behaviour of MQMessage.readString(), MQMessage.readLine()and MQMessage.writeString().

The default value for this field is MQC.MQCCSI_Q_MGR. The following additional character set values are supported:

850
commonly used ASCII codeset
819
the ISO standard ASCII codeset
37
the American EBCDIC codeset
1200
Unicode
1208
UTF-8

format

  1. public java.lang.String format
A name which indicates the nature of the data in the message. It is set by the sender. You can use your own format names, but names beginning with the letters "MQ" have meanings that are defined by the queue manager.

The queue manager built-in formats are:

The default value is MQC.MQFMT_NONE.


priority

  1. public int priority
The message priority.

The default value is MQC.MQPRI_PRIORITY_AS_Q_DEF.


persistence

  1. public int persistence
The message persistence. The following values are defined:

The default value is MQC.MQPER_PERSISTENCE_AS_Q_DEF


messageId

  1. public byte[] messageId
Specifies the message identifier of the message to be retrieved. This applies to MQQueue.get(). Normally the queue manager returns the first message whose message identifier and correlation identifier match those specified. The special value MQC.MQMI_NONE allows any message identifier to match.

For MQQueue.put()this specifies the message identifier to use. If MQC.MQMI_NONE is specified, the queue manager generates a unique message identifier when the message is put. The value of this field is updated after the put to indicate the message identifier that was used.

The default value is MQC.MQMI_NONE.


correlationId

  1. public byte[] correlationId
Specifies the correlation identifier of the message to be retrieved. This applies to MQQueue.get(). Normally the queue manager returns the first message whose message identifier and correlation identifier match those specified. The special value MQC.MQCI_NONE allows any correlation identifier to match.

For MQQueue.put()this specifies the correlation identifier to use.

The default value is MQC.MQCI_NONE.


backoutCount

  1. public int backoutCount
The number of times the message has been backed out. This is the number of times the message has been returned by MQQueue.get(), as part of a unit of work, and subsequently backed out.

The default value is zero.


replyToQueueName

  1. public java.lang.String replyToQueueName
The name of the queue to which a reply should be sent. The application that issued the get request for the message should send MQC.MQFMT_REPLY and MQC.MQFMT_REPORT messages to this queue.

The default value is "" (empty string).


replyToQueueManagerName

  1. public java.lang.String replyToQueueManagerName
The name of the queue manager to which reply or report messages should be sent.

The default value is "" (empty string).


userId

  1. public java.lang.String userId
The user ID. It is part of the identity of the message and identifies which user originated it.

The default value is "" (empty string).


accountingToken

  1. public byte[] accountingToken
The accounting token. This is part of the identity of the message and it allows work done as a result of the message to be appropriately charged.

The default value is an array of zeros.


applicationIdData

  1. public java.lang.String applicationIdData
Application ID data. This is part of the identity context of the message - information defined by the application suite; it can be used to provide additional information about the message or its originator.

The default value is "" (empty string).


putApplicationType

  1. public int putApplicationType
The type of application that put the message. The value can be defined by the system or by the user.

The following values are defined by the system:

  • MQC.MQAT_AIX
  • MQC.MQAT_CICS
  • MQC.MQAT_DOS
  • MQC.MQAT_IMS
  • MQC.MQAT_MVS
  • MQC.MQAT_OS2
  • MQC.MQAT_OS400
  • MQC.MQAT_QMGR
  • MQC.MQAT_UNIX
  • MQC.MQAT_WINDOWS
  • MQC.MQAT_JAVA
  • MQC.MQAT_UNKNOWN
  • MQC.MQAT_NO_CONTEXT
  • MQC.MQAT_CICS_VSE
  • MQC.MQAT_VMS
  • MQC.MQAT_GUARDIAN
  • MQC.MQAT_VOS
  • MQC.MQAT_DEFAULT
  • MQC.MQAT_NSK
  • MQC.MQAT_CICS_BRIDGE
  • MQC.MQAT_NOTES_AGENT
  • MQC.MQAT_WINDOWS_NT
  • MQC.MQAT_IMS_BRIDGE
  • MQC.MQAT_XCF

The default value is the special value MQC.MQAT_NO_CONTEXT, which indicates that no context information is present in the message.


putApplicationName

  1. public java.lang.String putApplicationName
The name of the application that put the message.

The default value is "" (empty string).


putDateTime

  1. public java.util.GregorianCalendar putDateTime
The time and date when the message was put.

applicationOriginData

  1. public java.lang.String applicationOriginData
Data about the originating application. This can be used by the application to provide additional information about the origin of the message.

The default value is "" (empty string).


groupId

  1. public byte[] groupId
The ID of the message group. This identifies the message group to which the message belongs.

messageSequenceNumber

  1. public int messageSequenceNumber
Sequence number of logical message within group.

offset

  1. public int offset
Offset of data in the physical message from the start of the logical message.

messageFlags

  1. public int messageFlags

originalLength

  1. public int originalLength
Original length of a segmented message.

Constructor Detail

MQMD

  1. public MQMD()
The default constructor.

Method Detail

getVersion

  1. public int getVersion()
Gets the version of the message.
Returns:
the version.

setVersion

  1. public void setVersion(int version)
  2. throws MQException
Sets the version of the message.
Parameters:
version - the value to be set - valid values are
  • com.ibm.mq.constants.CMQC.MQMD_VERSION_1
  • com.ibm.mq.constants.CMQC.MQMD_VERSION_2
Throws:
MQException - if the value of the version is invalid.