Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説
Message Queueアダプタによるメッセージ送受信について,次の図に示します。
図2-85 Message Queueアダプタによるメッセージ送受信の実行
Message Queueアダプタのメッセージ送信機能は,ビジネスプロセスからのメッセージ送信要求に従い,リソースアダプタを経由し,JMSプロバイダとコネクション接続およびセッション設定を行い,JMSプロバイダへメッセージを送信する機能です。
メッセージの種類は,XML形式メッセージおよびバイナリ形式メッセージを送信できます。
メッセージを送信する場合,送信オプション(JMSプロパティ)を指定できます。Message Queueアダプタ送信オプション一覧を次に示します。
表2-25 Message Queueアダプタ送信オプション一覧
項目 | 送信オプションの概要 | 指定方法 | |
---|---|---|---|
電文 | 定義 | ||
メッセージ送信先 (JMSDestination) |
メッセージの送信キュー。 | ○ | ○ |
メッセージ保持時間 (JMSExpiration) |
メッセージの保持時間。メッセージ保持時間とは,JMSプロバイダの送信キューに保持し続ける時間のことです。 | × | ○ |
メッセージ永続性 (JMSDeliveryMode) |
メッセージの永続性。メッセージ永続性とは,システム障害後,またはJMSプロバイダを再開した場合など,メッセージをキューに保持するかどうかの指定です。 | × | ○ |
メッセージ識別ID (JMSMessageID) |
メッセージを識別するID。 WebSphere MQ Resource Adapterを使用する場合,任意の情報が設定されます。 |
− | − |
タイムスタンプ (JMSTimestamp) |
メッセージのタイムスタンプ。 | − | − |
報告メッセージ送信先 (JMSReplyTo) |
報告メッセージの送信キュー。 | × | × |
メッセージタイプ (JMSType) |
メッセージタイプ。 | × | ○ |
相関識別子 (JMSCorrelationID) |
メッセージの相関識別子。 | × | △ |
優先度 (JMSPriority) |
メッセージの優先度。WebSphere MQ Resource Adapterの場合,4が設定されます。 | − | − |
メッセージ相関識別子を設定したメッセージ送信は,「2.10.2(2) メッセージ相関識別子の生成方法」を参照してください。
メッセージ送信機能の概要を次に示します。
図2-86 メッセージ送信機能
Message Queueアダプタは,Message Queueアダプタ通信構成定義ファイルの<id_type>タグでType2が指定されている場合,メッセージ相関識別子を自動的に生成し送信メッセージに付与します。
メッセージ相関識別子は,プレフィックスとMessage Queueアダプタ固有情報から構成されています。メッセージ相関識別子の生成方法は,プレフィックスを付与する場合としない場合の2つの方法があります。
なお,Message Queueアダプタ固有情報は,Message Queueアダプタが設定する情報です。
メッセージ相関識別子にプレフィックスを付与しない場合は,<JMSCorrelID_PFX>タグの指定がない場合です。
この場合,先頭6バイトを0(ゼロ)パディングしたものと,Message Queueアダプタ固有情報を合わせてメッセージ相関識別子とします。
図2-87 メッセージ相関識別子の生成方法(プレフィックスなし)
メッセージ相関識別子にプレフィックスを付与する場合は,<JMSCorrelID_PFX>タグが指定されている場合に,<JMSCorrelID_PFX>タグ値をメッセージ相関識別子の一部とします。プレフィックスは最大で6バイト指定できますが,6バイト未満の場合は,先頭から0(ゼロ)パディングして6バイトとします。例えば,<JMSCorrelID_PFX>タグの指定値が”ABC”の場合,”000ABC”をプレフィックス部分に設定します。
このプレフィックスとMessage Queueアダプタ固有情報を合わせてメッセージ相関識別子とします。
図2-88 メッセージ相関識別子の生成方法(プレフィックスあり)
リソースアダプタで提供されるトランザクションサポートレベルは「LocalTransaction」または「XATransaction」を指定してください。ただし,「LocalTransaction」はビジネスプロセスでステータスの永続化をしない場合だけ指定できます。「NoTransaction」は指定できません。
「LocalTransaction」または「XATransaction」を指定すると,JTA(Java Transaction API)と関連を持ちます。例えば,JTAのトランザクションタイムアウト指定値がMessage Queueアダプタ通信構成定義ファイルのメッセージ受信応答監視時間(receive_timeout)より短い場合,JTAのトランザクションタイムアウト指定値でタイムアウトします。
ビジネスプロセスからメッセージ受信要求またはメッセージ送受信要求を受けると,Message Queueアダプタはメッセージ受信要求を発行します。このメッセージ受信要求に対してリソースアダプタが一定時間内にメッセージを受信できない場合,リソースアダプタはメッセージ受信応答監視時間のタイムアウトとなります。リソースアダプタからの通知に従い,Message Queueアダプタは,ビジネスプロセスへFault応答情報を通知します。また,ビジネスプロセスからブラウズ・メッセージ受信要求を受け,ブラウズ・メッセージ受信要求を行いますが,受信キューにメッセージが存在しない場合も,ビジネスプロセスへFault応答情報を通知します。
フォルトが発生したときの処理の定義については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「5.4.4 フォルト処理を定義する」を参照してください。
javax.jms.BytesMessageとjavax.jms.TextMessageの送信をサポートしています。
Message Queueアダプタは次のメソッドを使用して,メッセージインスタンスにデータを書き込みます。
javax.jms.BytesMessageとjavax.jms.TextMessageの受信をサポートしています。
Message Queueアダプタは次のメソッドを使用して,メッセージインスタンスからデータを読み取ります。
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.