WebLogic ストア アンド フォワードのコンフィグレーションと管理

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

ストア アンド フォワード サービスについて

以下の節では、WebLogic ストア アンド フォワード (SAF) サービスのさまざまな概念と機能を紹介し、それらと WebLogic Server との連携の仕組みについて説明します。

この章では、読者が WebLogic Server のその他の管理概念に精通していることを前提としています。

 


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 では、送信エージェント受信エージェントの両方が必要になります。

SAF エージェントのコンフィグレーション パラメータ

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

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 Services Reliable Messaging (WSRM) での SAF の使用

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

詳細については、『WebLogic Web サービス プログラ マーズ ガイド (応用編)』の「Web サービスの信頼性のあるメッセージングの使用」を参照してください。

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

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

 


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

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

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

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

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

 


基本的な SAF サービスのコンフィグレーション

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

  1. 送信側クラスタまたはサーバ インスタンスで、SAF エージェントをコンフィグレーションします。SAF エージェントは、以下のいずれかの方法で作成できます。
    • WebLogic Server Administration Console を使用する。これにより、使用している環境の SAF エージェントをコンフィグレーション、変更、対象指定、モニタ、および削除できます。SAF エージェントのコンフィグレーション タスクの手順については、Administration Console オンライン ヘルプの「ストア アンド フォワード エージェントの作成」を参照してください。
    • WebLogic Java Management Extensions (JMX) を使用する。これにより、SAF エージェントを作成および管理するための SAFAgentMBean および SAFAgentRuntimeMBean の各 MBean にアクセスできます。詳細については、『JMX によるカスタム管理ユーティリティの開発』の「WebLogic Server サブシステム MBean の概要」を参照してください。
    • WebLogic Scripting Tool (WLST) を使用する。これにより、JMS サーバと JMS システム リソースを作成および管理できます。詳細については、『WebLogic JMS のコンフィグレーションと管理』の「WLST を使用した JMS サーバと JMS システム モジュール リソースの管理」を参照してください。
  2. WSRM を使用する場合は、送信側で送信機能と受信機能の両方の機能を持つ SAF エージェントをコンフィグレーションした場合でも、受信側のクラスタまたはサーバ インスタンスで受信機能を持つ SAF エージェントをコンフィグレーションする必要があります。
  3. SAF エージェントのコンフィグレーション時には、サーバのデフォルト ストアをそのまま使用することもできますし、SAF メッセージ専用のストアをコンフィグレーションする場合はストアをコンフィグレーションすることもできます。SAF エージェントをクラスタに割り当てる場合には、サーバのデフォルト ストアをそのまま使用しなければなりません。また、SAF エージェントを移行可能な対象に割り当てて可用性を高めることもできます。「SAF エージェントをクラスタに割り当てる場合の永続ストアのルール」を参照してください。
  4. 永続ストアの詳細については、『WebLogic Server 環境のコンフィグレーション』の「WebLogic 永続ストアの使い方」を参照してください。

  5. WebLogic JMS の場合は、JMS モジュールで SAF インポート済み送り先、SAF コンテキスト処理、および SAF エラー処理 (省略可能) の各オブジェクトをコンフィグレーションします。「JMS メッセージに対する SAF のコンフィグレーション」を参照してください。
  6. 送信側がクラスタで、JMS プロデューサがメッセージ順序単位に関連付けられている場合は、JMS メッセージのパス サービスをコンフィグレーションします。メッセージ順序単位を使用することで、JMS メッセージ プロデューサが順序付けされたメッセージを 1 つの単位にグループ化することが可能になります。JMS メッセージ順序単位の詳細については、『WebLogic JMS プログラマーズ ガイド』の「メッセージ順序単位の使用」を参照してください。
  7. パス サービスは、メッセージのグループとメッセージング リソース (SAF エージェントなど) との間のマッピングを格納できる永続マップです。パス サービスのコンフィグレーションの詳細については、『WebLogic JMS のコンフィグレーションと管理』の「WebLogic パス サービスの使用」を参照してください。

 


SAF エージェントの設計

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

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

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

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

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

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

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

配信再試行の設定

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

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

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

SAF エージェントの配信再試行パラメータの詳細については、Administration Console オンライン ヘルプの「ストア アンド フォワード エージェント : コンフィグレーション : 全般」を参照してください。

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

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

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

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

SAF エージェントのしきい値および割り当てに関するパラメータの詳細については、Administration Console オンライン ヘルプの「ストア アンド フォワード エージェント : コンフィグレーション : しきい値と割り当て」を参照してください。

起動時の回復

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

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

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

サービスレベルの移行は、JMS サーバ、SAF エージェント、永続ストアなどの JMS 関連の固定サービスをグループ化した「移行可能な対象」ごとに制御されます。移行可能な対象は、クラスタ内のいずれか 1 つの物理サーバでホストされます。移行可能な対象によってホストされる JMS サービスは、サーバ障害への対処として、また定期的なメンテナンスの一環として手動で移行できます。移行可能な対象を移行すると、その対象によってホストされているすべての固定サービスも移行されます。

『WebLogic Server クラスタ ユーザーズ ガイド』の「移行可能サービス」を参照してください。


ページの先頭       前  次