ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Service Bus開発者ガイド
11gリリース1 (11.1.1.6.2)
B61435-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

33 MQトランスポート

この章では、MQトランスポートの概要と、サービスでの使用および構成方法について説明します。

Oracle Service BusではMQトランスポートを使用したIBM WebSphere MQへのアクセスがサポートされています。このトランスポートでは、インバウンドとアウトバウンドの両方の接続がサポートされます。MQプロキシ・サービスではWebSphere MQからのメッセージの受信が可能で、MQビジネス・サービスではWebSphere MQへのメッセージのルーティングが可能です。

この章の内容は以下のとおりです。

33.1 主な機能

MQトランスポートでは、以下の主な機能がサポートされます。

33.2 MQトランスポートを使用する利点

WebSphere MQ for Java APIではXAトランザクションがサポートされていないため、Oracle Service BusのMQトランスポートではXAトランザクションはサポートされません。XAが必要な場合は、WebSphere MQ JMSインタフェースと共にJMSトランスポートを使用する必要があります。詳細は、第33章「WebSphere JMS MQインタフェースの使用」を参照してください。

WebSphere MQ JMSインタフェースを使用する場合と比べて、MQトランスポートの使用には以下のような利点があります。

33.3 サポートされるサービス・タイプ

MQトランスポートは、メッセージ・サービスおよびXMLサービスのサービス・タイプで使用できます。

詳細は、4.3項「プロキシ・サービスの構成」および4.2項「ビジネス・サービスの構成」を参照してください。

33.4 メッセージング・パターン

ネイティブMQトランスポートでは、一方向メッセージおよびリクエスト/レスポンス・メッセージング・パターンがインバウンドおよびアウトバウンド接続の両方でサポートされます。デフォルトでは、一方向メッセージングがサポートされます。プロキシ・サービスまたはビジネス・サービスでは、サービスの構成時に-response-requiredオプションを設定すると、リクエスト/レスポンス・メッセージングがサポートされます。

インバウンドおよびアウトバウンド・トランスポートでは、リクエストとレスポンス間の相関に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トランスポートを使用するビジネス・サービスの構成」を参照してください。

33.5 環境値

環境値とは、ドメイン間での構成の移動(テスト環境から本番環境への移行など)に伴って変更されることが多い値で、構成データに含まれる特定の事前定義されたフィールドです。環境値の更新の詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の環境値の検索と置換に関する項を参照してください。次の項に、ネイティブMQトランスポート・サービスとMQ接続リソースで使用する環境値のリストを示します。

MQトランスポートに基づいたサービスでは、「ワーク・マネージャ」(インバウンドおよびアウトバウンド)環境値がサポートされています。

MQ接続は、複数のMQプロキシ・サービスおよびビジネス・サービスで再使用できる、共有可能なリソースです。MQ接続リソースは、MQキュー・マネージャに接続するために必要な接続パラメータを提供します。MQ接続リソースでは、以下の環境値および操作値をサポートしています。

33.6 サービスの品質

インバウンド・トランスポートが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管理者ガイド』のサービス品質に関する項を参照してください。

33.7 MQクラスタとMQトランスポート

WebSphere MQのクラスタ・サポートは、ストア・アンド・フォワード・メッセージングのサポートであり、ロード・バランシングおよびフェイルオーバーのサポートではありません。WebSphere MQのクラスタ・キューは、キュー・マネージャの1つにローカルで作成され、共有キューに対してリモート・フォワーダとして動作する他のクラスタ・メンバーと共有されます。

MQトランスポートからのリクエストは、ロード・バランシング・アルゴリズムを使用してクラスタのメンバーにメッセージを送信することによってロード・バランシングされます。ただし、トランスポートは、ローカル・キューへの参照を保持するMQサーバー・ノードにアクセスすることによってのみ、メッセージを受信します。

33.8 MQトランスポートの使用

Oracle Service Bus MQトランスポートを使用すると、WebSphere MQからメッセージを取得するMQプロキシ・サービス、およびWebSphere MQにメッセージを送信するMQビジネス・サービスが有効になります。このドキュメントでは、Oracle Service Bus環境にWebSphere MQを追加する方法、Oracle Service Bus MQトランスポートの特性、およびMQプロキシやビジネス・サービスを構成する方法について説明します。

この項には次のトピックが含まれます:

33.8.1 環境への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クライアント・ライブラリを環境に追加するには:

  1. ドメイン・サーバーを停止します。

  2. WebSphere MQのインストールからcom.ibm.mq.jarファイルをDOMAIN_HOME/domain_name/libディレクトリにコピーします。

  3. ドメイン・サーバーを再起動します。

Oracle Service Busと同じマシン上にあるMQキューに接続するためにバインディング・モードを使用する場合は、PATH環境変数に<MQ_install_directory>/binおよび<MQ_install_directory>/java/libを追加します。

