Oracle® Fusion Middleware

Oracle WebLogic Serverストア・アンド・フォワード・サービスの管理

12c (12.2.1.2.0)

E82876-02(原本部品番号:E77987-02)

2016年12月

このドキュメントは、WebLogic JMSおよびWeb Services Reliable Messaging (WSRM)で使用するWebLogicストア・アンド・フォワード・サービスの構成、管理、およびモニターに携わるシステム管理者を対象としています。

Oracle Fusion Middleware Oracle WebLogic Serverストア・アンド・フォワード・サービスの管理, 12c (12.2.1.2.0)

E82876-02

Copyright © 2016, Oracle and/or its affiliates. All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- ドキュメントのアクセシビリティについて

- 表記規則

1 概要とロードマップ

- ドキュメントのスコープと対象読者

- このドキュメントの手引き

- 関連ドキュメント

- システム管理者向けのサンプルとチュートリアル

- Avitek Medical Recordsアプリケーション(MedRec)とチュートリアル

- WebLogic Server配布キットのサンプル

- このリリースでのSAFの新機能と変更点

2 ストア・アンド・フォワード・サービスの理解

- WebLogic SAF環境

- SAFサービス

- SAFサービス・エージェント

- SAFエージェントの構成パラメータ

- SAFエージェントをクラスタに割り当てる場合の永続ストアのルール

- WebLogic JMSでのSAFの使用

- Webサービスの信頼性のあるメッセージングでのSAFの使用

- SAFとクロス・ドメイン・セキュリティ

- SAFサービスを使用する場合

- 基本的なSAFサービスの構成

- SAFエージェントの設計

- メッセージの存続時間とメッセージ配信の失敗ポリシーの設定

- 失敗したメッセージ配信のロギング

- 配信再試行の設定

- メッセージの割り当て、しきい値、およびページングの使用

- 起動時のリカバリ

- 可用性の高いメッセージングのための移行可能なSAFエージェント

3 JMSメッセージに対するSAFの構成

- JMSモジュールのSAFリソース

- SAFインポート済み宛先

- SAFリモート・コンテキスト

- SAFエラー処理

- SAF JMSの仕組み

- JMS SAFリソースの作成

- JMS宛先のSAFリソースの構成 - 主な手順

- JMSメッセージに対するSAFの設計

- サービスの品質(QOS)レベルの選択

- SAFによる配信モードの処理方法

- メッセージ順序単位の使用

- トランザクション・メッセージ

- SAF境界を越えるメッセージの圧縮

- 分散宛先に対するSAF

- SAFロード・バランシング

- インポート済宛先へのメッセージの送信

- SAFエージェントによるリモート宛先へのメッセージの転送

- SAFでのJMSReplyToフィールドの使用

- SAF宛先の保護

- 接続と接続ファクトリ

4 SAFエージェントのモニターと管理

- SAFエージェントのモニター

- SAFエージェントでのメッセージ処理の管理

5 WebLogic SAFのトラブルシューティング

- WebLogic SAFのデバッグ

- デバッグの有効化

- コマンド・ラインを使用してデバッグの有効化

- WebLogic Server管理コンソールを使用してデバッグの有効化

- WebLogic Scripting Toolを使用してデバッグの有効化

- config.xmlファイルの変更内容

- SAFのデバッグ・スコープ

- リクエストの仕分け

- JMSメッセージのSAFメッセージ・ライフ・サイクルのロギング

- SAFメッセージ・ライフ・サイクルのイベント

- メッセージ・ログの場所

- SAFメッセージ・ロギングの有効化

- SAFメッセージ・ログの内容

- SAFメッセージ・ログ・レコードのフォーマット

- サンプル・ログ・ファイル・レコード

- メッセージ格納イベント

- メッセージ転送イベント

- メッセージ期限切れイベント

- メッセージ削除イベント

- SAFエージェント・ログ・ファイルの管理

- メッセージ・ログ・ファイルのローテーション

- メッセージ・ログ・ファイル名の変更

- 保存するメッセージ・ログ・ファイル数の制限

- JMS SAF関連のよくある質問

はじめに

この章ではドキュメントのアクセシビリティ機能と、このガイドで使用されている表記規則について説明します。

表記規則

このドキュメントでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

斜体

イタリックは、ユーザーが特定の値を指定するプレースホルダー変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティへの取り組みについては、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)にアクセスしてください。

Oracleサポートへのアクセス

サポートを購入したオラクル社のお客様は、My Oracle Supportを介して電子的なサポートにアクセスできます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info、聴覚に障害があるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。

1 概要とロードマップ

このガイドの内容および構成については、次の項で説明されています(Oracle WebLogic Serverストア・アンド・フォワード・サービスの管理)。

内容は次のとおりです。

- ドキュメントのスコープと対象読者

- このドキュメントの手引き

- 関連ドキュメント

- システム管理者向けのサンプルとチュートリアル

- このリリースでのSAFの新機能と変更点

ドキュメントのスコープと対象読者

このドキュメントは、WebLogic JMSおよびWeb Services Reliable Messaging (WSRM)で使用するWebLogicストア・アンド・フォワード・サービスの構成、管理、およびモニターに携わるシステム管理者を対象としています。

このドキュメントでは、本番段階での管理、モニター、パフォーマンス・チューニングに関するトピックを取り上げます。このドキュメントでは、ソフトウェア・プロジェクトの本番前の開発またはテスト段階については説明しません。これらのトピックに関するWebLogic Serverのドキュメントとリソースへのリンクについては、「関連ドキュメント」を参照してください。

このドキュメントは、WebLogic Serverのシステム管理に精通している読者を対象としています。このドキュメントでは、WebLogic Server SAFの付加価値機能と、WebLogic Server機能を使用してWebLogic Serverを本番環境で管理するための主要な情報を重点的に扱います。

このドキュメントの手引き

- 「概要とロードマップ」では、このドキュメントの構成を紹介します。

- 「ストア・アンド・フォワード・サービスの理解」では、ストア・アンド・フォワード・サービスの概念と機能、およびそれらとWebLogic Serverとの連携の仕組みについて説明します。

- 「JMSメッセージに対するSAFの構成」では、JMSメッセージに対してストア・アンド・フォワード・リソースを構成する方法について説明します。

- 「SAFエージェントのモニターと管理」では、ストア・アンド・フォワード・サービスの実行時統計をモニターし、メッセージ処理を管理する方法について説明します。

- 「WebLogic SAFのトラブルシューティング」では、格納および転送されたJMSメッセージのSAFメッセージ・ライフ・サイクルのロギングを構成および管理する方法について説明します。また、SAFデバッグ・ツールについて解説し、SAFの構成に関するよくある質問のリストを示します。

関連ドキュメント

このドキュメントには、SAF固有の構成および管理上の情報が含まれています。

WebLogic Serverアプリケーションを開発、デプロイ、およびモニターするための包括的なガイドラインについては、以下のドキュメントを参照してください。

- 『Oracle WebLogic Server JMSリソースの管理』では、JMSサーバー、JMSモジュール、パス・サービスなどのJMSリソースを構成および管理する手順が説明されています。

- Oracle WebLogic Server JAX-RPC Webサービスの開発のWeb Services Reliable Messagingの使用では、Web Services Reliable Messaging (WSRM)でSAFを使用する手順が説明されています。

- WebLogic永続ストアの管理のWebLogic永続ストアの使用では、システム・レベルの永続ストアの利点と使用方法に関する情報が記載されています。

- Oracle WebLogic ServerのパフォーマンスのチューニングのWebLogic JMSストア・アンド・フォワードのチューニングでは、ストア・アンド・フォワード(SAF)アプリケーションから最高のパフォーマンスを引き出す方法について紹介します。

システム管理者向けのサンプルとチュートリアル

このドキュメントの他にも、様々なコード・サンプルとチュートリアルが用意されています。これらのサンプルとチュートリアルでは、WebLogic Serverの構成とAPIの使い方、および主要な開発タスクを実行する実際的な手順が示されています。独自のシステムを構成する前に、まずサンプルの一部またはすべてを実行することをお薦めします。

Avitek Medical Recordsアプリケーション(MedRec)とチュートリアル

MedRecはWebLogic Serverに付属したエンドツーエンドのサンプルJava Platform, Enterprise Edition (Java EE)アプリケーションであり、一元的で独立した医療記録管理システムをシミュレートします。MedRecアプリケーションには、患者、医師、および管理者に対して、様々なクライアントを使用して患者のデータを管理するフレームワークが用意されています。

MedRecはWebLogic ServerとJava EEの機能を例示し、BEA推奨のベスト・プラクティスを重要点として示します。MedRecはWebLogic Server配布キットに含まれており、Windowsマシンの「スタート」メニューからアクセスできます。Linuxなどのプラットフォームでは、WL_HOME\samples\domains\medrecディレクトリからMedRecを起動します。WL_HOMEは、WebLogic Platformの最上位のインストール・ディレクトリです。

WebLogic Server配布キットのサンプル

WebLogic Server では、必要に応じてAPIサンプル・コードをWL_HOME\samples\server\examples\src\examplesにインストールできます。WL_HOMEはWebLogic Serverの最上位のインストール・ディレクトリを示します。WebLogic Serverのスタート・メニューからサンプル・サーバーを起動して、サンプルとその実行手順に関する情報を確認できます。

このリリースでのSAFの新機能と変更点

このリリースで導入されたWebLogic Serverの新機能の一覧については、『Oracle WebLogic Serverの新機能』 12.2.1.2.0を参照してください。

2 ストア・アンド・フォワード・サービスの理解

WebLogicストア・アンド・フォワード(SAF)サービスは、WebLogic Serverと動作するために必要な各種のサービス概念および機能に対応しています。

内容は次のとおりです。

- WebLogic SAF環境

- SAFサービス

- SAFサービス・エージェント

- WebLogic JMSでのSAFの使用

- Webサービスの信頼性のあるメッセージングでのSAFの使用

- SAFとクロス・ドメイン・セキュリティ

- SAFサービスを使用する場合

- 基本的なSAFサービスの構成

- SAFエージェントの設計

WebLogic SAF環境

以下の節では、SAFサービスのコンポーネントおよび参加コンポーネントについて説明します。

SAFサービス

