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
 メッセージ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 in interface 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 in interface 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 in interface 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 in interface 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