33.8.2 MQ接続リソース

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を参照してください。

33.8.2.1 MQ接続リソースの作成


注意:

MQ接続リソースを作成するための次の手順はOracle Service Bus管理コンソールで行います。Eclipseでは、Oracle Service Busパースペクティブを使用して「File」「New」「Custom Resource」を選択し、MQ接続リソースを作成します。


MQ接続リソースを作成するには、次の手順を実行します。

  1. プロジェクト・エクスプローラで、リソースの種類として「MQ接続」を選択します。「新しいMQ接続リソースの作成」ページが表示されます。

  2. リソースの名前と説明を入力します。


    注意:

    名前にはスペースが含まれないようにします。


  3. 接続タイプとして「tcpモード」または「バインド・モード」を選択します。

    「tcpモード」は、MQキュー・マネージャがOracle Service Busと同じマシン上にない場合に使用します。「バインド・モード」は、Oracle Service Busと同じマシン上にあるMQキュー・マネージャに接続する場合に使用します。

  4. 接続タイプが「バインド・モード」の場合は、MQキュー・マネージャの名前を入力します。

  5. 接続タイプが「tcpモード」の場合は、次の操作を行います。

    1. MQキュー・マネージャのホスト名を入力します。

    2. MQキュー・マネージャ・リスナーのポート番号を入力します。

    3. MQキュー・マネージャの名前を入力します。

    4. クライアント接続モードでMQキュー・マネージャに接続するために使用するコード化文字セット識別子(CCSID)を入力します。

    5. キュー・マネージャのサーバー接続チャネル名を入力します。

    6. メッセージの送信にHTTPSプロトコルを使用する必要があれば、SSLオプションを選択します。

      このオプションを選択した場合に、クライアント側とサーバー側の両方で認証を行うために双方向SSLを有効にするには、「双方向SSLが必要」オプションを選択します。サーバー側のみの認証用の一方向SSLでは、「双方向SSLが必要」オプションをクリアします。


      注意:

      双方向SSLを選択した場合、サービス・キー・プロバイダへの参照を指定する必要があります。サービス・キー・プロバイダには、プロキシ・サービスがインバウンドSOAPメッセージの復号化、アウトバウンド認証、およびデジタル署名で使用する、公開鍵インフラストラクチャ(PKI)の資格証明情報が含まれます。サービス・プロバイダ使用の詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。


    7. 静的サービス・アカウントを指定します。

      サービス・アカウントは、ユーザー名とパスワードを提供します。このユーザー名とパスワードは、プロキシ・サービスとビジネス・サービスがアウトバウンド認証を行うとき、またはローカルまたはリモート・リソースを認証するときに使用します。サービス・アカウント使用の詳細は、2.1.15項「サービス・アカウント・リソースの作成」を参照してください。

  6. WebSphere MQのバージョンを選択します。

  7. MQ接続プールのサイズを入力します。デフォルトは10です。

  8. MQ接続タイムアウトには、未使用の接続が破棄されるまでの時間間隔を秒単位で入力します。デフォルトは1800秒です。

  9. 接続が使用可能になるまでの応答の待ち時間に、秒単位で最大待機時間を入力します。その時間内に接続が確立されない場合、Oracle Service Busが例外をスローします。デフォルトは3秒です。

  10. 「保存」をクリックします。

これでMQ接続リソースが作成されました。この接続リソースは、このMQトランスポートを使用するプロキシ・サービスおよびビジネス・サービスで共有できます。

33.8.3 MQトランスポートを使用するプロキシ・サービスの構成

サービスを構成するとき、「全般的な構成」ページでサービスのタイプとしてメッセージ・サービスか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接続リソースmqConnectiondefaultMQフォルダに作成し、キュー名がtestQueueである場合、URIはmq://testQueue?conn=defaultMQ/mqConnectionになります。


注意:

エンドポイントURIはスペースを含むことができないので、名前にスペースがあるMQ接続リソースまたはプロジェクト/フォルダを作成しないでください。


次の表で説明する値を使用して、プロキシ・サービスのMQトランスポートを構成します。

表33-1 MQプロキシ・サービスの構成

オプション 説明

ポーリング間隔

ポーリング間隔をミリ秒単位で入力します。デフォルト値は1000です。

レスポンスが必要

アウトバウンド・メッセージの送信後にレスポンスを受け取ることを指定する場合は、このオプションを選択します。

レスポンス相関パターン

このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。

レスポンス相関パターンがMessageIDまたはCorrelationIDのいずれに基づく必要があるかを指定します。

MQレスポンスURI

このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。

レスポンスがパブリッシュされる宛先。レスポンスURIを、エンドポイントURIと同じ形式でmq://<local-queue-name>?conn=<mq-connection-resource-ref>のように入力します。