SAFサービスを使用すると、複数のWebLogic Serverインスタンスに分散されているアプリケーション間でメッセージを確実に配信できます。たとえば、SAFサービスを利用すると、ローカルのWebLogic Serverインスタンス上で動作するアプリケーション、またはローカルのWebLogic Serverインスタンスに接続するアプリケーションは、リモート・サーバー上のエンドポイントにメッセージを確実に配信できます。ネットワークの問題やシステム障害が原因で、メッセージの送信時に宛先が使用不能になっている場合、メッセージはローカルのサーバー・インスタンスに保存されて、リモートのエンドポイントが使用可能になった時点で転送されます。

WebLogic JMSでは、SAFサービスを利用して、ローカルのJMSメッセージ・プロデューサが、リモートのJMSキューまたはトピックにメッセージを確実に送信できるようにします。「WebLogic JMSでのSAFの使用」を参照してください。

WebLogic Webサービスでは、SAFサービスを利用して、Web Services Reliable Messaging (WSRM)の信頼性を確保します。「Web Services Reliable Messaging (WSRM)でのSAFの使用」を参照してください。

SAFサービス・エージェント

メッセージの格納と転送のプロセスには、ローカルの送信側とリモートの受信エンドポイントという2つの側面があります。SAFエージェントは、ローカルの送信エンドポイントとリモートの受信エンドポイントの間でメッセージの格納と転送を行います。SAFエージェントは、送信機能または受信機能のみを持つように構成することも、両方の機能を持つように構成することもできます。

JMS SAFでは、JMSメッセージの送信側に送信エージェントのみが必要になります。一方、WSRM SAFでは、送信エージェントと受信エージェントの両方が必要になります。

- 送信エージェント - JMSメッセージおよびWSRMで使用されます。送信エージェントは、メッセージの永続性が必要になる場合に、永続ストレージへのメッセージの格納、受信側へのメッセージの転送、確認応答が時間内に戻らなかった場合のメッセージの再送信を行います。

- 受信エージェント - WSRMのみで使用されます。受信エージェントは、送信エージェントが送信したメッセージのうち重複するものの検出および消去と、最終的な宛先へのメッセージの配信を行います。

注意:

JMSメッセージの場合は、受信側のエクスポート済みリモートJMS宛先に関連付けられたJMSサーバーが重複排除を管理します。

SAFエージェントの構成パラメータ

SAFエージェントは構成可能なオブジェクトであり、メッセージの永続性、ページング・パラメータ、およびしきい値と割当てを管理するという点でJMSサーバーに似ています。SAFサービスの動作は、SAFエージェントの以下の構成可能なパラメータによって制御されます。

- 以下のような、全般的な構成パラメータ。

- 永続ストレージの選択

- メッセージ・ページングのデフォルトの設定

- 配信再試行設定の指定

- ウィンドウ・サイズの指定

- メッセージ確認応答の間隔の指定(WSRMのみ)

配信再試行の設定、ロギング、およびページングのデフォルトの詳細は、「SAFエージェントの設計」を参照してください。

SAFエージェントに対するすべての一般構成パラメータの詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのストア・アンド・フォワード・エージェント: 構成: 全般を参照してください。

- SAFエージェントのメッセージ・スループットを制御するための、しきい値および割当てに関するパラメータ。
しきい値および割当てに関するパラメータの詳細は、「SAFエージェントの設計」を参照してください。

- SAFエージェント、リモート・エンドポイント、および会話のモニター機能。SAFエージェントでの着信、転送、および受信メッセージ処理、およびリモート・エンドポイントに対する着信および転送メッセージ処理を管理するための機能もあります。
SAFエージェントのモニター・オプションの詳細は、「SAFエージェントのモニターと管理」を参照してください。

- SAFインポート済み宛先のJMSメッセージ・ロギング機能。JMSメッセージが、SAFエージェントによって格納されてから、最終的にリモートのJMS宛先に転送されるまでに発生するイベントを外側から見る形になります。
SAF宛先のJMSメッセージ・ロギングのオプションについては、「JMSメッセージのSAFメッセージ・ライフ・サイクルのロギング」を参照してください。

SAFエージェントをクラスタに割り当てる場合の永続ストアのルール

SAFエージェントをスタンドアロン・サーバーに割り当てる場合には、サーバーのデフォルトの永続ストアを使用することも、明示的に構成されたストアを選択することもできます。しかし、SAFエージェントをクラスタに割り当てる場合には、以下の永続ストアの選択ルールが適用されます。

- 移行可能ターゲットを使用しない場合には、クラスタ内の各サーバー・インスタンスはデフォルト永続ストアを使用しなければならず、SAFエージェントもデフォルト・ストアを使用しなければなりません。

- JMSメッセージの場合には、SAF送信エージェントとインポート済み宛先が同じサーバー・インスタンス上に存在しなければなりません。SAFエージェントがクラスタに割り当てられると、クラスタ内の各サーバー・インスタンス上にエージェントが自動的に構成されます。

- 移行可能ターゲットに割り当てる場合には、SAFエージェントがカスタム永続ストアを使用し、かつそのカスタム・ストアで使用されるものと同じ移行可能ターゲットに割り当てられていることが必要です。SAFエージェント、JMSサーバー、およびカスタム・ストアは、1つの移行可能ターゲットを共有できます。Oracle WebLogic Serverクラスタの管理のクラスタ内の移行可能ターゲットの理解を参照してください。

注意:

SAFメッセージの一貫性を保持するために、WebLogic Serverでは既存のSAFエージェントを移行可能ターゲットに再割当てすることはできません。かわりに、既存のSAFを削除し、同じ値で構成した新しいSAFを移行可能ターゲットに割り当てる必要があります。

WebLogic JMSでのSAFの使用

JMSストア・アンド・フォワードでは、1つの送信エージェントを使用して、高可用性を備えたJMSメッセージ生産を行います。たとえば、ローカルのサーバー・インスタンスに接続されたJMSメッセージ・プロデューサは、メッセージ送信時にリモートのJMS宛先が一時的に使用できない場合でも、そのリモート宛先に確実にメッセージを転送できます。JMS SAFはJMSアプリケーションからは透過的なので、JMSクライアント・コードは既存のJMS APIを使用して、リモート宛先にアクセスできます。詳細は、「JMSメッセージに対するSAFの構成」を参照してください。

インポート済みJMS宛先に対するSAF送信エージェントによってクラスタ内の依存するJMSアプリケーションに対してシングル・ポイント障害が発生しないように、SAFエージェントをクラスタ内の正常なサーバー・インスタンスに移行するようWebLogic Serverを構成できます。「可用性の高いメッセージングのための移行可能なSAFエージェント」を参照してください。

Webサービスの信頼性のあるメッセージングでのSAFの使用

WSRMでは、ローカル・サーバー・インスタンスで構成されたSAF送信エージェント、およびリモート・サーバー・インスタンスで構成されたSAF受信エージェントのペアが使用されます。これにより、別々のサーバー・インスタンス上で動作する2つのWebサービスは、ソフトウェア・コンポーネント、システム、またはネットワークに障害がある場合でも確実に通信できるようになります。具体的には、ソース・エンドポイントから宛先エンドポイントに送信されたメッセージは1つまたは複数の配信保証に基づいて確実に配信され、配信されない場合には必ずエラーが送出されます。

詳細は、Oracle WebLogic Server JAX-RPC Webサービスの開発のWebサービスの信頼性のあるメッセージングの使用を参照してください。

SAFとクロス・ドメイン・セキュリティ

SAFサービスでは、クロス・ドメイン・セキュリティを構成する必要はありません。ただし、1つのドメインにクロス・ドメイン・セキュリティが構成されていて、共通分散宛先のメンバーシップがSAFの変更を介してインポートされる場合には、プロセスの通信対象となるすべてのドメインに対して、クロス・ドメイン・セキュリティを構成する必要があります。ベスト・プラクティスは、プロセスで使用されるすべてのドメインに関してクロス・ドメイン・セキュリティの構成を統一することです。つまり、すべてのドメインがクロス・ドメイン・セキュリティを使用する(または、適切な例外リストに含まれる)か、どのドメインについてもクロス・ドメイン・セキュリティを有効にしないかのいずれかにします。『Oracle WebLogic Serverセキュリティの管理』のクロス・ドメイン・セキュリティの構成に関する項を参照してください。

SAFサービスを使用する場合

SAFサービスは、WebLogic Server 9.x以降のドメイン間でJMSメッセージまたはWSRMメッセージを転送する場合に使用します。

SAFサービスによるメッセージの配信対象間の関係は、以下のとおりです。

- 2つのスタンドアロンのサーバー・インスタンス間

- クラスタ内のサーバー・インスタンス間

- ドメイン内の2つのクラスタ間

- 異なるドメイン間

SAFサービスを使用しない場合は、以下のとおりです。

- 以前のリリースのWebLogic Serverにメッセージを転送する場合

- サード・パーティのJMS製品(MQSeriesなど)と相互運用する場合
これらのタスクでは、WebLogicメッセージング・ブリッジを使用します。Oracle WebLogic Server WebLogicメッセージング・ブリッジの管理のメッセージング・ブリッジの理解を参照してください。

- リクエストにレスポンスを返すためにJMSReplyToで一時的な宛先を使用する場合

なお、JMS SAFを使用する場合、アプリケーションはリモート・サーバーから直接メッセージを受信することしかできません。それも、リモート・サーバーが使用可能な場合に限られます。

基本的なSAFサービスの構成

ドメインにSAFサービスを実装するには、以下のタスクを行う必要があります。

1. 送信側クラスタまたはサーバー・インスタンスで、SAFエージェントを構成します。SAFエージェントは、以下のいずれかの方法で作成できます。

- WebLogic Server管理コンソールを使用します。これにより、使用している環境のSAFエージェントを構成、変更、ターゲット指定、モニター、および削除できます。SAFエージェントの構成タスクの手順は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのストア・アンド・フォワード・エージェントの作成を参照してください。

- WebLogic Java Management Extensions (JMX)を使用します。これにより、SAFエージェントを作成および管理するためのSAFAgentMBeanおよびSAFAgentRuntimeMBeanの各MBeanにアクセスできます。詳細は、Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発のWebLogic ServerサブシステムMBeanの概要を参照してください。

