Java Message Service (JMS) トランスポート・ポリシーの構成

Java™ API for XML-Based Web Services (JAX-WS) アプリケーションで SOAP over JMS を使用する場合は、Java Message Service (JMS) トランスポート・ポリシー構成を 定義することができます。

始める前に

カスタム・ポリシー・セットの場合、一部のポリシー設定を構成することができます。 提供されたデフォルト・ポリシー・セットは、編集できません。 ポリシーを指定するには、デフォルト・ポリシー・セットのコピーを作成するか、 ポリシー・セットを新規作成する必要があります。

このタスクについて

JAX-WS アプリケーションで SOAP over JMS トランスポートを使用する場合は、 JMS トランスポート・ポリシーを構成してトランスポートをカスタマイズすることができます。SOAP over JMS トランスポートでは、クライアントとサーバーとの間で SOAP 要求および応答メッセージをトランスポートするために HTTPS の代替手段が提供されます。このトランスポート・プロトコルの詳細については、 Web サービスをトランスポートするための SOAP over JMS の使用に関する文書を 参照してください。

ポリシーは、ポリシー・セットを通じてのみ構成可能です。 そのため、JMS トランスポート・ポリシーを構成する前に、その JMS トランスポート・ポリシーを含むポリシー・セットが存在している必要があります。JMS トランスポート・ポリシーを含むポリシー・セットをカスタマイズするには、まず最初にポリシー・セットを作成して、JMS トランスポート・ポリシーを新規ポリシー・セットに追加する必要があります。

「JMS トランスポート・ポリシー設定 (JMS transport policy settings)」パネルを使用して、要求タイムアウト値などの、JMS トランスポート・ポリシー・プロパティーの値をカスタマイズします。 JMS トランスポート・ポリシーについてカスタマイズした値が、 そのカスタム JMS トランスポート・ポリシーを含むポリシー・セットに適用されます。 カスタマイズ済みの JMS トランスポート・ポリシーを含むこのポリシー・セットは、JAX-WS アプリケーション、そのサービス、エンドポイント、または操作に関連付けることができます。この変更は、そのポリシー・セットが関連付けられているすべての JAX-WS アプリケーションに影響します。 アプリケーションへのポリシー・セットの関連付けについて詳しくは、アプリケーション・レベルでのサービス・プロバイダーおよびサービス・クライアントのポリシー・セットの管理に関する文書を参照してください。