レスポンス・メッセージ・タイプ

このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。

次のいずれか1つを選択します:

  • 「バイト」(未解釈バイトのストリームの場合)

  • 「テキスト」(テキスト・メッセージの場合)

クライアント・レスポンス・タイムアウト

このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。

接続を切断するまでのレスポンスの待機時間を秒単位で入力します。

ディスパッチ・ポリシー

このエンドポイントのディスパッチ・ポリシーに使用するOracle WebLogic Serverワーク・マネージャのインスタンスを選択しますほかのワーク・マネージャが存在しない場合は、デフォルトのワーク・マネージャが使用されます。

ワーク・マネージャの詳細は、次の説明を参照してください。

  • 『Oracle Fusion Middleware Oracle WebLogic Serverサーバー環境の構成』のワーク・マネージャを使用したスケジューリング済作業の最適化に関する説明

  • 『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Busでのワーク・マネージャの使用に関する項

バックアウトしきい値

「配信失敗メッセージURI」フィールドに指定したキューにパイプラインがメッセージをリダイレクトする前に、メッセージを再試行する回数を示す値を入力します。

このフィールドに値が指定されていない場合は、再試行を実行しないで、メッセージを配信失敗キューにリダイレクトします。

MQ配信失敗メッセージURI

「バックアウトしきい値」フィールドに指定した再試行回数を行った後、リクエスト・メッセージがリダイレクトされる配信失敗メッセージ・キューのURIを入力します。

このフィールドに値を指定しない場合、「バックアウトしきい値」フィールドに指定した再試行回数を行った後、メッセージが破棄されます。配信失敗メッセージURIの形式はエンドポイントURI形式と同じです。

エンドポイントURI 'GET'オプション

以下のオプションでMQ GETメッセージ・オプションを入力します。

  • MQC.MQGMO_ACCEPT_TRUNCATED_MSG

  • MQC.MQGMO_ALL_MSGS_AVAILABLE

  • MQC.MQGMO_BROWSE_FIRST

  • MQC.MQGMO_BROWSE_NEXT

  • MQC.MQGMO_COMPLETE_MSG

  • MQC.MQGMO_CONVERT

  • MQC.MQGMO_FAIL_IF_QUIESCING

  • MQC.MQGMO_LOCK

  • MQC.MQGMO_LOGICAL_ORDER

  • MQC.MQGMO_MARK_BROWSE_CO_OP

  • MQC.MQGMO_MARK_SKIP_BACKOUT

  • MQC.MQGMO_NO_SYNCPOINT

  • MQC.MQGMO_NONE

  • MQC.MQGMO_NO_WAIT

  • MQC.MQGMO_SYNCPOINT

  • MQC.MQGMO_SYNCPOINT_IF_PERSISTENT

  • MQC.MQGMO_UNLOCK

  • MQC.MQGMO_UNMARK_BROWSE_CO_OP

  • MQC.MQGMO_UNMARK_BROWSE_HANDLE

  • MQC.MQGMO_UNMARKED_BROWSE_MSG

  • MQC.MQGMO_VERSION_1

  • MQC.MQGMO_VERSION_2

  • MQC.MQGMO_VERSION_3

  • MQC.MQGMO_WAIT

複数のオプションを区切るには、「|」または「+」を使用します。たとえば、次のように指定できます。

MQC.MQGMO_ACCEPT_TRUNCATED_MSG | MQC.MQGMO_LOCK

インバウンド・キューからのメッセージを読み込む場合、MQ GETメッセージ・オプションが適用されます。

RFH2ヘッダーのプロセス

メッセージ・ペイロードからWebSphere MQ RFH2ヘッダーを解析して、RFH2データを含むRFH2Headersトランスポート・ヘッダーを自動的に生成する場合はこのオプションを選択します。

このオプションを選択しない場合は、ペイロードはそのまま渡されます。


MQトランスポートを使用するプロキシ・サービスの構成の詳細は、2.3項「プロキシ・サービスの操作」の「MQトランスポート構成ページ」を参照してください。

33.8.4 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接続リソースmqConnectiondefaultMQフォルダに作成し、キュー名がtestQueueである場合、URIはmq://testQueue?conn=defaultMQ/mqConnectionになります。


注意:

エンドポイントURIはスペースを含むことができないので、名前にスペースがあるMQ接続リソースまたはプロジェクト/フォルダを作成しないでください。


ビジネス・サービスでMQトランスポートを構成するには、以下の表で説明する値を指定します。

表33-2 MQビジネス・サービスの構成

オプション 説明

メッセージ・タイプ

次のいずれか1つを選択します:

  • 「バイト」(未解釈バイトのストリームの場合)

  • 「テキスト」(テキスト・メッセージの場合)

