Class BasicWmqMqmdFieldsOperator
java.lang.Object
nablarch.integration.messaging.wmq.provider.BasicWmqMqmdFieldsOperator
- All Implemented Interfaces:
WmqMqmdFieldsOperator
WmqMqmdFieldsOperatorの基本実装クラス。-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected byte[]文字列で表現されたメッセージID(または相関ID)をバイト配列に変換する。protected StringconvertIdToString(byte[] id) バイト配列で表現されたメッセージID(または相関ID)を文字列に変換する。voidgetFieldsAfterReceive(com.ibm.mq.MQMessage mqMessage, ReceivedMessage receivedMessage) メッセージ受信後にMQMessageのMQMDフィールドから値を取得する。voidgetFieldsAfterSend(com.ibm.mq.MQMessage mqMessage, SendingMessage sendingMessage) メッセージ送信後にMQMessageのMQMDフィールドから値を取得する。protected <T> TgetHeaderValue(Map<String, Object> headerMap, String headerName, T defaultValue) ヘッダマップから指定されたヘッダ名を使用して値を取得する。protected intgetMessageType(SendingMessage sendingMessage) 送信メッセージから判定したメッセージタイプを取得する。setCharacterSetId(Integer characterSetId) メッセージデータの文字セットID(MQMDフィールド)の値を設定する。voidsetFieldsBeforeReceive(String messageId, com.ibm.mq.MQMessage mqMessage) メッセージ受信前にMQMessageのMQMDフィールドに値を設定する。voidsetFieldsBeforeSend(SendingMessage sendingMessage, com.ibm.mq.MQMessage mqMessage, long defaultTimeToLive) メッセージ送信前にMQMessageのMQMDフィールドに値を設定する。setPersistence(boolean persistence) メッセージの持続性(MQMDフィールド)の値を設定する。
-
Constructor Details
-
BasicWmqMqmdFieldsOperator
public BasicWmqMqmdFieldsOperator()
-
-
Method Details
-
setFieldsBeforeSend
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_NORMALCMQC.MQENC_DECIMAL_NORMALCMQC.MQENC_FLOAT_IEEE_NORMALメッセージデータの形式名CMQC.MQFMT_NONEグループ内での論理メッセージの順序番号 1 メッセージIDCMQC.MQMI_NONEメッセージタイプgetMessageType(SendingMessage)の戻り値 メッセージが書き込まれた日付SystemTimeUtil.getDate()の戻り値 メッセージデータの文字セットIDcharacterSetIdプロパティの値 設定しない場合はCMQC.MQCCSI_Q_MGRが使用される。 メッセージの持続性persistenceがtrueの場合はCMQC.MQPER_PERSISTENTpersistenceが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- Specified by:
setFieldsBeforeSendin interfaceWmqMqmdFieldsOperator- Parameters:
sendingMessage- 送信メッセージmqMessage-MQMessagedefaultTimeToLive- 送信電文の有効期間(単位:msec)- Throws:
com.ibm.mq.MQException- MQMDフィールドに対して不正な操作が行われた場合
-
getMessageType
送信メッセージから判定したメッセージタイプを取得する。判定内容は下記のとおり。 送信メッセージが
ResponseMessageである場合CMQC.MQMT_REPLYを返す。 送信メッセージがResponseMessageでなく、応答宛先キューが設定されている場合CMQC.MQMT_REQUESTを返す。 送信メッセージがResponseMessageでなく、応答宛先キューが設定されていない場合CMQC.MQMT_DATAGRAMを返す。- Parameters:
sendingMessage- 送信メッセージ- Returns:
- メッセージタイプ
-
getHeaderValue
ヘッダマップから指定されたヘッダ名を使用して値を取得する。 指定されたヘッダ名がヘッダマップに存在しない場合は指定されたデフォルト値を返す。- Type Parameters:
T- 値の型- Parameters:
headerMap- ヘッダマップ(キーはヘッダ名)headerName- ヘッダ名defaultValue- デフォルト値- Returns:
- ヘッダ名に対応する値
-
getFieldsAfterSend
public void getFieldsAfterSend(com.ibm.mq.MQMessage mqMessage, SendingMessage sendingMessage) throws com.ibm.mq.MQException メッセージ送信後にMQMessageのMQMDフィールドから値を取得する。MQMessageに設定されたメッセージIDをSendingMessageのヘッダ(InterSystemMessage.HeaderName.MESSAGE_ID)に設定する。- Specified by:
getFieldsAfterSendin interfaceWmqMqmdFieldsOperator- Parameters:
mqMessage-MQMessagesendingMessage- 送信メッセージ- Throws:
com.ibm.mq.MQException- MQMDフィールドに対して不正な操作が行われた場合
-
setFieldsBeforeReceive
public void setFieldsBeforeReceive(String messageId, com.ibm.mq.MQMessage mqMessage) throws com.ibm.mq.MQException メッセージ受信前にMQMessageのMQMDフィールドに値を設定する。 メッセージIDが指定された場合は、MQMessageの相関IDに指定されたメッセージIDを設定する。- Specified by:
setFieldsBeforeReceivein interfaceWmqMqmdFieldsOperator- Parameters:
messageId- 相関IDに指定するメッセージIDmqMessage-MQMessage- Throws:
com.ibm.mq.MQException- MQMDフィールドに対して不正な操作が行われた場合
-
getFieldsAfterReceive
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)に指定された値 指定がない場合は設定しない。- Specified by:
getFieldsAfterReceivein interfaceWmqMqmdFieldsOperator- Parameters:
mqMessage-MQMessagereceivedMessage- 受信メッセージ- Throws:
com.ibm.mq.MQException- MQMDフィールドに対して不正な操作が行われた場合
-
convertIdToString
バイト配列で表現されたメッセージID(または相関ID)を文字列に変換する。 メッセージID(または相関ID)の型がMQMessage(バイト配列)とInterSystemMessage(文字列)で異なるため、本メソッドにより変換を行う。 基本実装では、メッセージID(または相関ID)の文字列表現に16進数表記を使用する。- Parameters:
id- バイト配列で表現されたメッセージID(または相関ID)- Returns:
- 変換後の文字列
-
convertIdToByte
文字列で表現されたメッセージID(または相関ID)をバイト配列に変換する。 メッセージID(または相関ID)の型がMQMessage(バイト配列)とInterSystemMessage(文字列)で異なるため、本メソッドにより変換を行う。 基本実装では、メッセージID(または相関ID)の文字列表現に16進数表記を使用する。- Parameters:
id- 文字列で表現されたメッセージID(または相関ID)- Returns:
- 変換後のバイト配列
-
setCharacterSetId
メッセージデータの文字セットID(MQMDフィールド)の値を設定する。下記のいずれかの値を設定する。 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が使用される。- Parameters:
characterSetId- メッセージデータの文字セットID(MQMDフィールド)- Returns:
- このオブジェクト自体
-
setPersistence
メッセージの持続性(MQMDフィールド)の値を設定する。trueが指定された場合はMQMDフィールドに
CMQC.MQPER_PERSISTENTを使用する。 falseが指定された場合はMQMDフィールドにCMQC.MQPER_NOT_PERSISTENTを使用する。 デフォルトはtrue。- Parameters:
persistence- MQMDフィールドにCMQC.MQPER_PERSISTENTを使用する場合はtrue、CMQC.MQPER_NOT_PERSISTENTを使用する場合はfalse- Returns:
- このオブジェクト自体
-