com.ibm.mq
Class MQMD

java.lang.Object
  |
  +--com.ibm.mq.MQMD
Direct Known Subclasses:
MQMessage

public class MQMD
extends java.lang.Object

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
 byte[] accountingToken
          The accounting token.
 java.lang.String applicationIdData
          Application ID data.
 java.lang.String applicationOriginData
          Data about the originating application.
 int backoutCount
          The number of times the message has been backed out.
 int characterSet
          The coded character set identifier of character data in the application message data.
 byte[] correlationId
          Specifies the correlation identifier of the message to be retrieved.
 int encoding
          Specifies the representation used for numeric values in the application message data.
 int expiry
          The expiry time (in tenths of a second).
 int feedback
          The nature of the feedback report.
 java.lang.String format
          A name which indicates the nature of the data in the message.
 byte[] groupId
          The ID of the message group.
 int messageFlags
          Flags controlling the segmentation and status of the message.
 byte[] messageId
          Specifies the message identifier of the message to be retrieved.
 int messageSequenceNumber
          Sequence number of logical message within group.
 int messageType
          Indicates the type of the message.
 int offset
          Offset of data in the physical message from the start of the logical message.
 int originalLength
          Original length of a segmented message.
 int persistence
          The message persistence.
 int priority
          The message priority.
 java.lang.String putApplicationName
          The name of the application that put the message.
 int putApplicationType
          The type of application that put the message.
 java.util.GregorianCalendar putDateTime
          The time and date when the message was put.
 java.lang.String replyToQueueManagerName
          The name of the queue manager to which reply or report messages should be sent.
 java.lang.String replyToQueueName
          The name of the queue to which a reply should be sent.
 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.
 java.lang.String userId
          The user ID.
 
Constructor Summary
MQMD()
          The default constructor.
 
Method Summary
 int getVersion()
          Gets the version of the message.
 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

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:
basicwith 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

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_FIRST to MQMT_APPL_LAST.

The default value of this field is MQC.MQMT_DATAGRAM.


expiry

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_EXPIRATION flags, 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

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

The following feedback codes are defined:

Application-defined feedback values in the range MQC.MQFB_APPL_FIRST to MQC.MQFB_APPL_LAST can also be used.

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


encoding

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:
binarypacked 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

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

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

public int priority
The message priority.

The default value is MQC.MQPRI_PRIORITY_AS_Q_DEF.


persistence

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

The default value is MQC.MQPER_PERSISTENCE_AS_Q_DEF


messageId

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

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

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

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

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

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

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

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

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:

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


putApplicationName

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

The default value is "" (empty string).


putDateTime

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


applicationOriginData

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

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


messageSequenceNumber

public int messageSequenceNumber
Sequence number of logical message within group.


offset

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


messageFlags

public int messageFlags
Flags controlling the segmentation and status of the message. Possible values are:


originalLength

public int originalLength
Original length of a segmented message.

Constructor Detail

MQMD

public MQMD()
The default constructor.

Method Detail

getVersion

public int getVersion()
Gets the version of the message.

Returns:
the version.

setVersion

public void setVersion(int version)
                throws MQException
Sets the version of the message.

Parameters:
version - the value to be set.
Throws:
MQException - if the value of the version is invalid.

(c) Copyright IBM Corp. 2005. All Rights Reserved.