ナビゲーションをスキップ

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

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

JMS メッセージに対する SAF のコンフィグレーション

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

以下の節では、コンフィグレーションの詳細について説明します。

 


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

このリリースでは、JMS コンフィグレーション (キュー、トピック、接続ファクトリなど) は WebLogic ドメインの外部のモジュール記述子ファイルに格納されます。これらのファイルは、weblogic-jmsmd.xsd スキーマに準拠する XML ドキュメントによって定義されます。JMS モジュールには、WebLogic JMS での JMS メッセージの格納と転送を可能にする、SAF リソースのコンフィグレーションも含まれます。JMS モジュールの詳細については、『WebLogic JMS のコンフィグレーションと管理』の「JMS リソースのコンフィグレーションについて」を参照してください。

JMS SAF リソースがコンフィグレーションされると、コンフィグレーションされた SAF 送信エージェントによって、受信側へのメッセージの転送、確認応答が時間内に戻らなかった場合のメッセージの再送信、およびメッセージの永続性が必要になる場合の永続ストレージへのメッセージの格納が行われます。

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

JMS モジュールに対して SAF リソースをコンフィグレーションする場合には、以下のリソースをコンフィグレーションする必要があります。

SAF 送り先

SAF 送り先は、ローカルのサーバ インスタンスまたはクラスタにインポートされた、リモートのサーバ インスタンスまたはクラスタの JMS キューまたはトピックを表します。これにより、ローカルのサーバ インスタンスまたはクラスタは、リモートのサーバ インスタンスまたはクラスタにメッセージを送信できるようになります。送り先の SAF エクスポートのパラメータが明示的に無効になっていない限り、デフォルトでは、すべての JMS 送り先が自動でエクスポートされます。

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

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

SAF リモート コンテキスト

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

SAF エラー処理

SAF エラー処理リソースでは、SAF サービスがリモート送り先へのメッセージ転送に失敗した場合に行うアクションを定義します。コンフィグレーション オプションには、エラー処理ポリシー (リダイレクト、ログ、破棄、または常に転送)、ログ フォーマット、および送信の再試行に関するパラメータが含まれます。SAF エラー処理リソースは、インポート済み送り先を使用する場合でも必須ではありませんが、ベスト プラクティスとしてお勧めします。

 


JMS SAF リソースの作成

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

 


JMS モジュールで SAF をコンフィグレーションする主な手順

Administration Console を使用して、リモート送り先に JMS メッセージを転送するために SAF リソースをコンフィグレーションする主な手順は次のとおりです。

  1. 送信側で SAF 送信エージェントをコンフィグレーションします。Administration Console オンライン ヘルプの「ストア アンド フォワード エージェントの作成」を参照してください。
  2. 必要に応じて、送信側と受信側の両方で JMS 送り先リソースを格納する JMS システム モジュールを作成します。Administration Console オンライン ヘルプの「JMS システム モジュールのコンフィグレーション」を参照してください。
  3. 詳細については、『WebLogic JMS のコンフィグレーションと管理』の「JMS システム リソース モジュール」を参照してください。

  4. 送信側の JMS モジュールで、リモート キューまたはトピックのエクスポート元である受信側の URL を定義する SAF リモート コンテキスト リソースをコンフィグレーションします。手順については、Administration Console オンライン ヘルプの「SAF リモート コンテキストの作成」を参照してください。
  5. 必要に応じて、送信側の JMS モジュールで、SAF サービスがリモート送り先へのメッセージ転送に失敗した場合に行うアクションを定義する SAF エラー処理コンフィグレーションをコンフィグレーションします。手順については、Administration Console オンライン ヘルプの「SAF エラー処理リソースの作成」を参照してください。
  6. 送信側の JMS モジュールで、SAF インポート済み送り先をコンフィグレーションし、それをモジュールで作成した SAF リモート コンテキストおよび SAF エラー処理リソースに関連付けます。手順については、Administration Console オンライン ヘルプの「SAF インポート済み送り先の作成」を参照してください。
  7. 作成した SAF インポート済み送り先を再び開いて、受信側のリモート キューまたはトピックを表す SAF キューまたはトピックをコンフィグレーションします。SAF キューまたはトピックは、リモート キューまたはトピックと同じ JNDI 名を使用します。手順については、以下を参照してください。
  8. デフォルトでは、すべての JMS 送り先は、SAF インポート済み送り先としてアクセス可能です。ただし、送り先の SAF エクスポート ポリシーのパラメータ値を「なし」に変更することで、その送り先をエクスポートしないように明示的に指定できます。これで、リモート ユーザは、ストア アンド フォワードを使用して送り先にメッセージを送信できなくなります。

 


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

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

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

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

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

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

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

クラスタ内では、JMS プロデューサをメッセージ順序単位に関連付けることができます。これにより、スタンドアロンのメッセージ プロデューサまたは 1 つのプロデューサとして機能するプロデューサのグループは、処理順序に関して複数のメッセージを 1 つの単位にグループ化できるようになります。JMS 順序単位の詳細については、『WebLogic JMS プログラマーズ ガイド』の「Using Message Unit-of-Order」を参照してください。

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

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

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

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

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

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

JMS メッセージ圧縮の使用方法の詳細については、『WebLogic JMS のコンフィグレーションと管理』の「メッセージの圧縮」を参照してください。

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

分散送り先に対する SAF

リモート エンドポイントは分散送り先であってもかまいません。リモート分散送り先へのメッセージは、スタンドアロンのリモート送り先に転送されるメッセージと同様に格納および転送されます。SAF 送信エージェントは、一般的な方法と同じ方法で分散送り先のメンバーにメッセージをルーティングします。分散送り先のコンフィグレーションの詳細については、『WebLogic JMS のコンフィグレーションと管理』の「分散送り先のコンフィグレーション」を参照してください。

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

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

JMS 一時送り先の使用方法の詳細については、『WebLogic JMS プログラマーズ ガイド』の「Using Temporary Destinations」を参照してください。

JMS メッセージの保護

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

 

フッタのナビゲーションのスキップ  ページの先頭 前 次