共通メッセージのヘッダにパラメタを設定したり、ヘッダから情報を取得したりするアプリケーションを作成できます。
パラメタの設定、情報取得には、以下のメソッドを使用します。
ESIParameter#put(“ヘッダパラメタキー名”、“ヘッダパラメタ値”)
ESIParameter#get(“ヘッダパラメタキー名”)
ヘッダの設定
共通メッセージのヘッダにパラメタを設定するアプリケーションについて、例をもとに説明します。
この例では、以下の条件を満たすアプリケーションを作成します。
非同期通信を利用する場合の共通メッセージを作成
パラメタはヘッダに設定
シーケンス“sample_sequence”を利用
JMSCorrelationID“id000012345”を使用
JMSキューに“jms_string_key”をキーとしたストリングプロパティとして“jmsstringvalue”を設定
ユーザプロパティの“sample.key”に“samplevalue”を設定
共通メッセージのヘッダにパラメタを設定する場合の指定例は、以下のとおりです。
ESIMessage message = new ESIMessage(); ESIParameter parameter = message.getHeader().getParameter(); //(1)シーケンス名を指定 parameter.put(ESIHeaderConstants.ESI_HEADER_KEY_SEQUENCE_NAME, "sample_sequence"); ……(a) //(2)JMSCorrelationIDを指定 parameter.put(ESIHeaderConstants.ESI_HEADER_KEY_JMS_HEADER_JMS_CORRELATION_ID, "id000012345"); ……(b) //(3)JMSストリングプロパティの設定 parameter.put(ESIHeaderConstants.ESI_HEADER_KEYPREFIX_JMS_STRING + "jms_string_key", "jmsstringvalue"); ……(c) //(4)ユーザプロパティの設定 parameter.put("sample.key", "samplevalue"); |
プログラム中にシーケンス名を直接指定した場合、エンドポイント定義で指定したシーケンス名よりも優先されます。
JMSCorrelationIDには、以下の文字を指定しないでください。
< (不等号(より小))
> (不等号(より大))
& (アンパサンド)
' (シングルクォーテーション)
" (ダブルクォーテーション)
JMSキューには、“jms_string_key”をキーとしたストリングプロパティとして設定されます。
ヘッダからの情報取得
共通メッセージのヘッダから情報を取得するアプリケーションについて、例をもとに説明します。
この例では、以下の条件を満たすアプリケーションを作成します。
非同期通信を利用する場合の共通メッセージから情報を取得
ヘッダから情報を取得
シーケンス名を取得
JMSCorrelationIDを取得
JMSキューの“jms_string_key”をキーとしたストリングプロパティを取得
ユーザプロパティの“sample.key”をキーとしたプロパティを取得
共通メッセージのヘッダのパラメタから情報を取得する場合の指定例は、以下のとおりです。
ESIService service = ESIServiceFactory.getService("endpointJMSReceive"); ESIMessage receiveMessage = service.receive(); ESIParameter receiveParam = receiveMessage.getHeader().getParameter(); //(1)シーケンス名を取得 String sequence = receiveParam.get(ESIHeaderConstants.ESI_HEADER_KEY_SEQUENCE_NAME); //(2)JMSCorrelationIDを取得 String jmsCorrelationID = receiveParam.get(ESIHeaderConstants.ESI_HEADER_KEY_JMS_HEADER_JMS_CORRELATION_ID); //(3)JMSストリングプロパティの取得 String jmskey = receiveParam.get(ESIHeaderConstants.ESI_HEADER_KEYPREFIX_JMS_STRING + "jms_string_key"); //(4)ユーザプロパティの取得 String samplekey = receiveParam.get("sample.key"); |