手順

  1. JMS トランスポート・ポリシーを含むポリシー・セットを作成します。
    1. カスタム・ポリシー・セットを作成します。 管理コンソールで、「サービス」>「ポリシー・セット」 > 「アプリケーション・ポリシー・セット」とクリックします。このパネルでは、ポリシー・セットの新規作成、デフォルト・リポジトリーからのポリシー・セット・コピーのインポート、または指定したロケーションからの既存のポリシー・セットのインポートを行うことができます。
    2. JMS トランスポート・ポリシーをポリシー・セットに追加します。 管理コンソールで、 「サービス」>「ポリシー・セット」 >「アプリケーション・ポリシー・セット」>「policy_set_nameとクリックします。 ポリシー・コレクションで、「JMS トランスポート」をクリックします。 「JMS トランスポート」ウィンドウに、 トランスポート・ポリシーの JMS 設定を構成するためのオプションが表示されます。
    3. JMS トランスポート要求の JMS 接続プロパティーを 指定します。 以下のフィールドでは、このトランスポートの JMS 機能を構成します。
      要求タイムアウト
      要求タイムアウト値を使用可能にするかどうかを指定します。要求タイムアウト値は、クライアントがサーバーに要求を送信した後で応答を待機する時間です。 この範囲は、0 から 2147483647 です。
      片方向操作および非同期操作に対してトランザクション・メッセージングを使用可能にする
      クライアントが 片方向要求または非同期の両方向要求でトランザクションを使用できるようにすることを指定します。このチェック・ボックスをオンにすると、トランザクション・メッセージングが使用可能になります。
      このオプションを選択すると、クライアントのランタイム環境では、クライアントが トランザクション下で動作している場合、トランザクション方式で JMS トランスポートを介して サーバーとの間で SOAP 要求および応答メッセージをやり取りします。つまり、クライアントのトランザクションが宛先キューまたはトピックへの SOAP 要求メッセージの送信に使用され、クライアントがトランザクションをコミットした場合にのみ、サーバーは要求メッセージを受け取ります。 同様に、サーバーはコンテナー管理トランザクションの制御のもとで要求メッセージを受信し、該当する場合はその同じトランザクションを使用して、クライアントに応答メッセージを返送します。クライアントは、サーバーのトランザクションがコミットされた場合にのみ、応答メッセージを受け取ります。
      このオプションを選択しない場合、クライアントおよびサーバーのランタイム環境では、 非トランザクション方式 (JMS 要求によりトランザクションが一時的に中断状態になる) で メッセージング操作を実行します。トランザクションは、要求の完了後に再び使用可能になります。
      サポートされる構成 サポートされる構成: トランザクション・メッセージング操作はデッドロック状態を引き起こすため、両方向同期操作ではサポートされません。sptcfg
  2. JMS トランスポート・プロバイダー・バインディングをカスタマイズします。
    1. JMS トランスポート・プロバイダー・バインディングにナビゲートします。 管理コンソールで、「サービス」>「ポリシー・セット」>「汎用プロバイダーのポリシー・セット・バインディング (General provider policy set bindings)」>「provider_policy_set_binding_name」>「JMS トランスポート」とクリックします。

      「JMS トランスポート・プロバイダー・バインディング (JMS transport provider bindings)」ウィンドウに、 非同期サービス応答の基本認証を定義するためのオプション、および JMS サービス・プロバイダー・バインディング構成の カスタム・プロパティーが表示されます。

    2. 非同期サービス応答の基本認証のプロパティーを指定します。

      JMS トランスポート・プロバイダー・ポリシー・バインディングを使用して、 JMS トランスポートを使用するサービスがクライアントに非同期応答メッセージを返送するように 構成することができます。アプリケーション・サーバーのランタイム環境では、JMS メッセージング・プロバイダーに接続する際に、ユーザーが構成したユーザー名とパスワードを使用します。この構成により、サービスが 安全な方法でクライアントに非同期応答メッセージを送信することが可能になります。

      以下のフィールドで、サーバーからの応答に対する認証要件を決定します。

      ユーザー名
      サービス・プロバイダーの非同期サービス応答のユーザー名を指定します。
      Password
      サービス・プロバイダーからの非同期サービス応答用のパスワードを示すプレースホルダーを指定します。 このフィールドでは、パスワードを入力することもできますし、編集することもできます。 実際のパスワードは、マスクされます。
      確認パスワード
      サービス・プロバイダーからの非同期サービス応答用のパスワードを示すプレースホルダーを指定します。これは「パスワード」フィールドのパスワードと一致する必要があります。 実際のパスワードは、マスクされます。
  3. JMS トランスポート・クライアント・バインディングをカスタマイズします。
    1. JMS トランスポート・クライアント・バインディングにナビゲートします。 管理コンソールで、「サービス」>「ポリシー・セット」> 「汎用プロバイダーのポリシー・セット・バインディング」> 「client_policy_set_binding_name」 >「JMS トランスポート」をクリックします。

      「JMS トランスポート・プロバイダー・バインディング (JMS transport provider bindings)」ウィンドウに、 アウトバウンド・サービス要求の基本認証を定義するためのオプション、および JMS クライアント・バインディング構成の カスタム・プロパティーが表示されます。

    2. 「アウトバウンド・サービス要求の基本認証 (Basic Authentication for Outbound Service Requests)」プロパティーを指定します。

      JMS トランスポート・クライアント・ポリシー・バインディングを使用して、JMS トランスポートを使用するクライアントがサーバーに要求メッセージを送信するように構成することができます。クライアントのランタイム環境では、JMS メッセージング・プロバイダーに接続する際に構成したユーザー名とパスワードを使用します。 この構成によって、クライアントは安全な方法でサーバーに要求メッセージを送信することが可能になります。

      以下のフィールドで、サーバーに送信された要求に対する認証要件が 決定します。

      ユーザー名
      アウトバウンド要求を宛先キューまたはトピックに送信する ために JMS メッセージング・プロバイダーに接続する際に、クライアント・ランタイムが使用するユーザー名 を指定します。 このフィールドに、ユーザー名を入力してください。
      Password
      アウトバウンド要求を宛先キューまたはトピックに送信する ために JMS メッセージング・プロバイダーに接続する際に、クライアント・ランタイムが使用するパスワードを示すプレースホルダーを指定します。 このフィールドでは、パスワードを入力することもできますし、編集することもできます。 実際のパスワードは、マスクされます。
      確認パスワード
      アウトバウンド要求を宛先キューまたはトピックに送信する ために JMS メッセージング・プロバイダーに接続する際に、クライアント・ランタイムが使用するパスワードを示すプレースホルダーを指定します。 このフィールドにパスワードを再入力してください。このパスワードは、「パスワード」フィールドに入力したものと一致する必要があります。 実際のパスワードは、マスクされます。
  4. com.ibm.ws.websvcs.transport.jms.enableBasicAuthOnResponse JVM カスタム・プロパティーを true に設定します。

    このプロパティーを指定する方法については、トピック『Java 仮想マシンのカスタム・プロパティー』を参照してください。

  5. 変更を保存します。

タスクの結果

JMS トランスポート・ポリシーのカスタマイズが完了すると、 関連付けられたポリシー・セットがこのポリシーを使用して、SOAP over JMS トランスポートのランタイム動作を構成します。

