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 メッセージIDCMQC.MQMI_NONE
メッセージタイプgetMessageType(SendingMessage)
の戻り値 メッセージが書き込まれた日付SystemTimeUtil.getDate()
の戻り値 メッセージデータの文字セットIDcharacterSetId
プロパティの値 設定しない場合はCMQC.MQCCSI_Q_MGR
が使用される。 メッセージの持続性persistence
がtrueの場合はCMQC.MQPER_PERSISTENT
persistence
がfalseの場合はCMQC.MQPER_NOT_PERSISTENT
相関IDSendingMessage
のヘッダ(InterSystemMessage.HeaderName.CORRELATION_ID
)に指定された値 指定がない場合は設定しない。 応答先キューの名前SendingMessage
のヘッダ(InterSystemMessage.HeaderName.REPLY_TO
)に指定された値 指定がない場合は設定しない。 メッセージ存続時間SendingMessage
のヘッダ(InterSystemMessage.HeaderName.TIME_TO_LIVE
)に指定された値 指定がない場合はdefaultTimeToLive引数に指定された値 値が0以下の場合はCMQC.MQEI_UNLIMITED
setFieldsBeforeSend
インタフェース内 WmqMqmdFieldsOperator
sendingMessage
- 送信メッセージmqMessage
- MQMessage
defaultTimeToLive
- 送信電文の有効期間(単位: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
インタフェース内 WmqMqmdFieldsOperator
mqMessage
- MQMessage
sendingMessage
- 送信メッセージ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
インタフェース内 WmqMqmdFieldsOperator
messageId
- 相関IDに指定するメッセージIDmqMessage
- MQMessage
com.ibm.mq.MQException
- MQMDフィールドに対して不正な操作が行われた場合public void getFieldsAfterReceive(com.ibm.mq.MQMessage mqMessage, ReceivedMessage receivedMessage) throws com.ibm.mq.MQException
MQMessage
のMQMDフィールドから値を取得する。
設定内容は下記のとおり。 メッセージIDMQMessage
に設定されたメッセージIDをReceivedMessage
のヘッダ(InterSystemMessage.HeaderName.MESSAGE_ID
)に設定する。 相関IDMQMessage
に設定された相関IDをReceivedMessage
のヘッダ(InterSystemMessage.HeaderName.CORRELATION_ID
)に設定する。 指定がない場合は設定しない。 応答先キューの名前SendingMessage
のヘッダ(InterSystemMessage.HeaderName.REPLY_TO
)に指定された値 指定がない場合は設定しない。
getFieldsAfterReceive
インタフェース内 WmqMqmdFieldsOperator
mqMessage
- MQMessage
receivedMessage
- 受信メッセージ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