- WebLogic Scripting Tool (WLST)を使用します。これにより、JMSサーバーとJMSシステム・リソースを作成および管理できます。詳細は、Oracle WebLogic Server JMSリソースの管理のWLSTを使用したJMSサーバーとJMSシステム・リソースの管理を参照してください。

2. WSRMを使用する場合は、送信側で送信機能と受信機能の両方の機能を持つSAFエージェントを構成した場合でも、受信側のクラスタまたはサーバー・インスタンスで受信機能を持つSAFエージェントを構成する必要があります。

3. SAFエージェントの構成時には、サーバーのデフォルト・ストアをそのまま使用することもできますし、SAFメッセージ専用のストアを構成する場合はストアを構成することもできます。SAFエージェントをクラスタに割り当てる場合には、サーバーのデフォルト・ストアをそのまま使用しなければなりません。また、SAFエージェントを移行可能ターゲットに割り当てて高可用性を高めることもできます。「SAFエージェントをクラスタに割り当てる場合の永続ストアのルール」を参照してください。
永続ストアの詳細は、WebLogic永続ストアの管理のWebLogic永続ストアの使用を参照してください。

4. WebLogic JMSの場合は、JMSモジュールでSAFインポート済宛先、SAFコンテキスト処理、およびSAFエラー処理(オプション)の各オブジェクトを構成します。「JMSメッセージに対するSAFの構成」を参照してください。

5. (オプション)送信側がクラスタで、JMSプロデューサがメッセージ順序単位に関連付けられている場合は、JMSメッセージのパス・サービスを構成します。メッセージ順序単位を使用することで、JMSメッセージ・プロデューサは順序付けされたメッセージを1つの単位にグループ化できます。JMSメッセージ順序単位の詳細は、Oracle WebLogic Server JMSアプリケーションの開発のメッセージ順序単位の使用を参照してください。
パス・サービスは、メッセージのグループとメッセージング・リソース(SAFエージェントなど)との間のマッピングを格納できる永続マップです。パス・サービスの構成の詳細は、Oracle WebLogic Server JMSリソースの管理のWebLogicパス・サービスの使用を参照してください。

SAFエージェントの設計

以下の節では、メッセージを転送するためにSAFエージェントを設計および構成する場合に役立つ情報について説明します。

メッセージの存続時間とメッセージ配信の失敗ポリシーの設定

SAFの信頼性は、時間に基づいています。存続時間のパラメータを使用して、メッセージがSAFエージェントによって確実に配信されなければならない期間を構成できます。構成された存続時間が経過すると、送信エージェントはメッセージをストレージから削除し、受信側に対するメッセージの再送信の試行を中止します。存続時間が経過したときに、配信できなかったメッセージをどのように処理するかは、アプリケーション側の設定で決まります。

失敗したメッセージ配信のJMSにおける処理方法については、「SAFエラー処理」を参照してください。

メッセージ配信の失敗で考えられる理由は、以下のとおりです。

- ネットワークの停止があった

- エンドポイントが存在しない(構成されていない)

- エンドポイントが停止している

- エンドポイントの割当てエラーが発生した

- セキュリティによって拒否された

- 必要なQOSがサポートされていない

- WSRM会話がタイムアウトになった(会話があまりに長い間アイドル状態にある)

失敗したメッセージ配信のロギング

ロギングのパラメータが有効になっている場合、失敗したメッセージごとに、送信エージェントによってメッセージがサーバー・ログに記録されます。これは、アプリケーションで独自の失敗処理が定義されていない場合や、アプリケーションで失敗処理を完了できない場合のかわりの方法として使用できます。WebLogicロギングの詳細は、Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタ処理のWebLogicロギング・サービスの理解を参照してください。

配信再試行の設定

メッセージを転送するために、送信エージェントは受信側に接続する必要がありますが、接続が使用不能になっている場合もあります。メッセージ送信の試行が失敗した場合には、送信エージェントは成功するまで再試行しなければなりません。同様に、必要なQOSが「必ず1回」または「1回以上」である場合には、そのメッセージの確認応答を受信するまで、送信エージェントはメッセージを送信し続ける必要があります。

試行の頻度、および連続する2回の試行の間隔を制御するには、再試行遅延の基数、再試行遅延の乗数、および最大再試行遅延の各パラメータのデフォルト値を構成します。再試行遅延の乗数パラメータの値は1以上に設定する必要があり、最大再試行遅延パラメータの値は再試行遅延の基数パラメータの値以上に設定する必要があります。デフォルトでは、再試行遅延の乗数パラメータの値は1に設定されています。この場合は、再試行遅延の基数パラメータの値で定義された一定間隔が、連続する2回の試行の間隔に使用され、最大再試行遅延パラメータの値は無視されます。再試行遅延の乗数パラメータに1より大きい値が設定されている場合、再試行間隔の調整に指数関数的なバックオフ・アルゴリズムが使用されます。

遅延は、再試行遅延の基数パラメータの値から始まり、指数関数的に長くなります。つまり、試行のたびに再試行遅延の乗数パラメータの値で乗算されていきます。最大再試行遅延パラメータの値に達すると、遅延時間はそれ以上長くなりません。試行が成功すると、再試行遅延の乗数パラメータの対象は、再試行遅延の基数パラメータの値にリセットされます。

SAFエージェントの配信再試行パラメータの詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのストア・アンド・フォワード・エージェント: 構成: 全般を参照してください。

メッセージの割り当て、しきい値、およびページングの使用

永続メッセージは、受信側に正常に転送され、確認応答されるまで送信側の永続ストアに保存されます。一方、配信が保留になっている非永続メッセージは送信側のメモリー内に存在し、すべての履歴記録は受信側のメモリー内に存在します。リモート側が長時間使用不能になっている場合には、保留中の非永続メッセージによって送信側サーバーのメモリーがすべて使用されてしまい、サーバーが停止してしまうこともあります。各SAFエージェントの割当てを構成することで、メモリー不足からサーバーを保護できます。割当てを超過しそうになると、SAFエージェントは新しいリクエストを拒否します。

割当てに達する前に、メッセージまたは履歴記録をページング・ディレクトリにページングするように、SAFエージェントを構成することもできます。ページングは、SAFエージェントの構成でしきい値として指定された一定の条件が満たされるとトリガーされます。メッセージまたは履歴記録用の永続ストアもページングに使用されます。

SAFエージェントのしきい値および割当てに関するパラメータとその関係は、JMS宛先やJMSサーバーのしきい値および割当てに関するパラメータと同じです。

SAFエージェントのしきい値および割当てパラメータの詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのストア・アンド・フォワード・エージェント: 構成: しきい値と割当てを参照してください。

起動時のリカバリ

WebLogic Serverインスタンスが再起動すると、そのサーバー・インスタンスが停止する前に送信されなかったメッセージが、サーバーの永続ストアから回復されます。送信エージェントは、リモート側がまだ期限切れになっていなければ、それらのメッセージをリモート側に送信しようとします。同様に、受信側でも再起動時に履歴記録が回復されます。

可用性の高いメッセージングのための移行可能なSAFエージェント

インポート済みJMS宛先に対するSAF送信エージェントによってクラスタ内の依存するJMSアプリケーションに対してシングル・ポイント障害が発生しないように、SAFエージェントをクラスタ内の正常なサーバー・インスタンスに自動または手動で移行するようWebLogic Serverを構成できます。

クラスタ指定SAFエージェントを使用し、自動的にエージェントおよびそれらのカスタム・ストアを使用するWebLogicクラスタ内の正常なサーバーに移行できます。詳細は、Oracle WebLogic Server JMSリソースの管理の簡素化されたJMSクラスタおよび高可用性構成を参照してください。

また、サービスの移行では、JMSサーバー、SAFエージェント、永続ストアなどのJMS関連の固定サービスをグループ化した移行可能ターゲットを使用することができ、このような移行可能ターゲットはクラスタ内のいずれか1つの物理サーバーでホストされます。ホストされているサービスは、ヘルス・モニター・サブシステムを使用することで、現在異常のあるホスト・サーバーから正常なアクティブ・サーバーに自動的に移行されます。移行可能ターゲットによってホストされるJMSサービスは、サーバー障害への対処として、また定期的なメンテナンスの一環として手動で移行できます。移行可能ターゲットを移行すると、そのターゲットによってホストされているすべての固定サービスも移行されます。

Oracle WebLogic Serverクラスタの管理のサービスの移行を参照してください。

3 JMSメッセージに対するSAFの構成

この項では、JMS SAF (ストア・アンド・フォワード)機能は、WebLogic SAFサービス上に構築され、高可用性を備えたJMSメッセージ生産を行う方法について説明します。たとえば、ローカルのサーバー・インスタンスに接続されたJMSメッセージ・プロデューサは、メッセージ送信時にリモートのJMS宛先が一時的に使用できない場合でも、そのリモート宛先に確実にメッセージを転送できます。JMS SAFはJMSアプリケーションからは透過的なので、JMSクライアント・コードは既存のJMS APIを使用して、リモート宛先にアクセスできます。

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

- JMSモジュールのSAFリソース

- JMS SAFリソースの作成

- JMS宛先のSAFリソースの構成 - 主な手順

- JMSメッセージに対するSAFの設計

注意:

WebLogic SAFクライアントが提供するメカニズムにより、ネットワークに接続できない(一時的なエラー、ネットワーク障害など)ためにSAFクライアントがJMS宛先にアクセスできない場合でも、スタンドアロン・クライアントはサーバー側のJMS宛先にJMSメッセージを確実に送信できます。接続が切断されている間、SAFクライアントによって送信されたメッセージはクライアント上でローカルに格納され、クライアントが再接続されたときにサーバー側のJMS宛先に転送されます。Oracle WebLogic Serverスタンドアロン・クライアントの開発のJMS SAFクライアントによる確実なメッセージ送信を参照してください。

JMSモジュールのSAFリソース

JMS構成リソースは、WebLogicドメインの外部のモジュール記述子ファイルに格納されます。これらのファイルは、weblogic-jmsmd.xsdスキーマに準拠するXMLドキュメントによって定義されます。JMSモジュールには、WebLogic ServerでのJMSメッセージの格納と転送を可能にする、SAFリソースの構成も含まれます。JMSモジュールの詳細は、Oracle WebLogic Server JMSリソースの管理のJMSリソースの構成の理解を参照してください。

