Oracle® Fusion Middleware Oracle WebLogic Server ストア アンド フォワードのコンフィグレーションと管理 11g リリース 1 (10.3.1) B55551-01 |
|
![]() 戻る |
![]() 次へ |
以下の節では、WebLogic ストア アンド フォワード (SAF) サービスのさまざまな概念と機能を紹介し、それらと WebLogic Server との連携の仕組みについて説明します。
この章では、読者が WebLogic Server のその他の管理概念に精通していることを前提としています。
以下の節では、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 の使用」を参照してください。
メッセージの格納と転送のプロセスには、ローカルの送信側とリモートの受信エンドポイントという 2 つの側面があります。SAF エージェントは、ローカルの送信エンドポイントとリモートの受信エンドポイントの間でメッセージの格納と転送を行います。SAF エージェントは、送信機能または受信機能のみを持つようにコンフィグレーションすることも、両方の機能を持つようにコンフィグレーションすることもできます。
JMS SAF では、JMS メッセージの送信側に送信エージェントのみが必要になります。一方、WSRM SAF では、送信エージェントと受信エージェントの両方が必要になります。
送信エージェント - JMS メッセージおよび WSRM で使用されます。送信エージェントは、メッセージの永続性が必要になる場合に、永続ストレージへのメッセージの格納、受信側へのメッセージの転送、確認応答が時間内に戻らなかった場合のメッセージの再送信を行います。
受信エージェント - WSRM のみで使用されます。受信エージェントは、送信エージェントが送信したメッセージのうち重複するものの検出および消去と、最終的な送り先へのメッセージの配信を行います。
注意 : JMS メッセージの場合は、受信側のエクスポート済みリモート JMS 送り先に関連付けられた JMS サーバが重複排除を管理します。 |
SAF エージェントはコンフィグレーション可能なオブジェクトであり、メッセージの永続性、ページング パラメータ、およびしきい値と割り当てを管理するという点で JMS サーバに似ています。SAF サービスの動作は、SAF エージェントの以下のコンフィグレーション可能なパラメータによって制御されます。
以下のような、全般的なコンフィグレーション パラメータ。
永続ストレージの選択
メッセージ ページングのデフォルトの設定
配信再試行設定の指定
ウィンドウ サイズの指定
メッセージ確認応答の間隔の指定 (WSRM のみ)
配信再試行の設定、ロギング、およびページングのデフォルトの詳細については、「SAF エージェントの設計」を参照してください。
SAF エージェントの全般的なコンフィグレーション パラメータの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server Administration Console ヘルプ』の「ストア アンド フォワード エージェント : コンフィグレーション : 全般」を参照してください。
SAF エージェントのメッセージ スループットを制御するための、しきい値および割り当てに関するパラメータ。
しきい値および割り当てに関するパラメータの詳細については、「SAF エージェントの設計」を参照してください。
SAF エージェント、リモート エンドポイント、および会話のモニタ機能。SAF エージェントでの着信、転送、および受信メッセージ処理、およびリモート エンドポイントに対する着信および転送メッセージ処理を管理するための機能もあります。
SAF エージェントのモニタ オプションの詳細については、「SAF エージェントのモニタと管理」を参照してください。
SAF インポート済み送り先の JMS メッセージ ロギング機能。JMS メッセージが、SAF エージェントによって格納されてから、最終的にリモートの JMS 送り先に転送されるまでに発生するイベントを外側から見る形になります。
SAF 送り先の JMS メッセージ ロギングのオプションについては、「JMS メッセージの SAF メッセージ ライフ サイクルのロギング」を参照してください。
SAF エージェントをスタンドアロン サーバに割り当てる場合には、サーバのデフォルトの永続ストアを使用することも、明示的にコンフィグレーションされたストアを選択することもできます。しかし、SAF エージェントをクラスタに割り当てる場合には、以下の永続ストアの選択ルールが適用されます。
移行可能な対象を使用しない場合には、クラスタ内の各サーバ インスタンスはデフォルト永続ストアを使用しなければならず、SAF エージェントもデフォルト ストアを使用しなければならない。
JMS メッセージの場合には、SAF 送信エージェントとインポート済み送り先が同じサーバ インスタンス上に存在しなければならない。SAF エージェントがクラスタに割り当てられると、クラスタ内の各サーバ インスタンス上にエージェントが自動的にコンフィグレーションされます。
移行可能な対象に割り当てる場合には、SAF エージェントはカスタム永続ストアを使用しなければならず、さらに、そのカスタム ストアで使用されるものと同じ移行可能な対象に割り当てる必要がある。SAF エージェント、JMS サーバ、およびカスタム ストアは、1 つの移行可能な対象を共有できます。『Oracle Fusion Middleware Oracle WebLogic Server クラスタの使い方』の「クラスタで移行可能な対象について」を参照してください。
注意 : SAF メッセージの一貫性を保持するために、WebLogic Server では既存の SAF エージェントを移行可能な対象に再割り当てすることはできません。代わりに、既存の SAF を削除し、同じ値でコンフィグレーションした新しい SAF を移行可能な対象に割り当てる必要があります。 |
JMS ストア アンド フォワードでは、1 つの送信エージェントを使用して、高可用性を備えた JMS メッセージ生成を行います。たとえば、ローカルのサーバ インスタンスに接続された JMS メッセージ プロデューサは、メッセージ送信時にリモートの JMS 送り先が一時的に使用できない場合でも、そのリモート送り先に確実にメッセージを転送できます。JMS SAF は JMS アプリケーションからは透過的なので、JMS クライアント コードは既存の JMS API を使用して、リモート送り先にアクセスできます。詳細については、「JMS メッセージに対する SAF のコンフィグレーション」を参照してください。
インポート済み JMS 送り先に対する SAF 送信エージェントによってクラスタ内の依存する JMS アプリケーションに対してシングル ポイント障害が発生しないように、SAF エージェントをクラスタ内の正常なサーバ インスタンスに移行するよう WebLogic Server をコンフィグレーションできます。「可用性の高いメッセージングのための移行可能な SAF エージェント」を参照してください。
WSRM では、ローカル サーバ インスタンスでコンフィグレーションされた SAF 送信エージェント、およびリモート サーバ インスタンスでコンフィグレーションされた SAF 受信エージェントのペアが使用されます。これにより、別々のサーバ インスタンス上で動作する 2 つの Web サービスは、ソフトウェア コンポーネント、システム、またはネットワークに障害がある場合でも確実に通信できるようになります。具体的には、ソース エンドポイントから送り先エンドポイントに送信されたメッセージは 1 つまたは複数の配信保証に基づいて確実に配信され、配信されない場合には必ずエラーが送出されます。
詳細については、『Oracle Fusion Middleware Oracle WebLogic Server JAX-RPC を使用した Web サービスの高度な機能のプログラミング』の「Web サービスの信頼性のあるメッセージングの使用」を参照してください。
SAF サービスでは、クロス ドメイン セキュリティをコンフィグレーションする必要はありません。ただし、1 つのドメインにクロス ドメイン セキュリティがコンフィグレーションされていて、共通分散送り先のメンバシップが SAF の変更を介してインポートされる場合には、プロセスの通信対象となるすべてのドメインに対して、クロス ドメイン セキュリティをコンフィグレーションする必要があります。ベスト プラクティスは、プロセスで使用されるすべてのドメインに関してクロス ドメイン セキュリティのコンフィグレーションを統一することです。つまり、すべてのドメインがクロス ドメイン セキュリティを使用する (または、適切な例外リストに含まれる) か、どのドメインについてもクロス ドメイン セキュリティを有効にしないかのいずれかにします。『Oracle Fusion Middleware Oracle WebLogic Server のセキュリティ』の「WebLogic ドメインのセキュリティのコンフィグレーション」を参照してください。
SAF サービスは、WebLogic Server 9.x 以降のドメイン間で JMS メッセージまたは WSRM メッセージを転送する場合に使用します。
SAF サービスによるメッセージの配信対象間の関係は、以下のとおりです。
2 つのスタンドアロンのサーバ インスタンス間
クラスタ内のサーバ インスタンス間
ドメイン内の 2 つのクラスタ間
異なるドメイン間
SAF サービスを使用しない場合は、以下のとおりです。
以前のリリースの WebLogic Server にメッセージを転送する場合
サード パーティの JMS 製品 (MQSeries など) と相互運用する場合
これらのタスクでは、WebLogic メッセージング ブリッジを使用します。『Oracle Fusion Middleware Oracle WebLogic Server メッセージブリッジのコンフィグレーションと管理』の「メッセージング ブリッジについて」を参照してください。
要求に応答を返すために JMSReplyTo
で一時的な送り先を使用する場合
なお、JMS SAF を使用する場合、アプリケーションはリモート サーバから直接メッセージを受信することしかできません。それも、リモート サーバが使用可能な場合に限られます。
ドメインに SAF サービスを実装するには、以下のタスクを行う必要があります。
送信側クラスタまたはサーバ インスタンスで、SAF エージェントをコンフィグレーションします。SAF エージェントは、以下のいずれかの方法で作成できます。
WebLogic Server Administration Console を使用する。これにより、使用している環境の SAF エージェントをコンフィグレーション、変更、対象指定、モニタ、および削除できます。SAF エージェントのコンフィグレーション タスクの手順については、『Oracle Fusion Middleware Oracle WebLogic Server Administration Console ヘルプ』の「ストア アンド フォワード エージェントの作成」を参照してください。
WebLogic Java Management Extensions (JMX) を使用する。これにより、SAF エージェントを作成および管理するための SAFAgentMBean
および SAFAgentRuntimeMBean
の各 MBean にアクセスできます。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server JMX によるカスタム管理ユーティリティの開発』の「WebLogic Server サブシステム MBean の概要」を参照してください。
WebLogic Scripting Tool (WLST) を使用する。これにより、JMS サーバと JMS システム リソースを作成および管理できます。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server JMS のコンフィグレーションと管理』の「WLST を使用した JMS サーバと JMS システム リソースの管理」を参照してください。
WSRM を使用する場合は、送信側で送信機能と受信機能の両方の機能を持つ SAF エージェントをコンフィグレーションした場合でも、受信側のクラスタまたはサーバ インスタンスで受信機能を持つ SAF エージェントをコンフィグレーションする必要があります。
SAF エージェントのコンフィグレーション時には、サーバのデフォルト ストアをそのまま使用することもできますし、SAF メッセージ専用のストアをコンフィグレーションする場合はストアをコンフィグレーションすることもできます。SAF エージェントをクラスタに割り当てる場合には、サーバのデフォルト ストアをそのまま使用しなければなりません。また、SAF エージェントを移行可能な対象に割り当てて可用性を高めることもできます。「SAF エージェントをクラスタに割り当てる場合の永続ストアのルール」を参照してください。
永続ストアの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server のサーバ環境設定』の「WebLogic 永続ストアの使い方」を参照してください。
WebLogic JMS の場合は、JMS モジュールで SAF インポート済み送り先、SAF コンテキスト処理、および SAF エラー処理 (省略可能) の各オブジェクトをコンフィグレーションします。「JMS メッセージに対する SAF のコンフィグレーション」を参照してください。
送信側がクラスタで、JMS プロデューサがメッセージ順序単位に関連付けられている場合は、JMS メッセージのパス サービスをコンフィグレーションします。メッセージ順序単位を使用することで、JMS メッセージ プロデューサが順序付けされたメッセージを 1 つの単位にグループ化することが可能になります。JMS 順序単位の詳細については、『Oracle Fusion Middleware Oracle WebLogic Server JMS プログラマーズ ガイド』の「メッセージ順序単位の使用」を参照してください。
パス サービスは、メッセージのグループとメッセージング リソース (SAF エージェントなど) との間のマッピングを格納できる永続マップです。パス サービスのコンフィグレーションの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server JMS のコンフィグレーションと管理』の「WebLogic パス サービスの使用」を参照してください。
以下の節では、メッセージを転送するために SAF エージェントを設計およびコンフィグレーションする場合に役立つ情報について説明します。
SAF の信頼性は、時間に基づいています。存続時間のパラメータを使用して、メッセージが SAF エージェントによって確実に配信されなければならない期間をコンフィグレーションできます。コンフィグレーションされた存続時間が経過すると、送信エージェントはメッセージをストレージから削除し、受信側に対するメッセージの再送信の試行を中止します。存続時間が経過したときに、配信できなかったメッセージをどのように処理するかは、アプリケーション側の設定で決まります。
失敗したメッセージ配信の JMS における処理方法については、「SAF エラー処理」を参照してください。
メッセージ配信の失敗で考えられる理由は、以下のとおりです。
ネットワークの停止があった
エンドポイントが存在しない (コンフィグレーションされていない)
エンドポイントが停止している
エンドポイントの割り当てエラーが発生した
セキュリティによって拒否された
必要な QOS がサポートされていない
WSRM 会話がタイムアウトになった (会話があまりに長い間アイドル状態にある)
ロギングのパラメータが有効になっている場合、失敗したメッセージごとに、送信エージェントによってメッセージがサーバ ログに記録されます。これは、アプリケーションで独自の失敗処理が定義されていない場合や、アプリケーションで失敗処理を完了できない場合の代わりの方法として使用できます。Web Logic ロギングの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server ログ ファイルのコンフィグレーションとログ メッセージのフィルタ処理』の「WebLogic ロギング サービスについて」を参照してください。
メッセージを転送するために、送信エージェントは受信側に接続する必要がありますが、接続が使用不能になっている場合もあります。メッセージ送信の試行が失敗した場合には、送信エージェントは成功するまで再試行しなければなりません。同様に、必要な QOS が「必ず 1 回」または「1 回以上」である場合には、そのメッセージの確認応答を受信するまで、送信エージェントはメッセージを送信し続ける必要があります。
試行の頻度、および連続する 2 回の試行の間隔を制御するには、再試行遅延の基数、再試行遅延の乗数、および最大再試行遅延の各パラメータのデフォルト値をコンフィグレーションします。再試行遅延の乗数パラメータの値は 1 以上に設定する必要があり、最大再試行遅延パラメータの値は再試行遅延の基数パラメータの値以上に設定する必要があります。デフォルトでは、再試行遅延の乗数パラメータの値は 1 に設定されています。この場合は、再試行遅延の基数パラメータの値で定義された一定間隔が、連続する 2 回の試行の間隔に使用され、最大再試行遅延パラメータの値は無視されます。再試行遅延の乗数パラメータに 1 より大きい値が設定されている場合、再試行間隔の調整に指数関数的なバックオフ アルゴリズムが使用されます。
遅延は、再試行遅延の基数パラメータの値から始まり、指数関数的に長くなります。つまり、試行のたびに再試行遅延の乗数パラメータの値で乗算されていきます。最大再試行遅延パラメータの値に達すると、遅延時間はそれ以上長くなりません。試行が成功すると、再試行遅延の乗数パラメータの対象は、再試行遅延の基数パラメータの値にリセットされます。
SAF エージェントの配信再試行パラメータの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server Administration Console ヘルプ』の「ストア アンド フォワード エージェント : コンフィグレーション : 全般」を参照してください。
永続メッセージは、受信側に正常に転送され、確認応答されるまで送信側の永続ストアに保存されます。一方、配信が保留になっている非永続メッセージは送信側のメモリ内に存在し、すべての履歴記録は受信側のメモリ内に存在します。リモート側が長時間使用不能になっている場合には、保留中の非永続メッセージによって送信側サーバのメモリがすべて使用されてしまい、サーバが停止してしまうこともあります。各 SAF エージェントの割り当てをコンフィグレーションすることで、メモリ不足からサーバを保護できます。割り当てを超過しそうになると、SAF エージェントは新しい要求を拒否します。
割り当てに達する前に、メッセージまたは履歴記録をページング ディレクトリにページングするように、SAF エージェントをコンフィグレーションすることもできます。ページングは、SAF エージェントのコンフィグレーションでしきい値として指定された一定の条件が満たされるとトリガされます。メッセージまたは履歴記録用の永続ストアもページングに使用されます。
SAF エージェントのしきい値および割り当てに関するパラメータとその関係は、JMS 送り先や JMS サーバのしきい値および割り当てに関するパラメータと同じです。
SAF エージェントのしきい値および割り当てに関するパラメータの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server Administration Console ヘルプ』の「ストア アンド フォワード エージェント : コンフィグレーション : しきい値と割り当て」を参照してください。
WebLogic Server インスタンスが再起動すると、そのサーバ インスタンスが停止する前に送信されなかったメッセージが、サーバの永続ストアから回復されます。送信エージェントは、リモート側がまだ期限切れになっていなければ、それらのメッセージをリモート側に送信しようとします。同様に、受信側でも再起動時に履歴記録が回復されます。
インポート済み JMS 送り先に対する SAF 送信エージェントによってクラスタ内の依存する JMS アプリケーションに対してシングル ポイント障害が発生しないように、SAF エージェントをクラスタ内の正常なサーバ インスタンスに自動または手動で移行するよう WebLogic Server をコンフィグレーションできます。
サービスレベルの移行は、JMS サーバ、SAF エージェント、永続ストアなどの JMS 関連の固定サービスをグループ化した「移行可能な対象」ごとに制御されます。移行可能な対象は、クラスタ内のいずれか 1 つの物理サーバでホストされます。ホストされているサービスは、ヘルス モニタ サブシステムを使用することで、現在異常のあるホスト サーバから正常なアクティブ サーバに自動的に移行されます。移行可能な対象によってホストされる JMS サービスは、サーバ障害への対処として、また定期的なメンテナンスの一環として手動で移行できます。移行可能な対象を移行すると、その対象によってホストされているすべての固定サービスも移行されます。
『Oracle Fusion Middleware Oracle WebLogic Server クラスタの使い方』の「サービスの移行」を参照してください。