public class BasicWmqMqmdFieldsOperator extends java.lang.Object implements WmqMqmdFieldsOperator
WmqMqmdFieldsOperatorの基本実装クラス。| コンストラクタと説明 |
|---|
BasicWmqMqmdFieldsOperator() |
| 修飾子とタイプ | メソッドと説明 |
|---|---|
protected byte[] |
convertIdToByte(java.lang.String id)
文字列で表現されたメッセージID(または相関ID)をバイト配列に変換する。
|
protected java.lang.String |
convertIdToString(byte[] id)
バイト配列で表現されたメッセージID(または相関ID)を文字列に変換する。
|
void |
getFieldsAfterReceive(com.ibm.mq.MQMessage mqMessage,
ReceivedMessage receivedMessage)
メッセージ受信後に
MQMessageのMQMDフィールドから値を取得する。 |
void |
getFieldsAfterSend(com.ibm.mq.MQMessage mqMessage,
SendingMessage sendingMessage)
メッセージ送信後に
MQMessageのMQMDフィールドから値を取得する。 |
protected <T> T |
getHeaderValue(java.util.Map<java.lang.String,java.lang.Object> headerMap,
java.lang.String headerName,
T defaultValue)
ヘッダマップから指定されたヘッダ名を使用して値を取得する。
|
protected int |
getMessageType(SendingMessage sendingMessage)
送信メッセージから判定したメッセージタイプを取得する。
|
BasicWmqMqmdFieldsOperator |
setCharacterSetId(java.lang.Integer characterSetId)
メッセージデータの文字セットID(MQMDフィールド)の値を設定する。
|
void |
setFieldsBeforeReceive(java.lang.String messageId,
com.ibm.mq.MQMessage mqMessage)
メッセージ受信前に
MQMessageのMQMDフィールドに値を設定する。 |
void |
setFieldsBeforeSend(SendingMessage sendingMessage,
com.ibm.mq.MQMessage mqMessage,
long defaultTimeToLive)
メッセージ送信前に
MQMessageのMQMDフィールドに値を設定する。 |
BasicWmqMqmdFieldsOperator |
setPersistence(boolean persistence)
メッセージの持続性(MQMDフィールド)の値を設定する。
|
public void setFieldsBeforeSend(SendingMessage sendingMessage, com.ibm.mq.MQMessage mqMessage, long defaultTimeToLive) throws com.ibm.mq.MQException
MQMessageのMQMDフィールドに値を設定する。
設定内容は下記のとおり。
構造体のバージョン番号
CMQC.MQMD_VERSION_2
メッセージデータの数値エンコード
CMQC.MQENC_INTEGER_NORMAL
CMQC.MQENC_DECIMAL_NORMAL
CMQC.MQENC_FLOAT_IEEE_NORMAL
メッセージデータの形式名
CMQC.MQFMT_NONE
グループ内での論理メッセージの順序番号
1
メッセージID
CMQC.MQMI_NONE
メッセージタイプ
getMessageType(SendingMessage)の戻り値
メッセージが書き込まれた日付
SystemTimeUtil.getDate()の戻り値
メッセージデータの文字セットID
characterSetIdプロパティの値
設定しない場合はCMQC.MQCCSI_Q_MGRが使用される。
メッセージの持続性
persistenceがtrueの場合はCMQC.MQPER_PERSISTENT
persistenceがfalseの場合はCMQC.MQPER_NOT_PERSISTENT
相関ID
SendingMessageのヘッダ(InterSystemMessage.HeaderName.CORRELATION_ID)に指定された値
指定がない場合は設定しない。
応答先キューの名前
SendingMessageのヘッダ(InterSystemMessage.HeaderName.REPLY_TO)に指定された値
指定がない場合は設定しない。
メッセージ存続時間
SendingMessageのヘッダ(InterSystemMessage.HeaderName.TIME_TO_LIVE)に指定された値
指定がない場合はdefaultTimeToLive引数に指定された値
値が0以下の場合はCMQC.MQEI_UNLIMITED
setFieldsBeforeSend インタフェース内 WmqMqmdFieldsOperatorsendingMessage - 送信メッセージmqMessage - MQMessagedefaultTimeToLive - 送信電文の有効期間(単位:msec)com.ibm.mq.MQException - MQMDフィールドに対して不正な操作が行われた場合protected int getMessageType(SendingMessage sendingMessage)
判定内容は下記のとおり。 送信メッセージがResponseMessageである場合CMQC.MQMT_REPLYを返す。 送信メッセージがResponseMessageでなく、応答宛先キューが設定されている場合CMQC.MQMT_REQUESTを返す。 送信メッセージがResponseMessageでなく、応答宛先キューが設定されていない場合CMQC.MQMT_DATAGRAMを返す。
sendingMessage - 送信メッセージprotected <T> T getHeaderValue(java.util.Map<java.lang.String,java.lang.Object> headerMap,
java.lang.String headerName,
T defaultValue)
T - 値の型headerMap - ヘッダマップ(キーはヘッダ名)headerName - ヘッダ名defaultValue - デフォルト値public void getFieldsAfterSend(com.ibm.mq.MQMessage mqMessage,
SendingMessage sendingMessage)
throws com.ibm.mq.MQException
MQMessageのMQMDフィールドから値を取得する。
MQMessageに設定されたメッセージIDを
SendingMessageのヘッダ(InterSystemMessage.HeaderName.MESSAGE_ID)に設定する。getFieldsAfterSend インタフェース内 WmqMqmdFieldsOperatormqMessage - MQMessagesendingMessage - 送信メッセージcom.ibm.mq.MQException - MQMDフィールドに対して不正な操作が行われた場合public void setFieldsBeforeReceive(java.lang.String messageId,
com.ibm.mq.MQMessage mqMessage)
throws com.ibm.mq.MQException
MQMessageのMQMDフィールドに値を設定する。
メッセージIDが指定された場合は、MQMessageの相関IDに指定されたメッセージIDを設定する。setFieldsBeforeReceive インタフェース内 WmqMqmdFieldsOperatormessageId - 相関IDに指定するメッセージIDmqMessage - MQMessagecom.ibm.mq.MQException - MQMDフィールドに対して不正な操作が行われた場合public void getFieldsAfterReceive(com.ibm.mq.MQMessage mqMessage,
ReceivedMessage receivedMessage)
throws com.ibm.mq.MQException
MQMessageのMQMDフィールドから値を取得する。
設定内容は下記のとおり。
メッセージID
MQMessageに設定されたメッセージIDを
ReceivedMessageのヘッダ(InterSystemMessage.HeaderName.MESSAGE_ID)に設定する。
相関ID
MQMessageに設定された相関IDを
ReceivedMessageのヘッダ(InterSystemMessage.HeaderName.CORRELATION_ID)に設定する。
指定がない場合は設定しない。
応答先キューの名前
SendingMessageのヘッダ(InterSystemMessage.HeaderName.REPLY_TO)に指定された値
指定がない場合は設定しない。
getFieldsAfterReceive インタフェース内 WmqMqmdFieldsOperatormqMessage - MQMessagereceivedMessage - 受信メッセージcom.ibm.mq.MQException - MQMDフィールドに対して不正な操作が行われた場合protected java.lang.String convertIdToString(byte[] id)
MQMessage(バイト配列)と
InterSystemMessage(文字列)で異なるため、本メソッドにより変換を行う。
基本実装では、メッセージID(または相関ID)の文字列表現に16進数表記を使用する。id - バイト配列で表現されたメッセージID(または相関ID)protected byte[] convertIdToByte(java.lang.String id)
MQMessage(バイト配列)と
InterSystemMessage(文字列)で異なるため、本メソッドにより変換を行う。
基本実装では、メッセージID(または相関ID)の文字列表現に16進数表記を使用する。id - 文字列で表現されたメッセージID(または相関ID)public BasicWmqMqmdFieldsOperator setCharacterSetId(java.lang.Integer characterSetId)
下記のいずれかの値を設定する。
850
commonly used ASCII codeset
819
the ISO standard ASCII codeset
37
the American EBCDIC codeset
1200
Unicode
1208
UTF-8
設定しない場合はCMQC.MQCCSI_Q_MGRが使用される。
characterSetId - メッセージデータの文字セットID(MQMDフィールド)public BasicWmqMqmdFieldsOperator setPersistence(boolean persistence)
trueが指定された場合はMQMDフィールドにCMQC.MQPER_PERSISTENTを使用する。 falseが指定された場合はMQMDフィールドにCMQC.MQPER_NOT_PERSISTENTを使用する。 デフォルトはtrue。
persistence - MQMDフィールドにCMQC.MQPER_PERSISTENTを使用する場合はtrue、
CMQC.MQPER_NOT_PERSISTENTを使用する場合はfalse