JMSモジュールに対してSAFリソースを構成する場合には、JMSシステム・モジュールまたはアプリケーション・モジュールで以下のリソースを構成する必要があります。

- SAFインポート済み宛先

- SAFリモート・コンテキスト

- SAFエラー処理

JMS SAFリソースが構成されると、構成されたSAF送信エージェントによって、受信側へのメッセージの転送、確認応答が時間内に戻らなかった場合のメッセージの再送信、およびメッセージの永続性が必要になる場合の永続ストレージへのメッセージの一時的な格納が行われます。SAFエージェントの構成の詳細は、「ストア・アンド・フォワード・サービスの理解」を参照してください。

JMS SAFはJMSアプリケーションからは透過的です。既存のJMSアプリケーションは、コードを変更することなく、この機能を利用できます。実際には、JMSモジュールでインポート済みJMS宛先を構成し、その後、リモートのJMS宛先をローカルのJNDI名に関連付ける必要があるだけです。JMSクライアント・コードは既存のJMS APIを使用して、インポート済み宛先にアクセスします。メッセージの生産のみがJMSストア・アンド・フォワードの対象となるので、JMSクライアントは引き続き、インポート済み宛先から直接メッセージを消費する必要があります。

SAFインポート済み宛先

SAF宛先(キューまたはトピック)は、リモートのサーバー・インスタンスやクラスタに関連付けられたJMSモジュール内のJMS宛先(キューまたはトピック)をローカルに表現したものです。このようなリモート宛先は、ローカルのクラスタやサーバー・インスタンスに「インポート」されます。これにより、ローカルのサーバー・インスタンスやクラスタから、リモートのサーバー・インスタンスやクラスタにメッセージを送信することが可能になります。宛先に対する「SAFエクスポート・ポリシー」パラメータが明示的に無効化されていない限り、デフォルトではすべてのJMS宛先が自動的にエクスポートされます。

インポートされたSAF宛先の集合は、SAFインポート済み宛先と呼ばれます。インポート済み宛先の各集合は、SAFリモート・コンテキストと関連付けられます。また、それらは同じJNDI接頭辞、存続時間のデフォルト(メッセージの有効期限)、およびSAFエラー処理オブジェクトを共有します。

JMSプロデューサがSAF宛先にメッセージを送信すると、これらのメッセージは後の配信に備えてSAF宛先に格納されます。SAFエージェントは、(インポート済み宛先が表す)リモートJMS宛先へ、その宛先がアクセス可能であればSAFリモート・コンテキストを使用してメッセージを転送します。

SAFリモート・コンテキスト

SAFリモート・コンテキストでは、JMS宛先のエクスポート元である、リモートのサーバー・インスタンスまたはクラスタのURLが定義されます。また、リモート・クラスタまたはサーバーで認証および認可されるセキュリティ資格証明も含まれます。インポート済み宛先を使用する場合は、SAFリモート・コンテキストの構成が必須です。SAFリモート・コンテキストは、複数のSAFインポート済み宛先の構成で再利用できます。

次に示すURLは、SAFリモート・コンテキストで、スタンドアロンJMS宛先をインポートするリモート管理対象サーバーを1つ定義した場合の例です。

<URL>
t3://123.0.0.1:7001
</URL>

リモート・クラスタから分散宛先をインポートする場合は、DNSサーバー名またはIPアドレスをカンマで区切って指定します。次に示すURLは、SAFリモート・コンテキストで、分散宛先のメンバーをインポートするリモート・クラスタを定義した場合の例です。

<URL>
t3://123.0.0.1:7001,123.0.0.1:7002,123.0.0.1:7003
</URL>

WebLogicクラスタとの最初の接続ポイントを指定する方法は、Oracle WebLogic Server JNDIアプリケーションの開発のクラスタ環境でのWebLogic JNDIの使用を参照してください。

SAFエラー処理

SAFエラー処理リソースでは、SAFサービスがリモート宛先へのメッセージ転送に失敗した場合に行うアクションを定義します。SAFエラー処理リソースは、SAFインポート済み宛先を使用する場合でも必須ではありませんが、ベスト・プラクティスとしてお薦めします。

構成オプションには、以下のパラメータが含まれます。

- エラー処理ポリシー:

- 「破棄」 - デフォルトでは、期限切れのメッセージは単にシステムから削除されます。削除はログに記録されず、メッセージは別の場所にリダイレクトされません。

- 「ログ」 - 期限切れのメッセージを削除し、メッセージがシステムから削除されたことを示すエントリをサーバー・ログ・ファイルに書き込みます。実際にログに記録される情報は、「ログ・フォーマット」フィールドで定義します。

- 「リダイレクト」 - 期限切れのメッセージを現在の位置から、インポート済みのSAF宛先に定義されているエラー宛先へ移動します。

- 「常に転送」 - インポート済みの宛先に対して設定されたSAFデフォルト存続時間と、メッセージに対して設定された存続時間を無視するので、期限が切れた後でもメッセージをリモート宛先へ転送します。このオプションは、アプリケーションでリモート宛先に有効期限ポリシーが設定されていても、それらのメッセージをリモート宛先の有効期限プロセスで処理したい場合に便利です。

- 「ログ・フォーマット」 - 「ログ」ポリシーを選択した場合は、このフィールドを使用して、メッセージのどの情報をログに記録するかを定義します。

- 「エラー宛先」 - 「リダイレクト」ポリシーを選択した場合は、このフィールドを使用して、期限切れメッセージをリダイレクトするローカルのSAF宛先を選択します。

SAF JMSの仕組み

図3-1に、Domain1のDomain1Module-jms.xmlモジュール内のQueueSendキューに生成されたJMSメッセージが、SAFエージェントによってDomain2のDomain2Module-jms.xmlモジュール内のQueueReceiveキューに転送される仕組みを示します。

図3-1 JMSメッセージのストア・アンド・フォワード

JMS SAFリソースの作成

JMSモジュールのSAFリソースは、以下のいずれかの方法で作成できます。

- WebLogic Server管理コンソールを使用します。これにより、使用している環境のJMSシステム・モジュールおよびJMSシステム・リソースを構成、変更、ターゲット指定、モニター、および削除できます。JMS SAFリソースの構成タスクのロード・マップについては、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJMS SAFの構成を参照してください

- WebLogic Scripting Tool (WLST)を使用します。これにより、JMSサーバーとJMSシステム・リソースを作成および管理できます。詳細は、Oracle WebLogic Server JMSリソースの管理のWLSTを使用したJMSサーバーとJMSシステム・モジュール・リソースの管理を参照してください。

- WebLogic Java Management Extensions (JMX)を使用します。これにより、SAFImportedDestinationsBean、SAFRemoteContextBean、およびSAFErrorHandlingBean管理MBeanにアクセスして、JMSモジュールのSAFリソースを作成および管理できます。詳細は、Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発のWebLogic ServerサブシステムMBeanの概要を参照してください。

- JMSモジュール・ヘルパー拡張APIを使用します。これにより、JMS実行時MBeanの検索と、特定のモジュール内のJMSシステム・モジュール構成リソースの管理(検索、作成、削除)を行うことができます。詳細は、Oracle WebLogic Server JMSアプリケーションの開発のJMSモジュール・ヘルパーを使用したアプリケーションの管理またはOracle WebLogic Server Java APIリファレンスのJMSModuleHelperを参照してください。

JMS宛先のSAFリソースの構成 - 主な手順

WebLogic Server管理コンソールを使用して、リモート宛先にJMSメッセージを転送するためにSAFリソースを構成する主な手順は次のとおりです。

1. 送信側のローカル・ドメインでSAF送信エージェントを構成します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプのストア・アンド・フォワード・エージェントの作成を参照してください。

2. 必要に応じて、送信側と受信側の両方でJMS宛先リソースを格納するJMSシステム・モジュールを作成します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJMSシステム・モジュールの構成を参照してください。

詳細は、Oracle WebLogic Server JMSリソースの管理のJMSシステム・モジュールを参照してください。

3. 送信側のJMSモジュールで、リモート・キューまたはトピックのエクスポート元である受信側のURLを定義するSAFリモート・コンテキスト・リソースを構成します。手順は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAFリモート・コンテキストの作成を参照してください。

4. 必要に応じて、送信側のJMSモジュールで、SAFサービスがリモート宛先へのメッセージ転送に失敗した場合に行うアクションを定義するSAFエラー処理構成を構成します。手順は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAFエラー処理リソースの作成を参照してください。

5. 送信側のJMSモジュールで、SAFインポート済宛先を構成し、それをモジュールで作成したSAFリモート・コンテキストおよびSAFエラー処理リソースに関連付けます。手順は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJMSシステム・モジュールにおけるSAFインポート済宛先の作成を参照してください。

6. 作成したSAFインポート済み宛先を再び開いて、受信側のリモート・キューまたはトピックを表すSAFキューまたはトピックを構成します。SAFキューまたはトピックは、リモート・キューまたはトピックと同じJNDI名を使用します。手順については、以下を参照してください。

- Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAFキューの作成

- Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAFトピックの作成

7. デフォルトでは、すべてのJMS宛先は、SAFインポート済み宛先としてアクセス可能です。ただし、宛先のSAFエクスポート・ポリシーのパラメータ値を「なし」に変更することで、その宛先をエクスポートしないように明示的に指定できます。これで、リモート・ユーザーは、ストア・アンド・フォワードを使用して宛先にメッセージを送信できなくなります。

JMSメッセージに対するSAFの設計

以下の節では、JMSメッセージを格納および転送するためにWebLogic SAFを設計および構成する場合に役立つ情報について説明します。

サービスの品質(QOS)レベルの選択

永続JMSメッセージは、SAFサービスによって常に「必ず1回」のQOSで転送されます。非永続メッセージでは、SAFインポート済みキューとトピックに対して以下の3種類のQOSレベルを定義できます。

- 「必ず1回」 - もっとも高レベルのQOS。メッセージがリモート・エンドポイントに1回だけ送信されます。「必ず1回」を指定すると、サーバーのクラッシュ時やネットワークのダウン時にもメッセージは存続し、各メッセージがエンドポイントに1つだけ存在する状態にできます。

- 「1回以上」 - メッセージはリモート・エンドポイントに少なくとも1回は転送されますが、重複する可能性があります。「1回以上」を指定すると、メッセージの転送中に発生したネットワーク障害やサーバーのクラッシュにより、そのメッセージの複数のコピーがリモートのエンドポイントに現れることがあります。

