MQMessageクラス(Java)
このクラスは,MQで登録・取り出しするメッセージのメッセージ記述子とメッセージバッファから形成されています。変数はメッセージ記述子の要素です。
メッセージ記述子の詳細については,マニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。
変数
● public int report
報告オプションです。
MQMD構造体の,Reportフィールドに相当します。
● public int messageType
メッセージタイプです。
MQMD構造体の,MsgTypeフィールドに相当します。
● public int expiry
メッセージの生存期間です。
MQMD構造体の,Expiryフィールドに相当します。
● public int feedback
フィードバックコードです。
MQMD構造体の,Feedbackフィールドに相当します。
● public int encoding
データのマシンコード化です。
MQMD構造体の,Encodingフィールドに相当します。
● public int characterSet
コード化文字セット識別子です。
MQMD構造体の,CodedCharSetIdフィールドに相当します。
● public String format
フォーマット名称です。
MQMD構造体の,Formatフィールドに相当します。
● public int priority
メッセージ優先度です。
MQMD構造体の,Priorityフィールドに相当します。
● public int persistence
メッセージの永続性です。
MQMD構造体の,Persistenceフィールドに相当します。
● public byte messageId[](24バイト)
メッセージ識別子です。
MQMD構造体の,MsgIdフィールドに相当します。
次に示す条件でこの変数を指定した場合,MQRC_MSG_ID_ERROR(2206)でMQExceptionがスローされます。
-
24バイト未満のbyte型配列を指定して,MQQueue.getメソッドが発行されました。
-
24バイト未満のbyte型配列を指定し,MQPutMessageOptions.optionsにMQPMO_NEW_MSG_IDオプションを指定して,MQQueue.putメソッドが発行されました。
-
すべて0で設定された24バイト未満のbyte型配列を指定して,MQQueue.putメソッドが発行されました。
● public byte correlationId[](24バイト)
相関識別子です。
MQMD構造体の,CorrelIdフィールドに相当します。
次に示す条件でこの変数を指定した場合,MQRC_CORREL_ID_ERROR(2207)でMQExceptionがスローされます。
-
24バイト未満のbyte型配列を指定して,MQQueue.getメソッドが発行されました。
-
24バイト未満のbyte型配列を指定し,MQPutMessageOptions.optionsにMQPMO_NEW_CORREL_IDオプションを指定して,MQQueue.putメソッドが発行されました。
● public int backoutCount
バックアウトカウンタです。
MQMD構造体の,BackoutCountフィールドに相当します。
● public String replyToQueueName
応答キューの名称です。
MQMD構造体の,ReplyToQフィールドに相当します。
● public String replyToQueueManagerName
応答キューマネジャの名称です。
MQMD構造体の,ReplyToQMgrフィールドに相当します。
● public String userId
ユーザ識別子です。
MQMD構造体の,UserIdentifierフィールドに相当します。
● public byte accountingToken[](32バイト)
課金tokenです。
MQMD構造体の,AccountingTokenフィールドに相当します。
次に示す条件でこの変数を指定した場合,MQRC_MD_ERROR(2026)でMQExceptionがスローされます。
-
32バイト未満のbyte型配列を指定して,MQQueue.getメソッドが発行されました。
-
32バイト未満のbyte型配列を指定し,MQPutMessageOptions.optionsに次に示すどちらかのオプションを指定して,MQQueue.putメソッドが発行されました。
-
MQPMO_PASS_IDENTITY_CONTEXT
-
MQPMO_PASS_ALL_CONTEXT
-
-
すべて0で設定された32バイト未満のbyte型配列を指定して,MQQueue.putメソッドが発行されました。
● public String applicationIdData
アイデンティティに関連したアプリケーションデータです。
MQMD構造体の,ApplIdentityDataフィールドに相当します。
● public int putApplicationType
メッセージを登録したアプリケーションのタイプです。
MQMD構造体の,PutApplTypeフィールドに相当します。
● public String putApplicationName
メッセージを登録したアプリケーションのアイデンティティです。
MQMD構造体の,PutApplNameフィールドに相当します。
● public GregorianCalender putDateTime
メッセージを登録した日時です。
MQMD構造体の,PutDate,PutTimeフィールドに相当します。
Javaではフォーマット形式はDate型です。
● public String applicationOriginData
登録元に関連するアプリケーションデータです。
MQMD構造体の,ApplOriginDataフィールドに相当します。
● public byte[] groupId(24バイト)
物理メッセージが属しているメッセージグループを識別するバイト列です。
MQMD構造体の,GroupIdフィールドに相当します。
次に示す条件でこの変数を指定した場合,MQRC_GROUP_ID_ERROR(2258)でMQExceptionがスローされます。
-
MQMessage.setVersion(MQC.MQMD_VERSION_2)を実行した上で,24バイト未満のbyte型配列を指定して,MQQueue.getメソッドが発行されました。
-
MQMessage.setVersion(MQC.MQMD_VERSION_2)を実行した上で,24バイト未満のbyte型配列を指定し,MQPutMessageOptions.optionsにMQPMO_LOGICAL_ORDERオプション,MQMessage.messageFlagsに次に示すどれかのオプションを指定して,MQQueue.putメソッドが発行されました。
-
MQMF_SEGMENTATION_ALLOWED
-
MQMF_MSG_IN_GROUP
-
MQMF_LAST_MSG_IN_GROUP
-
MQMF_SEGMENT
-
MQMF_LAST_SEGMENT
-
-
MQMessage.setVersion(MQC.MQMD_VERSION_2)を実行した上で,すべて0で設定された24バイト未満のbyte型配列を指定し,MQMessage.messageFlagsに次に示すどれかのオプションを指定して,MQQueue.putメソッドが発行されました。
-
MQMF_SEGMENTATION_ALLOWED
-
MQMF_MSG_IN_GROUP
-
MQMF_LAST_MSG_IN_GROUP
-
MQMF_SEGMENT
-
MQMF_LAST_SEGMENT
-
● public int messageSequenceNumber
グループ内の論理メッセージの順序番号です。
MQMD構造体の,MsgSeqNumberフィールドに相当します。
● public int offset
セグメント化されたメッセージの場合,論理メッセージ先頭からの物理メッセージのデータのオフセットです。
MQMD構造体の,Offsetフィールドに相当します。
● public int messageFlags
メッセージのセグメント化と状況を制御するフラグです。
MQMD構造体の,MsgFlagsフィールドに相当します。
● public int originalLength
セグメント化されたメッセージの元の長さです。
MQMD構造体の,OriginalLengthフィールドに相当します。
コンストラクタ
● public MQMessage()
MQMessageコンストラクタです。
メッセージ記述子を初期化し,メッセージバッファを空にします。
メソッド
● public int getTotalMessageLength()
getしたメッセージ長を取得します。
MQQueue:getしたメッセージのバイト数です。MQQueue:getがメッセージ切り捨て例外を発生させた場合に,このメソッドでメッセージ長を取得できます。
● public int getMessageLength() throws IOException
getしたメッセージバッファのバイト数を取得します。
● public int getDataLength() throws IOException
getしたメッセージバッファの未読み込みデータバイト数を取得します。
● public void seek(int pos) throws IOException
getしたメッセージバッファの現在読み込み位置を指定されたバイト数分移動します。
パラメタ
- pos
-
移動するバイト数を指定します。
● public void setDataOffset(int offset) throws IOException
getしたメッセージバッファの読み込み位置を指定された位置に移動します。
パラメタ
- offset
-
バッファ先頭からのバイト数を指定します。
● public int getDataOffset() throws IOException
getしたメッセージバッファの現在読み込み位置を取得します。
● public void clearMessage() throws IOException
put/getメッセージバッファをクリアします。
● public int getVersion()
メッセージ記述子バージョンを取得します。
● public void resizeBuffer(int size) throws IOException
getしたメッセージバッファのサイズを変更します。
パラメタ
- size
-
変更するバイト数を指定します。
● public boolean readBoolean() throws IOException, EOFException
getしたメッセージバッファの現在位置からboolean型でデータを読み込みます。
● public char readChar() throws IOException, EOFException
getしたメッセージバッファの現在位置からUnicode char型でデータを読み込みます。
● public double readDouble() throws IOException, EOFException
getしたメッセージバッファの現在位置からdouble型でデータを読み込みます。
● public float readFloat() throws IOException, EOFException
getしたメッセージバッファの現在位置からfloat型でデータを読み込みます。
● public void readFully(byte b[]) throws IOException, EOFException
getしたメッセージバッファの現在位置から指定されたバッファいっぱいにデータを読み込みます。
パラメタ
- b
-
データ取得バッファを指定します。
● public void readFully(byte b[], int off,int len) throws IOException, EOFException
getしたメッセージバッファの現在位置から指定されたバッファの指定位置から指定サイズ分データを読み込みます。
パラメタ
- b
-
データ取得バッファを指定します。
- off
-
データ取得バッファ位置を指定します。
- len
-
データ取得バイト数を指定します。
● public int readInt() throws IOException, EOFException
getしたメッセージバッファの現在位置からint型でデータを読み込みます。
● public int readInt4() throws IOException, EOFException
getしたメッセージバッファの現在位置からint型でデータを読み込みます。
● public String readLine() throws IOException
getしたメッセージバッファの現在位置から終端文字(\n,\r,\r\n)までデータを読み込みます。
● public long readLong() throws IOException, EOFException
getしたメッセージバッファの現在位置からlong型でデータを読み込みます。
● public long readInt8() throws IOException, EOFException
getしたメッセージバッファの現在位置からlong型でデータを読み込みます。
● public short readShort() throws IOException, EOFException
getしたメッセージバッファの現在位置からshort型でデータを読み込みます。
● public short readInt2() throws IOException, EOFException
getしたメッセージバッファの現在位置からshort型でデータを読み込みます。
● public String readUTF() throws IOException
getしたメッセージバッファの現在位置からUTFフォーマットでデータを読み込みます。
● public int readUnsignedByte() throws IOException, EOFException
getしたメッセージバッファの現在位置からunsigned byte型でデータを読み込みます。
● public int readUnsignedShort() throws IOException, EOFException
getしたメッセージバッファの現在位置からunsigned short型でデータを読み込みます。
● public int readUInt2() throws IOException, EOFException
getしたメッセージバッファの現在位置からunsigned short型でデータを読み込みます。
● public String readString(int length) throws IOException, EOFException
getしたメッセージバッファの現在位置から指定バイト数分String型でデータを読み込みます。getしたメッセージバッファは,characterSetメンバ変数で指定されるコード化文字セット識別子のString型として,データ読み込み時にUnicodeに変換されます。このメソッドでコード変換対象となるコード化文字セット識別子については,「付録C MQMessageクラスで変換できるコード化文字セット識別子の一覧」を参照してください。
パラメタ
- length
-
読み込みバイト数を指定します。
● public void setVersion(int version)
メッセージ記述子バージョンを設定します。
パラメタ
- version
-
バージョンを指定します。
● public int skipBytes(int n) throws IOException, EOFException
getしたメッセージバッファを指定バイト数分読み飛ばします。
パラメタ
- n
-
読み飛ばしバイト数を指定します。
● public void write(int b) throws IOException
putするメッセージバッファに1バイトを書き込みます。
パラメタ
- b
-
書き込みデータを指定します。
● public void write(byte b[]) throws IOException
putするメッセージバッファに指定バイト配列を書き込みます。
パラメタ
- b
-
書き込みデータバッファを指定します。
● public void write(byte b[], int off, int len) throws IOException
putするメッセージバッファに指定バイト配列の指定位置から指定バイト数分データを書き込みます。
パラメタ
- b
-
書き込みデータバッファを指定します。
- off
-
書き込み位置を指定します。
- len
-
書き込みバイト数を指定します。
● public void writeBoolean(boolean v) throws IOException
putするメッセージバッファにboolean型でデータを書き込みます。
パラメタ
- v
-
書き込みデータを指定します。
● public void writeByte(int v) throws IOException
putするメッセージバッファにbyte型でデータを書き込みます。
パラメタ
- v
-
書き込みデータを指定します。
● public void writeBytes(String s) throws IOException
putするメッセージバッファにbyte型配列でデータを書き込みます。
パラメタ
- s
-
書き込みデータを指定します。
● public void writeChar(int v) throws IOException
putするメッセージバッファにUnicode char型でデータを書き込みます。
パラメタ
- v
-
書き込みデータを指定します。
● public void writeChars(String s) throws IOException
putするメッセージバッファにUnicode char型配列でデータを書き込みます。
パラメタ
- s
-
書き込みデータを指定します。
● public void writeDouble(double v) throws IOException
putするメッセージバッファにdouble型でデータを書き込みます。
パラメタ
- v
-
書き込みデータを指定します。
● public void writeFloat(float v) throws IOException
putするメッセージバッファにfloat型でデータを書き込みます。
パラメタ
- v
-
書き込みデータを指定します。
● public void writeInt(int v) throws IOException
putするメッセージバッファにint型でデータを書き込みます。
パラメタ
- v
-
書き込みデータを指定します。
● public void writeInt4(int v) throws IOException
putするメッセージバッファにint型でデータを書き込みます。
パラメタ
- v
-
書き込みデータを指定します。
● public void writeLong(long v) throws IOException
putするメッセージバッファにlong型でデータを書き込みます。
パラメタ
- v
-
書き込みデータを指定します。
● public void writeInt8(long v) throws IOException
putするメッセージバッファにlong型でデータを書き込みます。
パラメタ
- v
-
書き込みデータを指定します。
● public void writeShort(int v) throws IOException
putするメッセージバッファにshort型でデータを書き込みます。
パラメタ
- v
-
書き込みデータを指定します。
● public void writeInt2(int v) throws IOException
putするメッセージバッファにshort型でデータを書き込みます。
パラメタ
- v
-
書き込みデータを指定します。
● public void writeUTF(String str) throws IOException
putするメッセージバッファにUTFフォーマット型でデータを書き込みます。
パラメタ
- str
-
書き込みデータを指定します。
● public void writeString(String str) throws IOException
strパラメタで指定したString型データを,characterSetメンバ変数で指定されるコード化文字セット識別子へ変換し,putするメッセージバッファに書き込みます。このメソッドでコード変換対象となるコード化文字セット識別子については,「付録C MQMessageクラスで変換できるコード化文字セット識別子の一覧」を参照してください。
パラメタ
- str
-
書き込みデータを指定します。