レスポンスが必要

アウトバウンド・メッセージの送信後にレスポンスを受け取ることを指定する場合は、このオプションを選択します。

ポーリング間隔

このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。

ポーリング間隔をミリ秒単位で入力します。デフォルト値は1000です。

レスポンス相関パターン

このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。

レスポンス相関パターンのベースとして次のいずれかを指定します。

  • MessageID

  • CorrelationID

  • 「動的キュー」 - レスポンス相関のためにWebSphere MQ実装が動的キューを使用する場合はこのオプションを選択します。MQトランスポートでサポートされるのは一時的な動的キューのみです。

相関値の自動生成

このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。

このチェック・ボックスを選択して、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_prefixexampleの場合、動的キューの名前はexample123129083821のようになります。

動的キューのレスポンス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トランスポートに関する項(http://www.oracle.com/pls/as1111/lookup?id=OSBDV1117)を参照してください。

レスポンス・タイムアウト

このオプションは、「レスポンスが必要」チェック・ボックスが選択されている場合のみ使用できます。

接続を切断するまでのレスポンスの待機時間を秒単位で入力します。

ディスパッチ・ポリシー

このエンドポイントのディスパッチ・ポリシーに使用するOracle WebLogic Serverワーク・マネージャのインスタンスを選択しますほかのワーク・マネージャが存在しない場合は、デフォルトのワーク・マネージャが使用されます。

ワーク・マネージャの詳細は、次の説明を参照してください。

  • 『Oracle Fusion Middleware Oracle WebLogic Serverサーバー環境の構成』のワーク・マネージャを使用したスケジューリング済作業の最適化に関する説明

  • 『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Busでのワーク・マネージャの使用に関する項

動的キュー・プーリング

「動的キュー」のレスポンス相関パターン専用。動的接続に対してプーリングされた接続をサービスで使用する場合は、このオプションを選択します。

動的キューに対して別の接続プールを使用する場合は、動的キューのために専用のMQ接続リソースを構成することを検討してください。

各リクエストに新しい動的キュー・インスタンスを作成する場合(レスポンスの後でキューを破棄する場合)は、このオプションを選択しないでください。

エンドポイントURI 'PUT'オプション

次の中からMQ PUTメッセージ・オプションを入力します。

  • MQC.MQPMO_ALTERNATE_USER_AUTHORITY

  • MQC.MQPMO_DEFAULT_CONTEXT

  • MQC.MQPMO_FAIL_IF_QUIESCING

  • MQC.MQPMO_LOGICAL_ORDER

  • MQC.MQPMO_NEW_CORREL_ID

  • MQC.MQPMO_NEW_MSG_ID

  • MQC.MQPMO_NO_CONTEXT

  • MQC.MQPMO_NO_SYNCPOINT

  • MQC.MQPMO_NONE

  • MQC.MQPMO_PASS_ALL_CONTEXT

  • MQC.MQPMO_PASS_IDENTITY_CONTEXT

  • MQC.MQPMO_RESOLVE_LOCAL_Q

  • MQC.MQPMO_SET_ALL_CONTEXT

  • MQC.MQPMO_SET_IDENTITY_CONTEXT

  • MQC.MQPMO_SYNCPOINT

  • MQC.MQPMO_VERSION_1

  • MQC.MQPMO_VERSION_2

複数のオプションを区切るには、「|」または「+」を使用します。たとえば、次のように指定できます。

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ヘッダーについて」を参照してください。


MQトランスポートを使用するビジネス・サービスの構成の詳細は、2.2項「ビジネス・サービスの操作」の「MQトランスポート構成ページ」を参照してください。

33.8.5 トランスポート・ヘッダー

MQトランスポートで使用される各種のヘッダーを表33-3に示します。ヘッダーの多くはアウトバウンド・リクエストとインバウンド・レスポンスの両方で共通になっています。返信先キュー名、返信先キュー・マネージャ名、ユーザーID、およびバージョンの各ヘッダーはインバウンド・レスポンス用としてのみ編集できます。

プロキシ・サービスを構成するときに、トランスポート・ヘッダー・アクションを使用してメッセージのヘッダー値を設定できます。

表33-3 トランスポート・ヘッダー

ヘッダー 説明 インバウンド・レスポンス/アウトバウンド・リクエスト

アカウンティング・トークン

アカウンティング・トークンは、メッセージのIDコンテキストの一部です。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

アプリケーションIDデータ

アプリケーションIDデータは、メッセージのIDコンテキストの一部です。この値を使用して、メッセージまたはメッセージの送信元についての追加情報を提供できます。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

アプリケーション送信元データ

送信元アプリケーションについてのデータです。この値は、メッセージの送信元についての追加情報を提供するためにアプリケーションが使用できます。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

バックアウト・カウント

1単位の処理の一部として、メッセージがMQキューから返され、その後取り消された回数です。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

文字セット

アプリケーション・メッセージ・データ内の文字データのコード化文字セット識別子です。

インバウンド・トランスポート・アクション: このフィールドは、データを特定の表現に変換するためにインバウンド・トランスポートによって使用されます。リクエスト/レスポンス・メッセージングの場合、リクエスト・メッセージのcharacterSetヘッダーはレスポンス・メッセージにコピーされます。このヘッダーがインバウンド・リクエストで構成されていない場合、デフォルト値であるMQC.MQCCSI_Q_MGR値が使用されます。

アウトバウンド・トランスポート・アクション: このヘッダーは、アウトバウンド・トランスポート用にパイプラインで設定できます。このヘッダー値が設定されていない場合は、デフォルト値のMQC.MQCCSI_Q_MGRが使用されます。

両方

相関ID

取得する必要があるメッセージの相関IDです。

インバウンド・トランスポート・アクション: correlationIDに基づくレスポンス相関パターンでは、リクエストのcorrelationIDがレスポンスにエコーされます。ユーザーはレスポンス・パイプライン内でcorrelationIDをオーバーライドできます。

アウトバウンド・トランスポート・アクション: サービスの構成中にcorrelationIDの自動生成オプションが選択されている場合、アウトバウンド・トランスポートは自動的にcorrelationIDを生成し、トランスポート・ヘッダーからのcorrelationIDが上書きされます。この値が指定されていない場合、パイプラインで指定されているcorrelationIDが使用されます。

一方向メッセージングの場合、パイプラインで指定されているcorrelationIDが(アウトバウンド)リクエストで使用されます。

両方

エンコーディング

アプリケーション・メッセージ・データ内の数値に使用される表現です。

インバウンド・トランスポート・アクション: インバウンド・トランスポートでは、このヘッダーを使用して送信されてくるメッセージ・データを解釈します。レスポンス・パイプラインでこのヘッダーが構成されていない場合、デフォルト値であるMQC.MQENC_NATIVEが使用されます。

アウトバウンド・トランスポート・アクション: このヘッダーがアウトバウンド・トランスポートのパイプラインで設定されていない場合、デフォルト値であるMQC.MQENC_NATIVEが使用されます。

両方

有効期限

有効期限は、メッセージを送信するアプリケーションによって設定されます(10分の1秒単位)。有効期限が過ぎたメッセージは、キュー・マネージャによって破棄されます。

インバウンド・トランスポート・アクション: リクエスト/レスポンス・メッセージングでは、リクエストの有効期限ヘッダーはインバウンド・トランスポートによってレスポンスにコピーされます。

アウトバウンド・トランスポート・アクション: 対応するトランスポート・ヘッダーがパイプラインで設定されている場合、このヘッダーはアウトバウンド・リクエスト・メッセージにコピーされます。

注意: レポート・ヘッダーには(他のオプションに加えて)MQC.MQRO_PASS_DISCARD_AND_EXPIRYオプションが必ず含まれています。このオプションは元のメッセージの有効期限をレポートまたは返信メッセージにコピーする必要があるという、受信側クライアントに対する指示です。

両方

フィードバック

フィード・バック・レポートの性質です。この値は、MQC.MQMT_REPORTというメッセージのタイプと共に使用して、レポートの性質を示すために使用します。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

書式

メッセージ・データのフォーマット名です。フォーマット名は、メッセージの送信者によって使用され、受信者にメッセージのデータの性質を示すものです。

インバウンド・トランスポート・アクション: このフィールドがMQC.MQFMT_MD_EXTENSIONに設定されると、インバウンド・トランスポートは拡張MQMDオブジェクトを読み込みます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

グループID

物理メッセージが属しているメッセージ・グループを識別する値です。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

オフセット

セグメント化されたメッセージにおいて、論理メッセージの先頭からの、物理メッセージのデータのオフセットです。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

元の長さ

セグメント化されたメッセージの元の長さです。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

メッセージ・フラグ

メッセージのセグメント化とステータスを制御するフラグです。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

メッセージID

取得するメッセージのIDです。

インバウンド・トランスポート・アクション: messageIDがレスポンス・パイプライン内で指定されていない場合、messageIDヘッダーはMQC.MQMI_NONEに設定されます。

messageIDに基づく相関の場合、インバウンド・トランスポートによってリクエストのmessageIDがレスポンスのcorrelationIDヘッダーにコピーされます。レポート・ヘッダーにMQC.MQRO_COPY_MSG_ID_TO_CORREL_IDオプションが含まれている場合、messageIDに基づく相関が使用されます。

アウトバウンド・トランスポート・アクション: サービスの構成時にmessageIDの自動生成オプションが指定されていると、アウトバウンド・トランスポートによりmessageIDが自動生成され、トランスポート・ヘッダーのmessageIDが上書きされます。この値が指定されていない場合は、messageIDトランスポート・ヘッダーが使用されます。

一方向メッセージングの場合、パイプラインで指定されているcorrelationIDがアウトバウンド・リクエストで使用されます。この値が指定されていない場合、messageIDはトランスポートにより自動生成されます。

両方

メッセージ・シーケンス番号

グループ内の論理メッセージのシーケンス番号です。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

メッセージ・タイプ

メッセージのタイプです。

インバウンド・トランスポート・アクション: インバウンド・トランスポートでは、MQC.MQMT_REQUESTMQC.MQMT_DATAGRAM、MQC.MQMT_REPLY、およびMQC.MQMT_REPORTを含むすべてのタイプのメッセージを読み込んで処理を行います。インバウンド・トランスポートではレポート・メッセージは生成されません。

アウトバウンド・トランスポート・アクション: アウトバウンド・トランスポートではMQC.MQMT_DATAGRAMMQC.MQMT_REQUEST、MQC.MQMT_REPLY、およびMQC.MQMT_REPORTを含むすべてのタイプのメッセージを生成します。messageTypeヘッダーがパイプライン内で構成されていない場合、メッセージング・パターンが一方向のときにはMQC.MQMT_DATAGRAMタイプのメッセージが、メッセージング・パターンがリクエスト/レスポンスのときにはMQC.MQMT_REQUESTタイプのメッセージがトランスポートによって生成されます。

両方

永続性

メッセージの永続性を示します。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

優先度

メッセージの優先度です。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

配信アプリケーション名

メッセージを配信するアプリケーションの名前です。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

配信アプリケーションの種類

メッセージを配信するアプリケーションの種類です。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

Put Date Time

メッセージが配信された日付と時刻です。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

両方

返信先キュー名

返信の送信先となるキューの名前です。

メッセージの取得リクエストを発行したアプリケーションは、MQC.MQFMT_REPLYおよびMQC.MQFMT_REPORTメッセージをこのキューに送信できます。

インバウンド・トランスポート・アクション: このフィールドが設定されていると、インバウンド・トランスポートではreplyToQueueNameをレスポンス・キューの名前として使用します。この値が設定されていない場合は、デフォルトの宛先URIからキューの名前が導出されます。

アウトバウンド・トランスポート・アクション: リクエスト/レスポンス・メッセージ・パターンでは、メッセージ・フローで設定されたreplyToQueueNameは無視されます。一方向メッセージ・パターンでは、メッセージ・フローで設定されたreplyToQueueNameがアウトバウンド・メッセージで使用されます。

インバウンド・レスポンス

返信先キュー・マネージャ名

返信またはレポート・メッセージを送信できるキュー・マネージャの名前です。

インバウンド・トランスポート・アクション: リクエスト/レスポンス・メッセージ・パターンでは、インバウンド・メッセージのreplyToQueueManagerヘッダー値が、レスポンスURIでキュー・マネージャについて構成された値と一致しない場合、レスポンス・メッセージは破棄され、トランスポート・エラーがログに記録されます。

アウトバウンド・トランスポート・アクション: リクエスト/レスポンス・メッセージ・パターンでは、メッセージ・フローで設定されたreplyToQueueManagerは無視されます。一方向メッセージ・パターンでは、メッセージ・フローで設定されたreplyToQueueManagerがアウトバウンド・メッセージで使用されます。

インバウンド・レスポンス

レポート

レポートとは、他のメッセージに関するメッセージです。このフィールドでは、元のメッセージを送信しているアプリケーションでどのレポート・メッセージが必要か、これらのレポート・メッセージにアプリケーション・メッセージ・データを含める必要があるかどうか、またレポートまたは応答にメッセージIDおよび相関IDを設定する方法を指定します。これはMQCクラスの1つ以上の定数を「+」または「」>「」 演算子で組み合せることによって構成されます。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。リクエスト/レスポンス・メッセージングの場合、このヘッダーはレスポンス・パイプライン内に構成できます。

アウトバウンド・トランスポート・アクション: トランスポートによってレポート・フィールドに次のオプションの組合せが必ず設定されます。

messageIDに基づく相関パターンが使用される場合にはMQC.MQRO_COPY_MSG_ID_TO_CORREL_IDが設定され、correlationIDに基づく相関パターンが使用される場合は、MQC.MQRO_PASS_CORREL_IDが設定されます。MQC.MQRO_PASS_DISCARD_AND_EXPIRYは常に設定されます。

注意: これらのオプションは、パイプラインの対応するトランスポート・ヘッダーで指定されているオプションに追加して設定されます。

両方

ユーザーID

メッセージIDの一部であり、メッセージ送信元のユーザーを識別します。

インバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。このヘッダーはパイプライン内でトランスポート・ヘッダーにコピーされます。

アウトバウンド・トランスポート・アクション: トランスポートによる明示的な処理は行われません。対応するトランスポート・ヘッダーがパイプライン内で設定されている場合は、リクエスト・メッセージにコピーされます。

インバウンド・レスポンス

バージョン

メッセージ記述子のバージョン番号です。

インバウンド・トランスポート・アクション: インバウンド・トランスポートは、メッセージ記述子バージョン1とバージョン2の両方をサポートしています。

アウトバウンド・トランスポート・アクション: デフォルトでは、アウトバウンド・トランスポートはバージョン2のヘッダーを生成します。ただし、このフィールドはパイプライン内でオーバーライドされることがあります。

インバウンド・レスポンス

RFH2Headers

トランスポート構成に「RFH2ヘッダーの処理」オプションが設定されている場合のペイロードにあるRFH2ヘッダー。RFH2HeadersヘッダーはStringです。

インバウンド・トランスポート・アクション: RFH2ヘッダーは、対応するトランスポート・メタデータ・ヘッダーを作成するためにMQペイロードから抽出されます。

アウトバウンド・トランスポート・アクション: アウトバウンドMQペイロードに挿入されたRFH2ヘッダー(各ヘッダー用の内容の長さを含む)を抽出するために、RFH2Headersデータを解析します。

両方


33.8.5.1 トランスポート・ヘッダーの構成

メッセージ・フローでは、インバウンド・リクエストおよびアウトバウンド・リクエストの両方についてトランスポート・ヘッダーを構成できます。MQトランスポートに関連するトランスポート・ヘッダーの詳細は、33.8.5項「トランスポート・ヘッダー」を参照してください。

メッセージ・フローで、トランスポート・ヘッダー・アクションを使用してメッセージのヘッダー値を設定します。詳細は、2.4.32項「メッセージ・フローへのトランスポート・ヘッダー・アクションの追加と構成」を参照してください。

メッセージ・フローにおいて、トランスポート・ヘッダーが明示的に設定されている場合、以下のシナリオを除いて、この値がヘッダー値をオーバーライドします。

  • アウトバウンド・リクエスト/レスポンス・パターンの場合、「相関値の自動生成」オプションがリクエスト/レスポンス・メッセージ・パターンのアウトバウンド・リクエストで選択されていると、この値がメッセージ・フローで設定されている場合であっても、相関IDが常に生成されます。

  • メッセージ・フローでレポート・ヘッダーが設定されている場合、レポート・ヘッダーに関連付けられた複数のディレクティブの組合せがデフォルトのディレクティブにマージされます。

  • リクエスト/レスポンス・メッセージ・パターンのアウトバウンド・リクエストについて、メッセージ・フローでreplyToQueueManagerNameまたはreplyToQueueNameヘッダーが設定されている場合、これらの値は無視されます。そのかわりに、これらのトランスポート・ヘッダーの値はビジネス・サービス用に構成されたレスポンスURIから導出されます。

  • インバウンド・レスポンスの場合、replyToQueueManagerNameヘッダーにある値が、レスポンスURIで指定されたキュー・マネージャ名と一致しないと、エラー・メッセージが生成され、レスポンス・メッセージは送信されません。

  • インバウンド・リクエスト・ヘッダーに設定されたreplyToQueueNameは、プロキシ・サービスの返信先URIで構成された値をオーバーライドします。

  • 一方向ビジネス・サービスの場合、メッセージ・タイプのヘッダーがメッセージ・フローでリクエスト・タイプに構成されていると、replyToQueueNameヘッダーを指定する必要があります。この値が指定されていない場合は、MQサーバーでエラーが発生すると、メッセージはロール・バックされます。

33.8.5.1.1 RFH2ヘッダーについて

RFH2Headerヘッダーは複数の<RFH2Header>ブロックがあります。各ブロックには複数のフォルダが含まれています。MQトランスポートによって、各ブロックが、フォルダの線形リストを含む1つのRFH2ヘッダーに統合されます。

たとえば、次のブロックが一つのRFH2Headerヘッダーに統合されます。

<RFH2Header>
    <mcd><Msd>jms_bytes</Msd></mcd>
</RFH2Header>
<RFH2Header>
    <usr><clientId>DASHBOARD</clientId></usr>
</RFH2Header>

33.8.6 エラー処理

次のように、MQトランスポート・ビジネス・サービスを構成して、アプリケーション・エラーおよび通信エラーを処理できます。

  • アプリケーション・エラー - アプリケーション・エラーが発生したときにビジネス・サービスのエンドポイントURIを再試行するかどうかを指定できます。詳細は、4.2.4項「ビジネス・サービスの「トランスポート構成」ページ」の「アプリケーション・エラーの再試行」オプションを参照してください。

  • 通信エラー-通信エラーが発生した場合に、ビジネス・サービスのURIがオフラインになるように構成できます。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のビジネス・サービス・エンドポイントURIのオフラインの有効化に関する項およびビジネス・サービスのエンドポイントURIのメトリックの表示に関する項を参照してください。

33.8.7 MQトランスポートの制限

MQトランスポートの制限は以下のとおりです。

  • MQトランスポートでは次の機能はサポートされません。

  • MQプロキシ・サービスに基づくリクエスト/レスポンス・プロキシ・サービスを、以下の方法で呼び出すことはできません。

    • ルート・アクションまたは動的ルーティングおよびルーティング表アクションを使用して構成されているプロキシ・サービスから。

      サービス・コールアウト・アクションを使用して。

  • ターゲットがMQトランスポートに基づくリクエスト/レスポンス・プロキシ・サービスである場合、サービス・コールアウトを使用してプロキシ・サービスを呼び出すことはできません。

  • Oracle Service Busテスト・コンソールで、リクエスト/レスポンスMQプロキシ・サービスへの間接呼出しを使用することはできません。

33.9 WebSphere JMS MQインタフェースの使用

WebSphere MQ for Java APIでは、リモートXAトランザクションはサポートされていません(ただし、ローカル・トランザクションはサポートされます)。そのため、Oracle Service BusのMQトランスポートではリモートXAトランザクションはサポートされません。XAが必要な場合は、WebSphere MQ JMSインタフェースを使用できます。

以下の項では、Oracle Service BusがWebSphere MQへ接続する方法について概説し、WebSphere MQとOracle Service Bus間の通信で使用されるメッセージ・タイプのいくつかについて概要を示します。

33.9.1 WebSphere MQ JMSインタフェースの使用

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のフロント・エンドとして機能し、他のアプリケーションからのサービス・リクエストを受け入れ、それらをWebSphere MQリクエストに変換します。図33-1を参照してください。

  • WebSphere MQがOracle Service Busを介して他のアプリケーションにメッセージを送信します。図33-2を参照してください。

図33-1 Oracle Service Busフロント・エンド

図33-1の説明が続きます
「図33-1 Oracle Service Busフロント・エンド」の説明

図33-2 Oracle Service Busを介して送信されるメッセージ

図33-2の説明が続きます
「図33-2 Oracle Service Busを介して送信されるメッセージ」の説明

33.9.2 メッセージングのタイプ

Oracle Service Busでは、以下のメッセージングのタイプがサポートされます。

33.9.2.1 非永続メッセージング

リクエストが欠落しているなど、信頼性のない配信を受け入れる場合、必要に応じて非永続メッセージを使用できます。WebSphere MQのロギングとWebLogic JMSメッセージの永続化は永続メッセージに対してのみ実行されるため、非永続メッセージを使用すると関連するI/Oアクティビティが不要になります。


注意:

非永続メッセージのスループットは、通常はマシンのプロセッサ速度によって制限されます。ただし、物理メモリーが不足している場合は、サーバー・システムがページングI/OでCPUサイクルを消費することがあります。


33.9.2.2 非XA永続メッセージング

WebSphere MQ永続メッセージのスループットは、通常はキュー・マネージャおよびログへの書込みのI/Oレイテンシによって制限されます。

33.9.2.3 XAメッセージング

キューへのトランザクション(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属性を設定する必要があります。


33.9.3 WebSphere MQのチューニング

Oracle Service Busと共に使用する場合、WebSphere MQのチューニングには以下のガイドラインが役に立ちます。WebSphere MQの詳細は、WebSphere MQの適切なドキュメントを参照してください。

  • Oracle Service Busおよびキュー・マネージャが同じマシンにデプロイされている場合は、トランスポートのタイプとしてBINDINGSを使用します。

  • アプリケーション・リクエストのごく一部にのみXAが必要な場合は、別の接続オブジェクトを作成してXAを無効にします。

  • アクティブ・ログを多くのボリュームに分散させます。システムで高い永続メッセージ・スループットを処理する必要がある場合は、他のデータ・セットの使用との競合を最小限に抑えるために、高速の直接アクセス・ストレージ・デバイス(DASD)にログ・ファイルを置く必要があります。各アクティブ・ログを使用率の低い個別のボリュームに割り当てることをお薦めします。

  • バッファ・オーバーフローを削減するために、バッファ・プールとページ・セットをチューニングします。バッファ・オーバーフローにより、ハード・ディスクのフラッシュが発生します。

  • Oracle Service Bus JMSからMQキューへの接続が切断されないように、アクティブなチャネル数を増やして100を超えるようにします。デフォルトでは、アクティブなチャネル数は10です。