この章では、MQトランスポートの概要と、サービスでの使用および構成方法について説明します。
Oracle Service BusではMQトランスポートを使用したIBM WebSphere MQへのアクセスがサポートされています。このトランスポートでは、インバウンドとアウトバウンドの両方の接続がサポートされます。MQプロキシ・サービスではWebSphere MQからのメッセージの受信が可能で、MQビジネス・サービスではWebSphere MQへのメッセージのルーティングが可能です。
この章の内容は次のとおりです。
MQトランスポートでは、次の主な機能がサポートされます。
インバウンドおよびアウトバウンド接続。MQプロキシ・サービスではWebSphere MQからのメッセージの受信が可能で、MQビジネス・サービスではWebSphere MQへのメッセージのルーティングが可能です。
WebSphere MQへのアクセス。詳細は、33.8.1項「環境へのMQクライアント・ライブラリの追加」を参照してください。
メッセージをXML、バイナリ、XML、テキスト、およびMFLの任意の種類で送受信可能です。
すべてのMQMD (MQメッセージ記述子)ヘッダーの処理。メッセージ記述子は、送信または受信されたメッセージのプロパティを表す属性です。
アウトバウンド・レスポンスおよびインバウンド・リクエストで構成できるMQヘッダーのリストについては、33.8.5項「トランスポート・ヘッダー」を参照してください。
WebLogicトランザクション・マネージャを使用した分散(XA)トランザクションのサポート。
キュー・マネージャに接続するためのTCP/IPおよびバインディング・モード。
Oracle Service Busと同じ物理コンピュータ上にあるWebSphere MQに接続するには、バインディング・モードを使用します。Oracle Service Busと同じコンピュータ上にはないWebSphere MQに接続するには、TCP/IPを使用します。
インバウンドおよびアウトバウンド・トランスポートにおける一方向および双方向SSL。
SSLは、Oracle Service BusからWebSphere MQへの接続にTCP/IPを使用している場合にのみサポートされます。
WebSphere MQ JMSインタフェースを使用する場合と比べて、MQトランスポートの使用には次のような利点があります。
MQトランスポートを使用すると、WebSphere MQ JMSインタフェースを使用した場合に比べ、WebSphere MQへの接続がより高速に行えます。
MQメッセージを読込みおよび生成する機能。JMSインタフェースの使用では、特定のヘッダーは設定できません。
MQ受信メッセージの送受信のサポート。
WebLogicのJNDIへのMQ接続ファクトリおよびMQキューの明示的なバインディングは不要です。
Oracle Service Busの範囲外にあるJMSプロバイダのようなリソースの構成は不要です。
メッセージが、JMSトランスポートを使用したチャネリングではなく、トランスポートを使用して直接送信されるため、パフォーマンスが向上します。
MQトランスポートは、メッセージ・サービスおよびXMLサービスのサービス・タイプで使用できます。
詳細は、4.3項「プロキシ・サービスの構成」および4.2項「ビジネス・サービスの構成」を参照してください。
ネイティブMQトランスポートでは、一方向メッセージおよびリクエスト/レスポンス・メッセージング・パターンがインバウンドおよびアウトバウンド接続の両方でサポートされます。デフォルトでは、一方向メッセージングがサポートされます。プロキシ・サービスまたはビジネス・サービスでは、サービスの構成時に「レスポンスが必要」
オプションを設定すると、リクエスト/レスポンス・メッセージングがサポートされます。
インバウンドおよびアウトバウンド・トランスポートでは、リクエストとレスポンス間の相関にmessageID
またはcorrelationID
を使用する非同期のリクエスト/レスポンス・パターンをサポートします。サービスの構成時にレスポンス相関パターンを設定できます。詳細は、33.8.5項「トランスポート・ヘッダー」「CorrelationID」と「MessageID」を参照してください。
アウトバウンド・トランスポートには、相関ID/messageIDを自動生成するオプションが用意されています。または、メッセージ・フローで指定したものを使用します。トランスポートによって相関ID/メッセージIDが自動生成される必要があることを指示するには、「相関値の自動生成」
オプションを選択します。または、メッセージ・フローで指定したものを使用します。
MQの実装で動的キューを使用する場合は、アウトバウンド・トランスポートを使用してレスポンス相関のためにも動的キューを使用できます。
相関値(messageID
/correlationID
)を自動生成しない場合に、管理対象サーバーがダウンすると、サーバーの再起動時に残っているレスポンス・メッセージが削除されなくなることがあります。Oracleでは、リクエストの有効期限(Expiry
)ヘッダーを有限な値に構成し、レポート(Report
)ヘッダーにMQC.MQRO_PASS_DISCARD_AND_EXPIRY
オプションを設定することをお薦めします。
MQC.MQRO_PASS_DISCARD_AND_EXPIRY
オプションは、返信のメッセージ記述子がリクエスト・メッセージの有効期限(Expiry
)ヘッダー値から継承される必要があるという、受信クライアントに対する指示として機能します。これにより、構成された有効期限の経過後にMQサーバーによってレスポンス・メッセージが確実に削除されるようになります。相関値が自動生成される場合、残っているレスポンス・メッセージのクリーン・アップはOracle Service Busサーバーによって実施されます。
MQトランスポートではリモート・トランザクションではなくローカル・トランザクションがサポートされます。
サービスの「レスポンスが必要」、「レスポンス相関パターン」、「相関値の自動生成」
の構成の詳細は、33.8.3項「MQトランスポートを使用するプロキシ・サービスの構成」および33.8.4項「MQトランスポートを使用するビジネス・サービスの構成」を参照してください。
環境値とは、ドメイン間での構成の移動(テスト環境から本番環境への移行など)に伴って変更されることが多い値で、構成データに含まれる特定の事前定義されたフィールドです。環境値の更新の詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の環境値の検索と置換に関する項を参照してください。次の項に、ネイティブMQトランスポート・サービスとMQ接続リソースで使用する環境値のリストを示します。
MQトランスポートに基づいたサービスでは、「ワーク・マネージャ」
(インバウンドおよびアウトバウンド)環境値がサポートされています。
MQ接続は、複数のMQプロキシ・サービスおよびビジネス・サービスで再使用できる、共有可能なリソースです。MQ接続リソースは、MQキュー・マネージャに接続するために必要な接続パラメータを提供します。MQ接続リソースでは、次の環境値および操作値をサポートしています。
MQ接続ホスト
MQ接続ポート
MQ接続キュー・マネージャ名
MQ接続チャネル名
MQ接続プール・サイズ
MQ接続タイムアウト
MQモデル・キュー
MQバージョン
XA有効
インバウンド・トランスポートがMQで、アウトバウンド・トランスポートのサービスの品質(QoS)がexactly-onceである場合、結果として得られるQoSはat-least-onceになります。アウトバウンド・トランスポートのQoSのデフォルトはexactly-onceです。
注意: パイプライン・エラー・ハンドラに、(任意の再試行ロジックを含む)エラー処理ロジックを作成する必要があります。エラー処理の構成は、2.4.8項「メッセージ・フローへのエラー・ハンドラの追加と構成」を参照してください。 |
アウトバウンドがリクエスト/レスポンスの場合、アウトバウンド・トランスポートがexactly-once QoSをサポートするように構成されているときのみ、QoSはat-least-onceになります。
Oracle Service BusメッセージでのQoSの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス品質に関する項を参照してください。
WebSphere MQのクラスタ・サポートは、ストア・アンド・フォワード・メッセージングのサポートであり、ロード・バランシングおよびフェイルオーバーのサポートではありません。WebSphere MQのクラスタ・キューは、キュー・マネージャの1つにローカルで作成され、共有キューに対してリモート・フォワーダとして動作する他のクラスタ・メンバーと共有されます。
MQトランスポートからのリクエストは、ロード・バランシング・アルゴリズムを使用してクラスタのメンバーにメッセージを送信することによってロード・バランシングされます。ただし、トランスポートは、ローカル・キューへの参照を保持するMQサーバー・ノードにアクセスすることによってのみ、メッセージを受信します。
Oracle Service Bus MQトランスポートを使用すると、WebSphere MQからメッセージを取得するMQプロキシ・サービス、およびWebSphere MQにメッセージを送信するMQビジネス・サービスが有効になります。このドキュメントでは、Oracle Service Bus環境にWebSphere MQを追加する方法、Oracle Service Bus MQトランスポートの特性、およびMQプロキシやビジネス・サービスを構成する方法について説明します。
この項の内容は次のとおりです。
Oracle Service BusはIBM WebSphere MQのクライアントであり、Oracle Service Busではサポート対象のWebSphere MQバージョンについて実行時のサーバー互換性をサポートしていますが、MQライブラリはOracle Service Busインストーラには含まれていません。使用する環境において、MQクライアント・ライブラリcom.ibm.mq.jar
のサポート対象のバージョンを利用可能にする必要があります。Oracle Service BusでのWebSphere MQバージョンのサポートの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の相互運用性のシナリオと考慮事項に関する項を参照してください。
WebSphere MQのシステム要件の詳細は、http://www-306.ibm.com/software/integration/wmq/requirements/index.html
を参照してください。
MQクライアント・ライブラリを環境に追加するには:
ドメイン・サーバーを停止します。
WebSphere MQのインストールからcom.ibm.mq.jar
ファイルをDOMAIN_HOME/domain_name/libディレクトリにコピーします。
ドメイン・サーバーを再起動します。
Oracle Service Busと同じコンピュータ上にあるMQキュー・マネージャに接続するためにバインディング・モードを使用する場合は、PATH環境変数に<MQ_install_directory>/bin
および<MQ_install_directory>/java/lib
を追加します。
MQ接続は、複数のMQプロキシ・サービスおよびビジネス・サービスで再使用できる、共有可能なリソースです。MQプロキシ・サービスおよびビジネス・サービスがMQキューにアクセスするには、前もってMQキュー・マネージャに接続しておく必要があります。MQ接続リソースは、MQキュー・マネージャに接続するために必要な接続パラメータを提供します。
各MQ接続リソースには、接続プールがあります。同じキュー・マネージャを使用している複数のビジネス・サービスまたはプロキシ・サービスは、接続プールを共有することになります。あるMQ接続リソースを使用してキュー・マネージャに接続しているすべてのビジネスまたはプロキシ・サービスでは、そのMQ接続リソース用に作成された同じ接続プールが使用されます。
MQ接続リソースの管理の詳細は、2.6.1項「MQ接続の追加および編集」を参照してください。
キュー・マネージャの詳細は、http://www.redbooks.ibm.com/redbooks/SG247128/wwhelp/wwhimpl/java/html/wwhelp.htm
を参照してください。
MQ接続リソースを作成するには、次の手順を実行します。
Oracle Service Busパースペクティブで「ファイル」→「新規」→「カスタム・リソース」を選択します。「新しいMQ接続リソースの作成」ページが表示されます。
表33-1に示すパラメータを使用して、MQ接続リソースを構成します。
「保存」をクリックします。
これでMQ接続リソースが作成されました。この接続リソースは、このMQトランスポートを使用するプロキシ・サービスおよびビジネス・サービスで共有できます。
次の表に、MQ接続リソースの作成時に構成できる接続パラメータのリストとその説明を示します。
表33-1 MQ接続パラメータ
プロパティ | 説明 |
---|---|
リソース名 |
MQ接続リソースにユニークな名前を入力します。 名前付けのガイダンスについては、2.1.1項「リソースの名前付けに関する制限事項」を参照してください。名前にはスペースが含まれないようにします。 |
リソースの説明 |
MQ接続リソースの説明を入力します。 |
接続タイプ |
MQキュー・マネージャに接続するには、次のいずれかのモードを選択します。
|
MQホスト名 |
MQキュー・マネージャのホスト名を入力します。 |
MQポート番号 |
MQキュー・マネージャ・リスナーのポート番号を入力します。 |
MQキュー・マネージャ名 |
接続先のMQキュー・マネージャの名前を入力します。 |
キュー・マネージャCCSID |
接続を確立するときに使用されるCCSID (coded character set identifier)です。CCSIDは、主に国際化をサポートする目的で使用されます。 詳細は、WebSphere MQの基礎概念( |
MQキュー・マネージャのチャネル名 |
キュー・マネージャのサーバー接続チャネル名を入力します。 |
SSLが必要 |
このチェック・ボックスを選択すると、メッセージの送信にSSLが使用されます。「双方向SSLが必要」オプションも選択されていない場合、サーバー側のSSLのみが有効になります。 |
暗号セット |
このオプションは、「SSLが必要」チェック・ボックスが選択されている場合のみ使用できます。 SSLで使用される暗号スイート・アルゴリズムを選択します。 暗号スイート・アルゴリズムは、WebSphere MQサーバーとWebSphere MQクライアントの間のメッセージ通信を暗号化および復号化する際に使用されます。そのため、SSLを使用してWebSphere MQサーバーと通信する場合は、暗号スイート・アルゴリズムを指定する必要があります。 |
双方向SSLが必要 |
このオプションは、「SSLが必要」チェック・ボックスが選択されている場合のみ使用できます。 このチェック・ボックスを選択すると、クライアント側およびサーバー側のSSL認証が両方とも有効になります。サーバー側のみの認証用の一方向SSLでは、チェック・ボックスを選択解除します。 |
サービス・キー・プロバイダへの参照 |
「双方向SSLが必要」を選択した場合は、適切なキーストアと信頼ストアの情報を取得するために、サービス・プロバイダへの参照を提供する必要があります。サービス・キー・プロバイダには、プロキシ・サービスがインバウンドSOAPメッセージの復号化、アウトバウンド認証、およびデジタル署名で使用する、公開鍵インフラストラクチャ(PKI)の資格証明情報が含まれます。 サービス・キー・プロバイダのパス( サービス・プロバイダ使用の詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。 |
静的なサービス・アカウントへの参照 |
ユーザー名とパスワードによる認証に必要です。静的なサービス・アカウントのパス(プロジェクト/フォルダ)および名前を入力するか、「参照」をクリックし、ブラウザからサービス・アカウントを選択します。 |
WebSphere MQバージョン |
WebSphere MQのバージョンを選択します。
注意: IBMでは、バージョン5.3および6.0はサポートされなくなりました。これらのバージョンは、Oracle Service Busでは非推奨です。 |
MQ接続プール・サイズ |
再利用のために接続プールに格納するMQ接続の数を入力します。 |
MQ接続タイムアウト |
未使用の接続が破棄されるまでの時間間隔を秒単位で入力します。デフォルトは1800秒です。 |
MQ接続Max Wait |
接続が利用可能になるまでに待機する最大時間(ミリ秒単位)を入力します。その時間内に接続が確立されない場合、Oracle Service Busが例外をスローします。デフォルトは、3000ミリ秒です。 |
XA有効 |
この接続によって処理されるトランザクションが分散(XA)トランザクションである場合は、このオプションを選択します。 XAトランザクションでは、永続性のためにMQキューを構成する必要があります。バージョン5.3または6.0 (いずれも非推奨)を使用している場合は、クラスパスに |
サービスを構成するとき、「全般的な構成」ページでサービスのタイプとしてメッセージ・サービスかXMLサービスを選択します。詳細は、33.3項「サポートされるサービス・タイプ」および4.3項「プロキシ・サービスの構成」を参照してください。
MQサービスを作成する場合、転送プロトコルとしてmq
を選択し、「トランスポート構成」ページでエンドポイントURIを指定します。mq://local-queue-name?conn=mq-connection-resource-ref
の形式でエンドポイントURIを指定します。
ここで、local-queue-name
はMQサーバーに構成されているローカル・キューの名前です。
mq-connection-resource-ref
はMQ接続リソースの場所です。
たとえば、MQ接続リソースmqConnection
をdefaultMQ
フォルダに作成し、キュー名がtestQueue
である場合、URIはmq://testQueue?conn=defaultMQ/mqConnection
になります。
注意: エンドポイントURIはスペースを含むことができないので、名前にスペースがあるMQ接続リソースまたはプロジェクト/フォルダを作成しないでください。 |
次の表で説明する値を使用して、プロキシ・サービスのMQトランスポートを構成します。
表33-2 MQプロキシ・サービスの構成
オプション | 説明 |
---|---|
レスポンスが必要 |
アウトバウンド・メッセージの送信後にレスポンスを受け取ることを指定する場合は、このオプションを選択します。 |
レスポンス相関パターン |
このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。 レスポンス相関パターンがMessageIDまたはCorrelationIDのいずれに基づく必要があるかを指定します。 |
MQレスポンスURI |
このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。 レスポンスがパブリッシュされる宛先。レスポンスURIを、エンドポイントURIと同じ形式で |
レスポンス・メッセージ・タイプ |
このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。 次のいずれか1つを選択します:
|
トランザクション・タイムアウト |
プロキシ・サービスによって開始されたXAトランザクションがタイムアウトするまでに待機する時間を秒単位で入力します。このプロパティは、XAトランザクション用に構成されたMQ接続リソースを使用するサービスにのみ適用されます(つまり、MQ接続リソースに「XA有効」オプションが選択されます)。 デフォルト値は |
ポーリング間隔 |
メッセージの次のポーリングまでに待機する間隔をミリ秒単位で入力します。デフォルト値は |
ポーラー・ディスパッチ・ポリシー |
ポーラー・スレッドに使用されるディスパッチ・ポリシー。 |
バックアウトしきい値 |
「配信失敗メッセージURI」フィールドに指定したキューにパイプラインがメッセージをリダイレクトする前に、メッセージを再試行する回数を示す値を入力します。 このフィールドに値が指定されていない場合は、再試行を実行しないで、メッセージを配信失敗キューにリダイレクトします。 |
MQ配信失敗メッセージURI |
「バックアウトしきい値」フィールドに指定した再試行回数を行った後、リクエスト・メッセージがリダイレクトされる配信失敗メッセージ・キューのURIを入力します。 このフィールドに値を指定しない場合、「バックアウトしきい値」フィールドに指定した再試行回数を行った後、メッセージがキューに戻され、各ポーリングでMQトランスポートによって無視されます。配信失敗メッセージURIの形式はエンドポイントURI形式と同じです。 |
エンドポイントURI 'GET'オプション |
次のオプションでMQ GETメッセージ・オプションを入力します。
複数のオプションを区切るには、「|」または「+」を使用します。たとえば、次のように指定できます。 MQC.MQGMO_ACCEPT_TRUNCATED_MSG | MQC.MQGMO_LOCK インバウンド・キューからのメッセージを読み込む場合、MQ GETメッセージ・オプションが適用されます。 |
RFH2ヘッダーのプロセス |
メッセージ・ペイロードからWebSphere MQ RFH2ヘッダーを解析して、RFH2データを含むRFH2Headersトランスポート・ヘッダーを自動的に生成する場合はこのオプションを選択します。 このオプションを選択しない場合は、ペイロードはそのまま渡されます。 |
返信先ヘッダーの無視 |
キュー・マネージャの返信先ヘッダーを無視する場合はこのオプションを選択します。 |
ワーカー・スレッド・ディスパッチ・ポリシー |
このエンドポイントのディスパッチ・ポリシーに使用するOracle WebLogic Serverワーク・マネージャのインスタンスを選択します。デフォルトのワーク・マネージャは、他にワーク・マネージャがない場合に使用されます。 ワーク・マネージャの詳細は、次の説明を参照してください。
|
MQトランスポートを使用するプロキシ・サービスの構成の詳細は、2.3項「プロキシ・サービスの操作」の「MQトランスポート構成ページ」を参照してください。
サービスを構成するとき、「全般的な構成」ページでサービスのタイプとしてメッセージ・サービスかXMLサービスを選択します。詳細は、4.2項「ビジネス・サービスの構成」を参照してください。
MQサービスを作成する場合、転送プロトコルとしてmq
を選択し、「トランスポート構成」ページでエンドポイントURIを指定します。mq://local-queue-name?conn=mq-connection-resource-ref
の形式でエンドポイントURIを指定します。
ここで、local-queue-name
はMQサーバーに構成されているローカル・キューの名前です。
mq-connection-resource-ref
はMQ接続リソースの場所です。
たとえば、MQ接続リソースmqConnection
をdefaultMQ
フォルダに作成し、キュー名がtestQueue
である場合、URIはmq://testQueue?conn=defaultMQ/mqConnection
になります。
注意: エンドポイントURIはスペースを含むことができないので、名前にスペースがあるMQ接続リソースまたはプロジェクト/フォルダを作成しないでください。 |
ビジネス・サービスでMQトランスポートを構成するには、次の表で説明する値を指定します。
表33-3 MQビジネス・サービスの構成
オプション | 説明 |
---|---|
メッセージ・タイプ |
次のいずれか1つを選択します:
|
レスポンスが必要 |
アウトバウンド・メッセージの送信後にレスポンスを受け取ることを指定する場合は、このオプションを選択します。 |
レスポンス相関パターン |
このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。 レスポンス相関パターンのベースとして次のいずれかを指定します。
|
相関値の自動生成 |
このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。 このチェック・ボックスを選択して、CorrelationIDまたはMessageIDを自動的に生成します。 |
モデル・キュー |
「動的キュー」のレスポンス相関パターン専用。動的キューを生成するために使用されるモデルの名前を入力します。 |
MQレスポンスURI |
このオプションは、「レスポンスが必要」オプションが選択されている場合のみ使用できます。 レスポンスがパブリッシュされる宛先。次のようにエンドポイントURIと同じ形式でレスポンスURIを入力します。 mq://local_queue_name?conn=mq_connection_resource または、次の動的キューを使用します。 mq://dynamic_queue_prefix?conn=mq_connection_resource dynamic_queue_prefix(最長32文字)は、MQサーバーに動的キューを作成するために使用されます。キュー名は接頭辞に一意のIDを追加したものです。たとえば、dynamic_queue_prefixが 動的キューのレスポンスURIではワイルドカードとしてアスタリスク(*)も使用できます。例: mq://dynamic_queue_prefix*?conn=mq_connection_resource mq://dynamic_queue_prefix* mq://* URIにdynamic_queue_prefixを指定しない場合、トランスポートはMQサーバーによって生成される動的キュー名を使用します。URIに明示的なmq_connection_resourceを指定しない場合(ベスト・プラクティス)、トランスポートはエンドポイントURIのmq_connection_resourceを使用します。 詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のMQトランスポートに関する項( |
レスポンス・タイムアウト |
このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。 接続を切断するまでのレスポンスの待機時間を秒単位で入力します。デフォルトは |
ポーリング間隔 |
このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。 ポーリング間隔をミリ秒単位で入力します。デフォルト値は |
ポーラー・ディスパッチ・ポリシー |
ポーラー・スレッドに使用されるディスパッチ・ポリシー。 |
動的キュー・プーリング |
「動的キュー」のレスポンス相関パターン専用。動的接続に対してプーリングされた接続をサービスで使用する場合は、このオプションを選択します。 動的キューに対して別の接続プールを使用する場合は、動的キューのために専用のMQ接続リソースを構成することを検討してください。 各リクエストに新しい動的キュー・インスタンスを作成する場合(レスポンスの後でキューを破棄する場合)は、このオプションを選択しないでください。 |
エンドポイントURI 'PUT'オプション |
次の中からMQ PUTメッセージ・オプションを入力します。
複数のオプションを区切るには、「|」または「+」を使用します。たとえば、次のように指定できます。 MQC.MQPMO_LOGICAL_ORDER | MQC.MQPMO_NEW_MSG_ID MQ PUTメッセージ・オプションは、メッセージがアウトバウンド・キューに配置された場合に適用されます。 |
MQ認識できないレスポンスURI |
認識できないレスポンス・メッセージの送信先のキューを示すURIを入力します。「相関値の自動生成」チェック・ボックスが選択された場合のみ、設定が有効になります。 このフィールドの値を指定しない場合、認証できないレスポンス・メッセージが削除されます。 |
RFH2ヘッダーのプロセス |
メッセージ・ペイロードからWebSphere MQ RFH2ヘッダーを解析して、RFH2データを含むRFH2Headersトランスポート・ヘッダーを自動的に生成する場合はこのオプションを選択します。 このオプションを選択しない場合は、ペイロードはそのまま渡されます。 MQトランスポートによるRFH2ヘッダーの処理方法の詳細は、33.8.5.1.1項「RFH2ヘッダーについて」を参照してください。 |
ワーカー・スレッド・ディスパッチ・ポリシー |
このエンドポイントのディスパッチ・ポリシーに使用するOracle WebLogic Serverワーク・マネージャのインスタンスを選択します。デフォルトのワーク・マネージャは、他にワーク・マネージャがない場合に使用されます。 ワーク・マネージャの詳細は、次の説明を参照してください。
|
MQトランスポートを使用するビジネス・サービスの構成の詳細は、2.2項「ビジネス・サービスの操作」の「MQトランスポート構成ページ」を参照してください。
MQ転送で使用される各種のヘッダーを表 33-4に示します。ヘッダーの多くはアウトバウンド・リクエストとインバウンド・レスポンスの両方で共通になっています。返信先キュー名、返信先キュー・マネージャ名、ユーザーID、およびバージョンの各ヘッダーはインバウンド・レスポンス用としてのみ編集できます。
プロキシ・サービスを構成するときに、トランスポート・ヘッダー・アクションを使用してメッセージのヘッダー値を設定できます。
表33-4 トランスポート・ヘッダー
ヘッダー | 説明 | インバウンド・レスポンス/アウトバウンド・リクエスト |
---|---|---|
アカウンティング・トークン |
アカウンティング・トークンは、メッセージのIDコンテキストの一部です。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
アプリケーションIDデータ |
アプリケーションIDデータは、メッセージのIDコンテキストの一部です。この値を使用して、メッセージまたはメッセージの送信元についての追加情報を提供できます。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
アプリケーション送信元データ |
送信元アプリケーションについてのデータです。この値は、メッセージの送信元についての追加情報を提供するためにアプリケーションが使用できます。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
バックアウト・カウント |
1単位の処理の一部として、メッセージがMQキューから返され、その後取り消された回数です。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
文字セット |
アプリケーション・メッセージ・データ内の文字データのコード化文字セット識別子です。 インバウンド・トランスポート・アクション: このフィールドは、データを特定の表現に変換するためにインバウンド・トランスポートによって使用されます。リクエスト/レスポンス・メッセージングの場合、リクエスト・メッセージのcharacterSetヘッダーはレスポンス・メッセージにコピーされます。このヘッダーがインバウンド・リクエストで構成されていない場合、デフォルト値である アウトバウンド・トランスポート・アクション: このヘッダーは、アウトバウンド・トランスポート用にパイプラインで設定できます。このヘッダー値が設定されていない場合は、デフォルト値の |
両方 |
相関ID |
取得する必要があるメッセージの相関IDです。 インバウンド・トランスポート・アクション: correlationIDに基づくレスポンス相関パターンでは、リクエストのcorrelationIDがレスポンスにエコーされます。ユーザーはレスポンス・パイプライン内でcorrelationIDをオーバーライドできます。 アウトバウンド・トランスポート・アクション: サービスの構成中にcorrelationIDの自動生成オプションが選択されている場合、アウトバウンド・トランスポートは自動的にcorrelationIDを生成し、トランスポート・ヘッダーからのcorrelationIDが上書きされます。この値が指定されていない場合、パイプラインで指定されているcorrelationIDが使用されます。 一方向メッセージングの場合、パイプラインで指定されているcorrelationIDが(アウトバウンド)リクエストで使用されます。 |
両方 |
エンコーディング |
アプリケーション・メッセージ・データ内の数値に使用される表現です。 インバウンド・トランスポート・アクション: インバウンド・トランスポートでは、このヘッダーを使用して着信メッセージ・データを解釈します。レスポンス・パイプラインでこのヘッダーが構成されていない場合、デフォルト値である アウトバウンド・トランスポート・アクション: このヘッダーがアウトバウンド・トランスポートのパイプラインで設定されていない場合、デフォルト値である |
両方 |
有効期限 |
有効期限は、メッセージを送信するアプリケーションによって設定されます(10分の1秒単位)。有効期限が過ぎたメッセージは、キュー・マネージャによって破棄されます。 インバウンド・トランスポート・アクション: リクエスト/レスポンス・メッセージングでは、リクエストの有効期限ヘッダーはインバウンド・トランスポートによってレスポンスにコピーされます。 アウトバウンド・トランスポート・アクション: 対応するトランスポート・ヘッダーがパイプラインで設定されている場合、このヘッダーはアウトバウンド・リクエスト・メッセージにコピーされます。 注意: レポート・ヘッダーには(他のオプションに加えて) |
両方 |
フィードバック |
フィード・バック・レポートの性質です。この値は、 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
書式 |
メッセージ・データのフォーマット名です。フォーマット名は、メッセージの送信者によって使用され、受信者にメッセージのデータの性質を示すものです。 インバウンド・トランスポート・アクション: このフィールドが アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
グループID |
物理メッセージが属しているメッセージ・グループを識別する値です。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
オフセット |
セグメント化されたメッセージにおいて、論理メッセージの先頭からの、物理メッセージのデータのオフセットです。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
元の長さ |
セグメント化されたメッセージの元の長さです。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
メッセージ・フラグ |
メッセージのセグメント化とステータスを制御するフラグです。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
メッセージID |
取得するメッセージのIDです。 インバウンド・トランスポート・アクション: messageIDがレスポンス・パイプライン内で指定されていない場合、messageIDヘッダーは messageIDに基づく相関の場合、インバウンド・トランスポートによってリクエストのmessageIDがレスポンスのcorrelationIDヘッダーにコピーされます。レポート・ヘッダーに アウトバウンド・トランスポート・アクション: サービスの構成時にmessageIDの自動生成オプションが指定されていると、アウトバウンド・トランスポートによりmessageIDが自動生成され、トランスポート・ヘッダーのmessageIDが上書きされます。この値が指定されていない場合は、messageIDトランスポート・ヘッダーが使用されます。 一方向メッセージングの場合、パイプラインで指定されているmessageIDがアウトバウンド・リクエストで使用されます。この値が指定されていない場合、messageIDはトランスポートにより自動生成されます。 |
両方 |
メッセージ・シーケンス番号 |
グループ内の論理メッセージのシーケンス番号です。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
メッセージ・タイプ |
メッセージのタイプです。 インバウンド・トランスポート・アクション: インバウンド・トランスポートでは、 アウトバウンド・トランスポート・アクション: アウトバウンド・トランスポートでは |
両方 |
永続性 |
メッセージの永続性を示します。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
優先度 |
メッセージの優先度です。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
配信アプリケーション名 |
メッセージを配信するアプリケーションの名前です。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
配信アプリケーションの種類 |
メッセージを配信するアプリケーションの種類です。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
Put Date Time |
メッセージが配信された日付と時刻です。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
両方 |
返信先キュー名 |
返信の送信先となるキューの名前です。 メッセージの取得リクエストを発行したアプリケーションは、 インバウンド・トランスポート・アクション: このフィールドが設定されていると、インバウンド・トランスポートでは アウトバウンド・トランスポート・アクション: リクエスト/レスポンス・メッセージ・パターンでは、メッセージ・フローで設定された |
インバウンド・レスポンス |
返信先キュー・マネージャ名 |
返信またはレポート・メッセージを送信できるキュー・マネージャの名前です。 インバウンド・トランスポート・アクション: リクエスト/レスポンス・メッセージ・パターンでは、インバウンド・メッセージの アウトバウンド・トランスポート・アクション: リクエスト/レスポンス・メッセージ・パターンでは、メッセージ・フローで設定された |
インバウンド・レスポンス |
レポート |
レポートとは、他のメッセージに関するメッセージです。このフィールドでは、元のメッセージを送信しているアプリケーションでどのレポート・メッセージが必要か、これらのレポート・メッセージにアプリケーション・メッセージ・データを含める必要があるかどうか、またレポートまたは応答にメッセージIDおよび相関IDを設定する方法を指定します。これはMQCクラスの1つ以上の定数を「+」または「|」演算子で組み合せることによって構成されます。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。リクエスト/レスポンス・メッセージングの場合、このヘッダーはレスポンス・パイプライン内に構成できます。 アウトバウンド・トランスポート・アクション: トランスポートによってレポート・フィールドに次のオプションの組合せが必ず設定されます。 messageIDに基づく相関パターンが使用される場合には 注意: これらのオプションは、パイプラインの対応するトランスポート・ヘッダーで指定されているオプションに追加して設定されます。 |
両方 |
ユーザーID |
メッセージIDの一部であり、メッセージ送信元のユーザーを識別します。 インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。 アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。 |
インバウンド・レスポンス |
バージョン |
メッセージ記述子のバージョン番号です。 インバウンド・トランスポート・アクション: インバウンド・トランスポートは、メッセージ記述子バージョン1とバージョン2の両方をサポートしています。 アウトバウンド・トランスポート・アクション: デフォルトでは、アウトバウンド・トランスポートはバージョン2のヘッダーを生成します。ただし、このフィールドはパイプライン内でオーバーライドされることがあります。 |
インバウンド・レスポンス |
RFH2Headers |
トランスポート構成に「RFH2ヘッダーの処理」オプションが設定されている場合のペイロードにあるRFH2ヘッダー。RFH2HeadersヘッダーはStringです。 インバウンド・トランスポート・アクション: RFH2ヘッダーは、対応するトランスポート・メタデータ・ヘッダーを作成するためにMQペイロードから抽出されます。 アウトバウンド・トランスポート・アクション: アウトバウンドMQペイロードに挿入されたRFH2ヘッダー(各ヘッダー用の内容の長さを含む)を抽出するために、RFH2Headersデータを解析します。 |
両方 |
メッセージ・フローでは、インバウンド・リクエストおよびアウトバウンド・リクエストの両方についてトランスポート・ヘッダーを構成できます。MQトランスポートに関連するトランスポート・ヘッダーの詳細は、33.8.5項「トランスポート・ヘッダー」を参照してください。
メッセージ・フローで、トランスポート・ヘッダー・アクションを使用してメッセージのヘッダー値を設定します。詳細は、2.4.32項「メッセージ・フローへのトランスポート・ヘッダー・アクションの追加と構成」を参照してください。
メッセージ・フローにおいて、トランスポート・ヘッダーが明示的に設定されている場合、次のシナリオを除いて、この値がヘッダー値をオーバーライドします。
アウトバウンド・リクエスト/レスポンス・パターンの場合、「相関値の自動生成」
オプションがリクエスト/レスポンス・メッセージ・パターンのアウトバウンド・リクエストで選択されていると、この値がメッセージ・フローで設定されている場合であっても、相関IDが常に生成されます。
メッセージ・フローでレポート・ヘッダーが設定されている場合、レポート・ヘッダーに関連付けられた複数のディレクティブの組合せがデフォルトのディレクティブにマージされます。
リクエスト/レスポンス・メッセージ・パターンのアウトバウンド・リクエストについて、メッセージ・フローでreplyToQueueManagerName
またはreplyToQueueName
ヘッダーが設定されている場合、これらの値は無視されます。そのかわりに、これらのトランスポート・ヘッダーの値はビジネス・サービス用に構成されたレスポンスURIから導出されます。
インバウンド・レスポンスの場合、replyToQueueManagerName
ヘッダーにある値が、レスポンスURIで指定されたキュー・マネージャ名と一致しないと、エラー・メッセージが生成され、レスポンス・メッセージは送信されません。
インバウンド・リクエスト・ヘッダーに設定されたreplyToQueueName
は、プロキシ・サービスの返信先URIで構成された値をオーバーライドします。
一方向ビジネス・サービスの場合、メッセージ・タイプのヘッダーがメッセージ・フローでリクエスト・タイプに構成されていると、replyToQueueName
ヘッダーを指定する必要があります。この値が指定されていない場合は、MQサーバーでエラーが発生すると、メッセージはロール・バックされます。
RFH2Headerヘッダーは複数の<RFH2Header>ブロックがあります。各ブロックには複数のフォルダが含まれています。MQトランスポートによって、各ブロックが、フォルダの線形リストを含む1つのRFH2ヘッダーに統合されます。
たとえば、次のブロックが一つのRFH2Headerヘッダーに統合されます。
<RFH2Header> <mcd><Msd>jms_bytes</Msd></mcd> </RFH2Header> <RFH2Header> <usr><clientId>DASHBOARD</clientId></usr> </RFH2Header>
次のように、MQトランスポート・ビジネス・サービスを構成して、アプリケーション・エラーおよび通信エラーを処理できます。
アプリケーション・エラー - アプリケーション・エラーが発生したときにビジネス・サービスのエンドポイントURIを再試行するかどうかを指定できます。詳細は、4.2.4項「ビジネス・サービスの「トランスポート構成」ページ」の「アプリケーション・エラーの再試行」オプションを参照してください。
通信エラー-通信エラーが発生した場合に、ビジネス・サービスのURIがオフラインになるように構成できます。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のビジネス・サービス・エンドポイントURIのオフラインの有効化に関する項およびビジネス・サービスのエンドポイントURIのメトリックの表示に関する項を参照してください。
MQトランスポートの制限は次のとおりです。
MQプロキシ・サービスに基づくリクエスト/レスポンス・プロキシ・サービスを、次の方法で呼び出すことはできません。
ルート・アクションまたは動的ルーティングおよびルーティング表アクションを使用して構成されているプロキシ・サービスから。
サービス・コールアウト・アクションを使用して。
ターゲットがMQトランスポートに基づくリクエスト/レスポンス・プロキシ・サービスである場合、サービス・コールアウトを使用してプロキシ・サービスを呼び出すことはできません。
Oracle Service Busテスト・コンソールで、リクエスト/レスポンスMQプロキシ・サービスへの間接呼出しを使用することはできません。
次の項では、Oracle Service BusがWebSphere MQへ接続する方法について概説し、WebSphere MQとOracle Service Bus間の通信で使用されるメッセージ・タイプのいくつかについて概要を示します。
Oracle Service Busは、WebSphere MQ JMSインタフェースを介してWebSphere MQに接続します。つまり、Oracle Service BusはWebSphere MQ JMSクライアントです。
WLSの外部JMSサーバーでは、WebSphere MQサーバーに対する初期コンテキスト・ファクトリ、接続ファクトリ、およびキューを指定します。詳細は、『Oracle Fusion Middleware Oracle WebLogic Server JMSの構成と管理』のサード・パーティJMSプロバイダにアクセスする外部サーバー・リソースの構成に関する項を参照してください。
WebSphere MQ JMSでは、2種類のトランスポート方式がサポートされます。
BINDINGS
CLIENT
WebSphere MQ JMSクライアントがキュー・マネージャと物理的に同じマシン上で実行されている場合は、トランスポートのタイプをBINDINGSに設定できます。それ以外の場合は、CLIENTタイプのみ使用できます。
WebSphere MQは、次の2通りの方法でOracle Service Busと対話できます。
Oracle Service Busでは、次のメッセージングのタイプがサポートされます。
リクエストが欠落しているなど、信頼性のない配信を受け入れる場合、必要に応じて非永続メッセージを使用できます。WebSphere MQのロギングとWebLogic JMSメッセージの永続化は永続メッセージに対してのみ実行されるため、非永続メッセージを使用すると関連するI/Oアクティビティが不要になります。
注意: 非永続メッセージのスループットは、通常はコンピュータのプロセッサ速度によって制限されます。ただし、物理メモリーが不足している場合は、サーバー・システムがページングI/OでCPUサイクルを消費することがあります。 |
WebSphere MQ永続メッセージのスループットは、通常はキュー・マネージャおよびログへの書込みのI/Oレイテンシによって制限されます。
キューへのトランザクション(XA)アクセスのサポートを有効にするには、次のいずれかを使用します。
Oracle Service BusがIBM WebSphere MQと同じコンピュータ上にある場合は、BINDINGSを使用してキュー・マネージャにアクセスします。
Oracle Service BusとIBM WebSphere MQが異なるコンピュータ上に存在する場合は、CLIENTを使用します。ただし、CLIENTを使用する場合、XAトランザクションをサポートするIBM WebSphere MQクライアントの特殊なバージョンが必要です。このバージョンは、WebSphere MQ Extended Transaction Clientと呼ばれます。
ヒント: デプロイメント記述子をXA対応リソース(JMS、TUXEDO、EJB)に適切に設定するには、プロキシ・サービスを作成する前に、参照接続ファクトリのXA属性を設定する必要があります。 |
Oracle Service Busと共に使用する場合、WebSphere MQのチューニングには次のガイドラインが役に立ちます。WebSphere MQの詳細は、WebSphere MQの適切なドキュメントを参照してください。
Oracle Service Busおよびキュー・マネージャが同じコンピュータにデプロイされている場合は、トランスポートのタイプとしてBINDINGSを使用します。
アプリケーション・リクエストのごく一部にのみXAが必要な場合は、別の接続オブジェクトを作成してXAを無効にします。
アクティブ・ログを多くのボリュームに分散させます。システムで高い永続メッセージ・スループットを処理する必要がある場合は、他のデータ・セットの使用との競合を最小限に抑えるために、高速の直接アクセス・ストレージ・デバイス(DASD)にログ・ファイルを置く必要があります。各アクティブ・ログを使用率の低い個別のボリュームに割り当てることをお薦めします。
バッファ・オーバーフローを削減するために、バッファ・プールとページ・セットをチューニングします。バッファ・オーバーフローにより、ハード・ディスクのフラッシュが発生します。
Oracle Service Bus JMSからMQキューへの接続が切断されないように、アクティブなチャネル数を増やして100を超えるようにします。デフォルトでは、アクティブなチャネル数は10です。