- 「最大1回」 - もっとも低レベルのQOS。各メッセージがリモート・エンドポイントに(送信できた場合には) 1回だけ送信されます。メッセージが重複してエンドポイントに届くことはありません。「最大1回」を指定していると、ネットワーク障害やサーバーのクラッシュによってメッセージが失われることがあります。メッセージが重複してエンドポイントに届くことはありません。

SAFによる配信モードの処理方法

SAFアプリケーションでは、メッセージごとに配信モードを指定することもできます。

- 永続メッセージは、受信側に正常に転送され、確認応答されるまで送信側の永続ストアに保存されます。

- 非永続メッセージは、受信側がそれらを確認応答するまで送信側のメモリー内に存在し続けます(つまり、非永続メッセージは送信側がクラッシュすると失われるおそれがあります)。

メッセージ順序単位の使用

クラスタ内では、JMSプロデューサをメッセージ順序単位に関連付けることができます。これにより、スタンドアロンのメッセージ・プロデューサまたは1つのプロデューサとして機能するプロデューサのグループは、処理順序に関して複数のメッセージを1つの単位にグループ化できるようになります。JMS順序単位の詳細は、Oracle WebLogic Server JMSアプリケーションの開発のメッセージ順序単位の使用を参照してください。

SAFインポート済宛先ではハッシュ・マップまたはパス・サービスのいずれかを使用して、クラスタ内の順序付けされたメッセージをグループ化できます。ただし、パス・サービスを構成するのがベスト・プラクティスです。パス・サービスは、メッセージのグループとメッセージング・リソース(SAFエージェントなど)との間のマッピングを格納できる永続マップです。パス・サービスの構成の詳細は、Oracle WebLogic Server JMSリソースの管理のWebLogicパス・サービスの使用を参照してください。

トランザクション・メッセージ

アプリケーションのメッセージがトランザクション内にある場合、「必ず1回」のセマンティクスを維持するために、永続ストレージへのメッセージの保存はそのユーザー・トランザクションの一環として行われます。

特に、メッセージの永続ストレージからの削除は、アプリケーションでトランザクションのロールバックが決定された場合にトランザクション・ロールバックの一環として行われます。一方、転送はアプリケーション・トランザクションの一環としては行われません。トランザクションがコミットされるまで、トランザクション・メッセージは送信エージェントによって転送されません。トランザクション内では、メッセージの順序はメッセージが送信された時間に基づいて保持されます。

SAF境界を越えるメッセージの圧縮

JMSストア・アンド・フォワードでは、別々のクラスタ間でメッセージが転送される場合、メッセージを圧縮できます。メッセージ圧縮のしきい値は、WLMessageProducerインタフェースのJMS API拡張機能を使用することによってプログラム的に設定するか、接続ファクトリまたはJMS SAFリモート・コンテキストで「デフォルト圧縮しきい値」を指定することによって管理的に設定できます。

JMSメッセージ圧縮の使用の詳細は、Oracle WebLogic Serverのパフォーマンスのチューニングのメッセージの圧縮を参照してください。

SAFリモート・コンテキストの圧縮しきい値を超える非圧縮メッセージは、SAF境界を越えて転送されるときに圧縮されます。メッセージは、リモート・エンドポイントで受信されるまで、圧縮されたままです。接続ファクトリで圧縮が有効になっているためにSAF境界を越えるときにメッセージがすでに圧縮されている場合は、SAF圧縮がトリガーされるかどうかに関係なく、メッセージは圧縮されたままSAF境界を越えて転送されます。

分散宛先に対するSAF

リモート・エンドポイントは分散宛先であってもかまいません。一般的に、リモート分散宛先へのメッセージは、スタンドアロンのリモート宛先に転送されるメッセージと同様に格納および転送されます。しかし、ロード・バランシングは他の分散宛先と別に処理されます。詳細は、「SAFロード・バランシング」を参照してください

分散宛先の構成の詳細は、Oracle WebLogic Server JMSリソースの管理の分散宛先の構成を参照してください。

SAFロード・バランシング

ロード・バランシングでは、メッセージがインポート済のSAF宛先に送信される場合、またはリモート宛先に転送される場合のメッセージ経路が決定されます。SAFメッセージのメッセージ経路を決定するようWebLogic Serverを構成する際には、次の2つの状況を考慮してください。

- インポート済宛先へのメッセージの送信

- SAFエージェントによるリモート宛先へのメッセージの転送

インポート済宛先へのメッセージの送信

JMSクライアントによって送信されたメッセージは、次のいずれかのメッセージ経路を使用して、インポート済宛先にロード・バランシングされます。

- 単一のSAFエージェントの場合、ロード・バランシングは通常のJMS宛先への送信と同様に処理されます。

- 複数のSAFエージェントの場合、インポート済宛先は分散宛先と同様に機能します。接続ファクトリのロード・バランシング設定に従って、メッセージが複数のSAFエージェントにロード・バランシングされます。「接続と接続ファクトリ」を参照してください

SAFエージェントによるリモート宛先へのメッセージの転送

メッセージの転送は、各SAFエージェントが個別に行います。この場合、メッセージを転送するSAFエージェントはロード・バランシングの対象とならず、メッセージ経路は宛先タイプによって決まります。

- 宛先が分散されていない通常の宛先の場合、ロード・バランシングやフェイルオーバーは行われません。

- ターゲットとなる宛先が分散宛先の場合、メッセージ経路とフェイルオーバーの動作は、順序単位が設定されていないExactly-onceメッセージ(persistentまたはnon-persistentで、QoSがExactlyOnceのメッセージ)に対するSAFエージェントの構成によって決まります。メッセージ経路は、使用可能な分散宛先メンバーのリストの中から、ラウンドロビン方式のロード・バランシング・メッセージによって決定されます。使用できなくなったメンバーは、リストから動的に削除されます。使用可能になったメンバーは、リストに動的に追加されます。
単一メッセージの観点から、フェイルオーバーは行われません。SAFエージェントが宛先メンバーへのメッセージの配信に失敗した場合、別のメンバーに再配信するのではなく、元のメンバーへの配信を定期的に再試行します。ExactlyOnce QoSを維持するため、メッセージのターゲット・メンバーは変更されません。

- その他すべてのメッセージ・タイプについては、デフォルト接続ファクトリ(loadBalancingEnabled=trueおよびserverAffinityEnabled=true)によってメッセージ経路が決まります。

注意:

JMS接続ファクトリのデフォルト設定は変更もオーバーライドもできません。

SAFでのJMSReplyToフィールドの使用

一般的に、JMSアプリケーションはJMSReplyToヘッダー・フィールドを使用して、一時的な宛先の名前を他のアプリケーションに対して公開できます。ただし、JMSReplyToフィールドを使用した一時的な宛先の使用は、SAFインポート済み宛先ではサポートされていません。

JMS一時宛先の使用方法の詳細は、『Oracle WebLogic Server JMSアプリケーションの開発』の一時宛先の使用に関する項を参照してください。

SAF宛先の保護

SAFインポート済み宛先では、以下のセキュリティ対策が適用されています。

- SAFインポート済キューとトピックに対してセキュアなロールとポリシーを設定できます。ロールとポリシーの構成の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの次の項を参照してください。

- SAFキュー・セキュリティ・ロールの構成

- SAFキュー・セキュリティ・ポリシーの構成

- SAFトピック・セキュリティ・ロールの構成

- SAFトピック・セキュリティ・ポリシーの構成