アプリケーション、そのサービス、エンドポイント、または操作にポリシー・セットを関連付けることができます。 このシナリオ例では、アプリケーション用に 2 つの異なる JAX-WS サービス・クライアントを使用しているが、サービス・クライアントごとに別の JMS トランスポート要求タイムアウト値を使用するものとします。 JMS 要求タイムアウト値を変更する場合、アプリケーション (この場合、サービス・クライアント) に関連付けられたポリシー・セット内に含まれる JMS トランスポート・ポリシーの値を編集することができます。 この変更内容は、カスタム JMS トランスポート・ポリシーを含むポリシー・セットが関連付けられているすべてのアプリケーションに影響します。

この例では、同じアプリケーション・サーバーにデプロイされたサービス・クライアントについて、異なる要求タイムアウト値を構成する手順について説明します。 この例では、以下のように想定します。
  • アプリケーション・サーバーにデプロイされている ServiceClient1 と ServiceClient2 という名前の 2 つの JAX-WS サービス・クライアントがあります。
  • JMS トランスポート・ポリシーはまだアプリケーションに関連付けられていません。
  1. 2 つのポリシー・セットを新規作成して、それらに JMS トランスポート・ポリシーを追加します。 例えば、JMSServiceClient1Policy および JMSServiceClient2Policy のようになります。
    1. 「サービス」>「ポリシー・セット」>「アプリケーション・ポリシー・セット」>「新規作成」をクリックします。
    2. 新規アプリケーション・ポリシー・セットの名前 JMSServiceClient1Policy を入力します。
    3. 「ポリシー」コレクションで、「追加」>「JMS トランスポート」をクリックします。
    4. 「適用」「保存」の順にクリックして、マスター構成に対して行った 変更を保存します。
    5. 上記手順を繰り返して、JMSServiceClient2Policy を作成します。
  2. 新規作成した JMSServiceClient1Policy ポリシー・セットと JMSServiceClient2Policy ポリシー・セットの JMS トランスポート・ポリシー設定をカスタマイズします。 例えば、JMSServiceClient1Policy に含まれる JMS トランスポート・ポリシーについて、要求タイムアウト値を 180 秒に設定します。 JMSServiceClient2Policy に含まれる JMS トランスポート・ポリシーについては、要求タイムアウト値に 300 秒を指定します。
    1. 「サービス」>「ポリシー・セット」>「アプリケーション・ポリシー・セット」>「JMSServiceClient1Policyをクリックします。
    2. 「ポリシー」コレクションで、「JMS トランスポート」をクリックします。
    3. 「JMS トランスポート・ポリシーの構成 (JMS transport policy configuration)」パネルで、要求タイムアウト値に 180 秒を指定します。
    4. 「適用」「保存」の順にクリックして、マスター構成に対して行った 変更を保存します。
    5. 「サービス」>「ポリシー・セット」>「アプリケーション・ポリシー・セット」>「JMSServiceClient2Policyをクリックします。
    6. 「ポリシー」コレクションで、「JMS トランスポート」をクリックします。
    7. 「JMS トランスポート・ポリシーの構成 (JMS transport policy configuration)」パネルで、要求タイムアウト値に 300 秒を指定します。
    8. 「適用」「保存」の順にクリックして、マスター構成に対して行った 変更を保存します。
  3. カスタム JMS トランスポート・ポリシー JMSServiceClient1Policy をアプリケーション ServiceClient1 に関連付けます。 同様に、カスタム JMS トランスポート・ポリシー JMSServiceClient2Policy をアプリケーション ServiceClient2 に関連付けます。
    1. 「サービス」>「サービス・クライアント」> ServiceClient1」をクリックします。
    2. 「ポリシー・セット関連付け (Policy set attachments)」コレクションから、ServiceClient1 というサービスを選択します。
    3. クライアント・ポリシー・セットの関連付け」をクリックして、JMSServiceClient1Policy をクリックします。
    4. 保存」をクリックして、マスター構成に対して行った変更を保存します。
    5. 「サービス」>「サービス・クライアント」> ServiceClient2」をクリックします。
    6. 「ポリシー・セット関連付け (Policy set attachments)」コレクションから、ServiceClient1 というサービスを選択します。
    7. クライアント・ポリシー・セットの関連付け」をクリックして、JMSServiceClient2Policy をクリックします。
    8. 保存」をクリックして、マスター構成に対して行った変更を保存します。

これで、ServiceClient1 アプリケーションに JMSServiceClient1Policy が関連付けられ、JMS セッションで 180 秒の要求タイムアウトが使用されます。 ServiceClient2 アプリケーションには JMSServiceClient2Policy が関連付けられ、JMS セッションで 300 秒の要求タイムアウトが使用されます。

次のタスク

アプリケーションで必要になる可能性のある他のポリシーをカスタマイズすることができます。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_wsspsptjms
ファイル名:twbs_wsspsptjms.html