public class BasicWmqMqmdFieldsOperator extends java.lang.Object implements WmqMqmdFieldsOperator
WmqMqmdFieldsOperator
の基本実装クラス。Constructor and Description |
---|
BasicWmqMqmdFieldsOperator() |
Modifier and Type | Method and Description |
---|---|
protected byte[] |
convertIdToByte(java.lang.String id)
文字列で表現されたメッセージID(または相関ID)をバイト配列に変換する。
メッセージID(または相関ID)の型が
MQMessage (バイト配列)と
InterSystemMessage (文字列)で異なるため、本メソッドにより変換を行う。
基本実装では、メッセージID(または相関ID)の文字列表現に16進数表記を使用する。 |
protected java.lang.String |
convertIdToString(byte[] id)
バイト配列で表現されたメッセージID(または相関ID)を文字列に変換する。
メッセージID(または相関ID)の型が
MQMessage (バイト配列)と
InterSystemMessage (文字列)で異なるため、本メソッドにより変換を行う。
基本実装では、メッセージID(または相関ID)の文字列表現に16進数表記を使用する。 |
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
in interface 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
in interface 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
in interface 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
in interface 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