- SAFサービスでは、メッセージのJMSXUserIDがSAF境界を越えて保持されることはありません。JMSXUserIDとは、メッセージの送信者であるユーザーを識別するシステム生成のプロパティです。JMSXUserIDは、公開しているJMS仕様(http://www.oracle.com/technetwork/java/jms/index.html)で定義されています。

接続と接続ファクトリ

JMSメッセージは、クライアントから接続ホストを通じて、WebLogic JMSサーバーまたはSAFエージェントがホストするJMS宛先インスタンスへと転送されます。クライアントは、JNDIを使用して接続ファクトリを取得し、それを使用してWebLogicへのJMS接続を作成します。各接続インスタンスは、特定のWebLogicサーバー(接続ホスト)に関連付けられています。

接続ファクトリとは、クライアント接続の構成パラメータを定義するもので、クライアントの宛先と同じサーバーまたはクラスタでホストされる必要があります。WebLogic JMSは、デフォルト接続ファクトリとカスタム接続ファクトリを提供します。デフォルト接続ファクトリは構成できません。一方、カスタム接続ファクトリは構成可能ですが、デフォルト接続ファクトリと同じJNDI名では構成できません。接続ファクトリは、WebLogicクラスタ内の1つ以上のサーバーでホストできます。

- デフォルト接続ファクトリは、常にクラスタ内のすべてのサーバーでホストされます。

- カスタム接続ファクトリのホストは、ターゲット構成に基づいて設定されます。

クライアントの接続ファクトリ・インスタンスは、実際にはWebLogic RMIのレプリカ対応スタブであり、接続ファクトリをホストするすべてのアクティブ・サーバーを暗黙的に追跡します。サーバーがクラスタ内で利用可能および利用不可になると、接続ファクトリ・インスタンスはこの情報で自動的に更新されます。クライアントが、接続ファクトリ・インスタンスを使用して接続を作成すると、いずれかのサーバーがクライアントの接続ホストとなります。接続ホストは接続の存続期間中ずっと変わりません。

分散宛先およびインポート済宛先に対するプロデューサのロード・バランシング動作をチューニングする接続ファクトリ設定が2つあります。

- Server Affinity: 接続ホストが存在する場合に、送信リクエストを分散宛先またはインポート済宛先のすべてのメンバーではなく、接続ホストのローカル・メンバーの間でのみロード・バランシングするかどうかを指定します。デフォルトでは有効になっています。

- Load Balancing: 非匿名のプロデューサを呼出しごとにメンバー間でロード・バランシングするかどうかを指定します。有効にすると、メッセージはsend()またはpublish()ごとにすべてのメンバーの間でロード・バランシングされます。無効にすると、最初のsend()またはpublish()でロード・バランシングの決定が行われ、その後のメッセージはすべて同じ宛先に送信されます。デフォルトでは有効になっています。

注意:

Server AffinityとLoad Balancingは、次の場合には無視されます。

- 通常の宛先への生成の場合。

- 順序単位および作業単位のメッセージに対して使用し、順序に関するサービス品質を厳密に維持する場合。

4 SAFエージェントのモニターと管理

この章では、WebLogic Server管理コンソールを使用してSAFエージェントの実行時統計をモニターし、メッセージ処理を管理する方法について説明します。

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

- SAFエージェントのモニター

- SAFエージェントでのメッセージ処理の管理

SAFエージェントのモニター

ドメインで定義されているアクティブなSAFエージェントの統計は、WebLogic Server管理コンソールまたはSAFAgentRuntimeMBeanを使用してモニターできます。WebLogic Server管理コンソールを使用してJMSサーバーをモニターする方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAFエージェントの統計のモニターを参照してください。

WebLogic Server管理コンソールには、SAFエージェント、リモート・エンドポイント、および接続のモニター機能があります。SAFエージェントごとに、以下の情報を表示できます。

- SAFエージェントの通信先となったすべてのSAF受信エージェント(WSRMの場合のみ)

- 発生したすべての会話(WSRMの場合のみ)

- SAFエージェントのメッセージ送信先となったすべてのエンドポイント(WSRMおよびJMSの場合)

送信エージェントごとに、以下の統計情報が記録されます。

- メッセージの現在の数、合計数、および最大数(エージェントごと、リモート・エンドポイントごと)

- 失敗したメッセージの合計数(会話ごと、エージェントごと、リモート・エンドポイントごと)

- 会話の現在の数、合計数、および最大数(エージェントごと、リモート・エンドポイントごと)

- リモート・エージェントが使用可能だった合計時間と使用不能だった合計時間、およびリモート・エージェントに対して接続または切断した最終時刻

SAFエージェントでのメッセージ処理の管理

WebLogic Server管理コンソールには、次のような、SAFエージェントの実行時のメッセージ管理機能もあります。

- SAFエージェントでの着信、転送および受信メッセージ処理の一時的な休止(Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAFエージェントの統計のモニターに説明があります)。

- リモート・エンドポイントのすべてのメッセージを期限切れにしたり、パージしたりすることもできます。リモート・エンドポイントに対するすべてのメッセージを期限切れにしたり、パージしたりすることもできます(Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAFエージェントのリモート・エンドポイントのモニタリングに説明があります)。

- WSRM会話の破棄と、その会話に関連付けられたすべてのメッセージのパージ(Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAFエージェントのWSRM会話のモニターに説明があります)。

5 WebLogic SAFのトラブルシューティング

この章では、実行中のサーバーおよびそのコンテナ内にデプロイされているアプリケーションによって生成された診断データを作成、収集、分析、アーカイブ、およびアクセスする方法について説明します。このデータを基に、サーバーおよびアプリケーションの実行時パフォーマンスを把握できます。また、障害発生時に、このデータを使用して、障害を隔離および診断できます。WebLogic SAFは、このサービスを利用して、拡張された実行時統計、インポートされたSAFキューおよびトピックに送られる通知、メッセージ・ライフ・サイクルのJMSメッセージのロギング、ユーザーのWebLogicドメインの円滑な稼動を維持するのに役立つデバッグ機能を提供します。

SAFエージェントの統計のモニターについては、「SAFエージェントのモニター」を参照してください。

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

- WebLogic SAFのデバッグ

- JMSメッセージのSAFメッセージ・ライフ・サイクルのロギング

- JMS SAF関連のよくある質問

WebLogic SAFのデバッグ

特定のアプリケーションに問題があると突き止めたら、WebLogic Serverのデバッグ機能をアクティブ化して、アプリケーション内の特定の問題を探し当てることができます。

デバッグの有効化

デバッグは、適切なServerDebug構成属性をtrueに設定することで有効化できます。必要に応じて、サーバーのStdoutSeverityをDebugに設定することもできます。

構成属性は、以下のいずれかの方法で変更できます。

コマンド・ラインを使用してデバッグを有効化する

コマンド・ラインで適切なプロパティを設定します。例:

-Dweblogic.debug.DebugSAFSendingAgent=true
-Dweblogic.log.StdoutSeverity="Debug"

この方法は静的なものであり、サーバーの起動時にのみ使用できます。

WebLogic Server管理コンソールを使用してデバッグを有効化する

WebLogic Server管理コンソールを使用して、デバッグ値を設定します。

1. まだ行っていない場合、WebLogic Server管理コンソールのチェンジ・センターで「ロックして編集」をクリックします(チェンジ・センターの使用を参照)。

2. 管理コンソールの左ペインで、「環境」を展開して「サーバー」を選択します。

3. 「サーバーの概要」ページで、デバッグを有効化または無効化するサーバーをクリックして、そのサーバーの設定ページを開きます。

4. 「デバッグ」をクリックします。

5. 「デフォルト」を展開します。

6. 変更するデバッグ・スコープまたは属性のチェック・ボックスを選択します。SAFのデバッグの場合であれば、「DebugMessaging」チェック・ボックスを選択します。

7. 「有効化」 (または「無効化」)を選択して、チェックを入れたデバッグ・スコープまたは属性を有効化(または無効化)します。

8. WebLogic Server管理コンソールの「チェンジ・センター」で「変更のアクティブ化」をクリックしてこれらの変更内容を有効にします。

9. すべての変更が即座に有効になるわけではありません。再起動が必要なものもあります(チェンジ・センターの使用を参照)。

この方法は動的なものであり、サーバーの実行中にデバッグを有効化するのに使用できます。

WebLogic Scripting Toolを使用してデバッグを有効化する

WebLogic Scripting Tool (WLST)を使用してデバッグ値を設定します。たとえば、次のコマンドでは、debug.pyというデバッグ値を設定するためのプログラムが実行されます。

java weblogic.WLST debug.py

メイン・スコープであるweblogicは表示されません。safは、weblogicのサブ・スコープです。なお、DebugSAFSendingAgentの完全修飾のDebugScopeはmessaging.saf.adminです。

debug.py programプログラムには、以下のコードが含まれています。

user='user1'
password='password'
url='t3://localhost:7001'
connect(user, password, url)
edit()
cd('Servers/myserver/ServerDebug/myserver')
startEdit()
set('DebugSAFSendingAgent','true')
save()
activate()

JavaからもWLSTを使用することができます。次の例では、デバッグ値の設定に使用されるJavaファイルを示します。

import weblogic.management.scripting.utils.WLSTInterpreter;
import java.io.*;
import weblogic.jndi.Environment;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class test {
public static void main(String args[]) {
try {
WLSTInterpreter interpreter = null;
String user="user1";
String pass="pw12ab";
String url ="t3://localhost:7001";
Environment env = new Environment();
env.setProviderUrl(url);
env.setSecurityPrincipal(user);
env.setSecurityCredentials(pass);
Context ctx = env.getInitialContext();

interpreter = new WLSTInterpreter();
interpreter.exec
("connect('"+user+"','"+pass+"','"+url+"')");
interpreter.exec("edit()");
interpreter.exec("startEdit()");
interpreter.exec
("cd('Servers/myserver/ServerDebug/myserver')");
interpreter.exec("set('DebugSAFSendingAgent','true')");
interpreter.exec("save()");
interpreter.exec("activate()");

} catch (Exception e) {
System.out.println("Exception "+e);
}
}
}

WLSTの使用は動的な手法で、サーバーの実行中にデバッグを有効化するために使用できます。

config.xmlファイルへの変更

コンソール、WLST、またはコマンド・ラインでデバッグ特性を変更すると、その内容がconfig.xmlファイルに反映されます。

次に示すconfig.xmlのサンプルの抜粋に、トランザクション・デバッグのスコープ(複数のデバッグ属性)と単一のSAF属性を示します。

例5-1 SAFのデバッグ・スタンザのサンプル

<server>
<name>myserver</name>
<server-debug>
<debug-scope>
<name>weblogic.transaction</name>
<enabled>true</enabled>
</debug-scope>
<debug-saf-sending-agent>true</debug-saf-sendingagent>
</server-debug>
</server>

SAFのデバッグ・スコープ

次は、WebLogic SAF用の登録済デバッグ・スコープです。

- DebugSAFStore (スコープweblogic.messaging.saf.store) - SAFによるストアの使用に関する限定的な情報を出力します。

- DebugSAFReceivingAgent (スコープweblogic.messaging.saf.receivingagent) - SAFの受信側に関する情報を出力します。

- DebugSAFSendingAgent (スコープweblogic.messaging.saf.sendingagent) - SAFの送信側に関する情報を出力します。

- DebugSAFVerbose (スコープweblogic.messaging.saf.verbose) - 詳細な(内部)情報を出力します。

- DebugSAFManager (スコープweblogic.messaging.saf.manager) - SAFの管理(エージェント間の会話の設定)に関する情報を出力します。

- DebugSAFAdmin (スコープweblogic.messaging.saf.admin) - SAFの管理(休止/再開)に関する情報を出力します。

注意:

JMS SAF宛先をデバッグするには、JMS SAF (ストア・アンド・フォワード)宛先に関する情報を出力するDebugJMSSAF (スコープweblogic.jms.saf) WebLogic JMSスコープを使用することができます。

WebLogic JMSのデバッグ・スコープの詳細は、Oracle WebLogic Server JMSリソースの管理のWebLogic JMSのトラブルシューティングを参照してください。

リクエストの仕分け

これ以外のデバッグ方法は、SAFサービスを介して個々の(通常は仕分けされた)アプリケーション・リクエストのフローをトレースすることです。詳細は、Oracle WebLogic Server診断フレームワークの構成と使用のDyeInjectionモニターによるDye Vectorの構成を参照してください。

JMSメッセージのSAFメッセージ・ライフ・サイクルのロギング

メッセージ・ライフ・サイクルは、JMSメッセージがSAFエージェントによって格納されてから、最終的にリモートのJMS宛先に転送されるまでに発生するイベントを外側から見た概念です。メッセージ・ライフ・サイクルのロギングを利用することで、管理者は、格納および転送されたJMSメッセージの存在やステータスをSAFエージェントから見た情報に容易にアクセスできます。各メッセージ・ログには、メッセージの格納、転送、期限切れなどの基本的なライフ・サイクル・イベントについての情報が含まれます。WebLogicロギング・サービス全般の詳細は、Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタ処理のWebLogicロギング・サービスの理解を参照してください。

SAFメッセージ・ロギングは、SAFエージェントを作成するとデフォルトで有効になります。ただし、このSAFエージェントにターゲット指定するJMSモジュールのSAFインポート済み宛先では、SAFメッセージ・ロギングを明示的に有効にする必要があります。ロギングは、長期間にわたって継続的に発生します。また、SAFエージェントがデプロイされている場合にリアルタイム・モードで使用したり、SAFエージェントが停止している場合にオフライン形式で使用したりできます。SAFメッセージ・ロギングの構成の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの次に関する項を参照してください。

- ログの表示と構成

- SAFエージェントのJMSメッセージのログ・ローテーションの構成

- SAFキューのメッセージ・ロギングの構成

- SAFトピックのメッセージ・ロギングの構成

SAFメッセージ・ライフ・サイクルのイベント

SAFインポート済みキューまたはトピックのSAFメッセージ・ライフ・サイクルのロギングを有効にすると、メッセージが基本的なメッセージ・ライフ・サイクル・イベントに対応する条件を満たすたびに、SAFエージェントのメッセージ・ログ・ファイルにレコードが追加されます。SAFメッセージのログ・エントリは、以下のライフ・サイクル・イベントによってトリガーされます。

- 格納 - プロデューサがSAFインポート済みキューまたはトピックにメッセージを送信すると、このイベントがログに記録されます。

- 転送 - SAFがリモート・キューまたはトピックにメッセージを転送すると、このイベントがログに記録されます。

- 削除 - SAFエージェントを介してリモート・エンドポイントからメッセージが手動でパージされると、このイベントがログに記録されます。

- 期限切れ - メッセージがSAFインポート済み宛先に設定された有効期限に達すると、このイベントがログに記録されます。

メッセージ・ログの場所

メッセージ・ログは、ドメイン・ディレクトリ内の次の場所に格納されます。例:

USER_DOMAIN\servers\servername\logs\safagents\saf_agent_name\jms\jms.messages.log

上記の ディレクトリ・パスに、USER_DOMAINはドメインのルート・ディレクトリ、(通常はc:\Oracle\Middleware\user_projects\domains\ USER_DOMAIN)です。これは、WebLogic Serverプログラム・ファイルが格納されるディレクトリ、(通常c:\Oracle\Middleware\wlserver_12.1)に対応するディレクトリです。

SAFメッセージ・ロギングの有効化

SAFキューおよびSAFトピックのSAFメッセージ・ロギングは、WebLogic Server管理コンソールを使用して有効にしたり無効にしたりできます。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプ:の次に関する項を参照してください。

- SAFキューのメッセージ・ロギングの構成

- SAFトピックのメッセージ・ロギングの構成

WebLogic Java Management Extensions (JMX)を使用すると、SAFAgentRuntimeMBeanおよびSAFAgentRuntimeMBean MBeanにアクセスして、SAFメッセージ・ログを管理できます。詳細は、Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発のWebLogic ServerサブシステムMBeanの概要を参照してください。

SAFメッセージ・ロギングを有効にする際は、メッセージ・ヘッダー・フィールド、システム定義のメッセージ・プロパティ、およびユーザー定義のプロパティのそれぞれについて、ログ・エントリにそのすべてを含めるか一部のみを含めるかを指定できます。また、メッセージの本文を含めるかどうかも選択できます。メッセージ・ヘッダーおよびプロパティの詳細は、Oracle WebLogic Server JMSアプリケーションの開発のMessageProducerおよびMessageConsumerを参照してください。

SAFメッセージ・ログの内容

ログに追加される各レコードには、メッセージに関する基本的な情報(メッセージID、メッセージの件名の相関IDなど)が含まれます。SAFエージェントを構成して、メッセージの種類やユーザー・プロパティなどの追加情報を含めることもできます。

SAFメッセージ・ログ・レコードのフォーマット

特に注記のない限り、JMSメッセージのSAFメッセージ・ライフ・サイクル・ログに追加されるすべてのレコードには、以下の情報が以下に列挙した順序で記録されます。

- 日付 - このメッセージのログ・レコードが生成された日時。

- トランザクション識別子 - メッセージが関連付けられているトランザクションのトランザクション識別子。

- WLS診断コンテキスト - システム内を流れるリクエストまたは作業単位の一意の識別子。この情報がSAFメッセージ・ログに含まれているのは、同じリクエストに属すイベント間の相関性を示すためです。

- 「日付」のミリ秒未加工値 - メッセージ・ログ・レコードが生成された日時をミリ秒で表した値。トラフィック量の多いアプリケーションでのトラブルシューティングに使用します。

- 「日付」のナノ秒未加工値 - メッセージ・ログ・レコードが生成された日時をナノ秒で表した値。トラフィック量の多いアプリケーションでのトラブルシューティングに使用します。

- JMSメッセージID - メッセージに割り当てられた一意の識別子。

- JMS相関ID - メッセージのユーザー定義の識別子。通常は件名が同じメッセージの相関に使用します。

- JMS宛先名 - メッセージの宛先サーバーの完全修飾名。

- SAFメッセージ・ライフ・サイクル・イベント名 - ログ・エントリをトリガーしたメッセージ・ライフ・サイクル・イベントの名前。

- JMSユーザー名 - メッセージを生成、消費、または受信したユーザーの名前。

- JMSメッセージ転送識別子 - この情報は、ログに記録されたメッセージ・ライフ・サイクル・イベントが「メッセージ転送」イベントである場合にのみログに含まれます。メッセージがSAFキュー上で転送された場合は、リモート宛先の起点と、SAFエージェントで識別されたリモート宛先のOAM識別子に関する情報がログに含まれます。リモート宛先が恒久サブスクライバである場合は、ログに接続のクライアントIDとサブスクリプション名も含まれます。
メッセージ転送識別子の構文は次のとおりです。

MC:CA(…):OAMI(wls_server_name.jms.connection#.session#.consumer#)

説明:

- MCはメッセージ・コンシューマを表します。

- CAはクライアント・アドレスを表します。

- OAMIはOA&M識別子を表します。

- CCは接続コンシューマを表します(適用される場合のみ)。

コンシューマが恒久サブスクライバである場合は、追加情報が次の構文で表示されます。

DS:client_id.subscription_name[message consumer identifier]

DSは恒久サブスクライバを表します。

- JMSメッセージ・コンテンツ - 宛先ごとにカスタマイズ可能なフィールド。ただし、メッセージの本文は使用できません。

- JMSメッセージ・セレクタ - この情報は、ログに記録されたメッセージ・ライフ・サイクル・イベントが「メッセージ転送」イベントである場合にのみログに含まれます。ログには、JMS APIからのSelector引数が表示されます。

サンプル・ログ・ファイル・レコード

以下に示すサンプル・ログ・ファイル・レコードで、各メッセージ・ライフ・サイクル・イベントでログ・ファイルに記録される情報の種類を示します。各レコードは固定長ですが、イベントとの関連性やレコード内の各フィールドに有効な値が存在するかどうかに応じて含まれる情報が異なります。ログ・ファイル・レコードの構文は次のとおりです。

####<date_and_time_stamp> <transaction_id> <WLS_diagnostic_context> <date_in_
milliseconds> <date_in_nanoseconds> <JMS_message_id> <JMS_correlation_id> <JMS_
destination_name> <life_cycle_event_name> <JMS_user_name> <consumer_identifier>
<JMS_message_content> <JMS_message_selector>

注意:

ログ・ファイルにJMSメッセージのコンテンツを含めることを選択する場合は、メッセージのコンテンツ内のすべての左向きの山カッコ(<)と右向きの山カッコ(>)がエスケープされる点に注意してください。ログ・ファイルでは、左向きの山カッコのかわりに"&lt;"、右向きの山カッコのかわりに"&gt;"が表示されます。

メッセージ格納イベント

####<Nov 3, 2005 11:11:02 AM EST> <> <> <1131034262637> <391826>
<ID:<864239.1131034262172.0>> <>
<SenderSafmodule!safDestinations2!xsafQ2@SendingAgent@D1S1> <Stored> <system>
<> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;mes:WLJMSMessage xmlns:mes="http://www.oracle.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JM
SDeliveryMode&gt;NON_
PERSISTENT&lt;/mes:JMSDeliveryMode&gt;&lt;mes:JMSExpiration&gt;0&lt;/mes:JMSExpi
ration&gt;&lt;mes:JMSPriority&gt;5&lt;/mes:JMSPriority&gt;&lt;mes:JMSRedelivered
&gt;false&lt;/mes:JMSRedelivered&gt;&lt;mes:JMSTimestamp&gt;1131034262172&lt;/me
s:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;mes:Body&gt;&lt;
mes:Text&gt;EndPointExpireAllWithMessageForward(NP):0&lt;/mes:Text&gt;&lt;/mes:B
ody&gt;&lt;/mes:WLJMSMessage&gt;> <>

メッセージ転送イベント

####<Nov 3, 2005 11:11:30 AM EST> <> <> <1131034290391> <277193>
<ID:<864239.1131034288312.0>> <>
<SenderSafmodule!safDestinations3!safErrorQueue@SendingAgent@D1S1>
<Forwarded> <<WLS Kernel>> <> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;mes:WLJMSMessage
xmlns:mes="http://www.oracle.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:
JMSDeliveryMode&gt;NON_
PERSISTENT&lt;/mes:JMSDeliveryMode&gt;&lt;mes:JMSExpiration&gt;0&lt;/mes:JMSExpi
ration&gt;&lt;mes:JMSPriority&gt;5&lt;/mes:JMSPriority&gt;&lt;mes:JMSRedelivered
&gt;false&lt;/mes:JMSRedelivered&gt;&lt;mes:JMSTimestamp&gt;1131034288312&lt;/me
s:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;mes:Body&gt;&lt;
mes:Text&gt;EndPointExpireAllWithMessageRedirect(NP):0&lt;/mes:Text&gt;&lt;/mes:
Body&gt;&lt;/mes:WLJMSMessage&gt;> <>

メッセージ期限切れイベント

####<Nov 3, 2005 1:04:25 PM EST> <> <> <1131041065929> <42424>
<ID:<130865.1131041065828.0>> <>
<udd-saf!safDestinations!safRemoteQueue@SendingAgent@D1C1S1> <Expired>
<<WLS Kernel>> <> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;mes:WLJMSMessage xmlns:mes="http://www.oracle.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:
JMSDeliveryMode&gt;PERSISTENT&lt;/mes:JMSDeliveryMode&gt;&lt;mes:JMSExpiratio
n&gt;1131041065848&lt;/mes:JMSExpiration&gt;&lt;mes:JMSPriority&gt;7&lt;/mes:JM
SPriority&gt;&lt;mes:JMSRedelivered&gt;false&lt;/mes:JMSRedelivered&gt;&lt;mes:J
MSTimestamp&gt;1131041065828&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;
&lt;/mes:Header&gt;&lt;mes:Body&gt;&lt;mes:Text&gt;testSAFLogging_
Expired&lt;/mes:Text&gt;&lt;/mes:Body&gt;&lt;/mes:WLJMSMessage&gt;> <>

メッセージ削除イベント

####<Nov 3, 2005 11:11:08 AM EST> <> <> <1131034268206> <803337>
<ID:<864239.1131034262172.0>> <>
<SenderSafmodule!safDestinations2!xsafQ2@SendingAgent@D1S1> <Removed> <<WLS
Kernel>> <> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;mes:WLJMSMessage xmlns:mes="http://www.oracle.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMS
DeliveryMode&gt;NON_
PERSISTENT&lt;/mes:JMSDeliveryMode&gt;&lt;mes:JMSExpiration&gt;0&lt;/mes:JMSExpi
ration&gt;&lt;mes:JMSPriority&gt;5&lt;/mes:JMSPriority&gt;&lt;mes:JMSRedelivered
&gt;false&lt;/mes:JMSRedelivered&gt;&lt;mes:JMSTimestamp&gt;1131034262172&lt;/me
s:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;mes:Body&gt;&lt;
mes:Text&gt;EndPointExpireAllWithMessageForward(NP):0&lt;/mes:Text&gt;&lt;
/mes:Body&gt;&lt;/mes:WLJMSMessage&gt;> <>

SAFエージェント・ログ・ファイルの管理

SAFエージェントを作成したら、古いログ・メッセージを別のファイルに移動(ローテーション)するための条件を構成できます。また、ログ・ファイルのデフォルト名を変更することも可能です。

メッセージ・ログ・ファイルのローテーション

古いログ・メッセージから新しいファイルへのローテーションは、ファイルが特定のサイズになったときに実施したり、指定した時間間隔で実施したりできます。また、古いログ・メッセージのローテーションを実施しないことも選択できます。この場合は、すべてのメッセージが単一のファイルに蓄積され、ファイル・サイズが大きくなり過ぎたときにはその中身を削除する必要があります。

ログ・ファイルが特定のサイズに達したときに古いメッセージをローテーションすることを選択した場合は、最小限のファイル・サイズを指定する必要があります。ログ・ファイルが指定の最小サイズに到達すると、サーバーが次回ファイル・サイズをチェックする際に、現在のログ・ファイルの名前が変更され、それ以降のメッセージを保存するための新規ログ・ファイルが作成されます。

定期的な間隔で古いメッセージをローテーションすることを選択した場合は、最初の新しいログ・ファイルが作成された時間と、そのファイルの名前が変更されて置換されるまでの時間間隔を指定する必要があります。

SAFエージェントのログ・ファイルのローテーションを設定する方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAFエージェントのJMSメッセージのログ・ローテーションの構成を参照してください。

メッセージ・ログ・ファイル名の変更

ローテーションされたログ・ファイルは、作成順に番号付けされます。たとえば、7番目にローテーションされたファイルはmyserver.log00007という名前になります。トラブルシューティングを容易にするため、ログ・ファイルの名前を変更したり、ログ・ファイルがローテーションされた日時を含めたりできます。ログ・ファイル名に日時を含めるには、ファイル名にjava.text.SimpleDateFormat変数を追加します。各変数はパーセント記号(%)で囲みます。ログ・ファイルの名前の変更時に相対パス名を指定した場合、サーバーのルート・ディレクトリが基準と解釈されます。

SAFエージェントのメッセージ・ログ・ファイル名を変更する方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAFエージェントのJMSメッセージのログ・ローテーションの構成を参照してください。

保存するメッセージ・ログ・ファイル数の制限

古いメッセージ・ログ・ファイルをファイル・サイズまたは時間間隔に基づいてローテーションする場合は、古いメッセージの格納のためにSAFエージェントが作成するログ・ファイルの数を制限することもできます。この制限に達すると、最も古いログ・ファイルが削除され、最新の接尾辞の付いた新しいログ・ファイルが作成されます。このオプションを有効にしない場合は新しいファイルが無限に作成されていくため、必要に応じてこれらのファイルを手動で削除する必要があります。

SAFエージェントのメッセージ・ログ・ファイル数を制限する方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAFエージェントのJMSメッセージのログ・ローテーションの構成を参照してください。

JMS SAF関連のよくある質問

この節では、WebLogicドメインでのJMS SAFの動作に関するよくある質問とその回答を示します。

Q. JMSプロデューサに対して、SAFではどの送信エージェントが選択されますか。

A. JMSプロデューサに対する送信エージェントの選択には、WebLogic Serverクラスタのロード・バランシング機能が使用されます。あるJMSプロデューサに対してSAFエージェントが選択されると、そのJMSプロデューサの稼動期間中、選択されたエージェントが使用されます。

Q. JMSクライアントはどのようにしてSAF宛先を検索しますか。

A. SAF宛先は、SAF JMS宛先でない宛先と同じ方法で検索できます。

- JNDIでSAF宛先をルックアップします。

- createDestination APIを使用します。
JMSクライアントは、createDestination APIを使用して、JMS宛先を検索することもできます。この場合、JMSモジュール内のSAF宛先名を使用する必要があります。名前は、感嘆符(!)で区切られた完全修飾名でなければなりません。例:

<EAR Name>!<JMS Module Name>!<ImportedDestinationsName>!<SAFQueue or SAFTopic Name>

Q. JMS SAFインポート済み宛先へのJMSプロデューサの送信メッセージをJMS順序単位に関連付けることはできますか。

A. はい。順序単位機能、パス・サービスの構成の詳細は、Oracle WebLogic Server JMSアプリケーションの開発のメッセージ順序単位の使用を参照してください。

Q. なぜ、送信側がクラスタである場合には、JMS順序単位に関連付けられたJMSプロデューサでメッセージの送信が失敗するのですか。

A. SAFでJMS順序単位を使用するには、送信側クラスタでパス・サービスを構成する必要があります。パス・サービス機能の詳細は、Oracle WebLogic Server JMSリソースの管理のWebLogicパス・サービスの使用を参照してください。

Q. 同じ順序単位内の別々のJMSプロデューサでは、同じ送信エージェントが選択されますか。

A. はい。JMS SAFでは、同じ送信エージェントにルーティングするためにパス・サービスが使用されます。

Q. JMS SAFインポート済み宛先にコンシューマをアタッチできますか。

A. いいえ。JMSコンシューマは、実際のJMS宛先にしかアタッチできません。

Q. 分散宛先をインポートすることはできますか。

A. はい、JNDI名を使用してインポートできます。

Q. 送信側クラスタにインポートされた分散宛先に対しては、どこで、サーバー・アフィニティを有効化、ロード・バランシングを有効化、および転送の遅延の各パラメータを構成するのですか。

A. サーバー・アフィニティを有効化およびロード・バランシングを有効化の各パラメータは、JMSプロデューサが作成されたJMS接続ファクトリで構成します。JMS接続ファクトリでJMS接続が作成され、JMS接続でJMSセッションが作成され、JMSセッションでJMSプロデューサが作成されます。転送の遅延のパラメータは、JMS分散宛先で構成します。

Q. 送信側クラスタまたはサーバーのJMS接続ファクトリで構成された、サーバー・アフィニティを有効化およびロード・バランシングを有効化の各パラメータは、JMS宛先のある受信側クラスタまたはサーバーにも適用されますか。

A. はい。送信側クラスタまたはサーバーのこれらの属性は、受信側クラスタまたはサーバーにも適用されます。分散宛先に対するサーバー・アフィニティとロード・バランシングの詳細は、Oracle WebLogic Server JMSリソースの管理の分散宛先リソースの構成を参照してください。

Q. 送信側クラスタ上のXAトランザクションはJMS SAF境界を越えますか。つまり、受信側は送信側からのトランザクションに参加できますか。

A. いいえ。メッセージはトランザクションがコミットされるまで転送されません。

Q. JMS SAFでは、JMSセッション内で送信側からJMS宛先に送信されたメッセージの順序は保持されますか。

A. はい。

Q. SAFリモート・コンテキストには、プリンシパル名またはユーザー名とパスワードを構成する必要がありますか。

A. SAFリモート・コンテキストは、自分の好きなように構成できます。ユーザー名とパスワードはJMSモジュールに格納され、プリンシパル名は送信側ドメインで構成されている資格証明マッピング・プロバイダに格納されます。

Q. UDDのメンバーシップが変化されて、そして、今、SAFは適切に適切に動作しないようです。何が起こったのでしょうか。

A. プロセスの通信対象となるすべてのドメインに対して、クロス・ドメイン・セキュリティの構成が統一されていることを確認してください。1つのドメインにクロス・ドメイン・セキュリティが構成されている場合は、すべてのドメインにクロス・ドメイン・セキュリティを構成する(または、適切な例外リストに含める)必要があります。Oracle WebLogic Server JTAアプリケーションの開発のドメイン間およびドメイン内トランザクションのセキュアな通信の構成を参照してください。

Oracleの法律上の注意点

コピーライト

Copyright © 1994-2017, Oracle and/or its affiliates. All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

Pre-General Availability (一般提供前)版のドキュメントについて

このドキュメントがPre-General Availability (一般提供前)版の場合:

このドキュメントはPre-General Availability (一般提供前)版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のPre-General Availability (一般提供前)版のドキュメントについて

このドキュメントが非公開のPre-General Availability (一般提供前)版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のPre-General Availability Trial Agreement (Pre-GAトライアル契約)のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle Partner Network Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティ

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。