BEA ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Server > 管理者ガイド > JMS の管理 |
管理者ガイド
|
以下の節では、WebLogic Server の Java Message Service (JMS) を管理する方法について説明します。
JMS は、エンタープライズ メッセージング システムにアクセスするための標準の API です。具体的な WebLogic JMS の機能は以下のとおりです。
次の図は、WebLogic JMS によるメッセージングの仕組みを示しています。
図9-1 WebLogic Server JMS のメッセージング
図で示されているように、WebLogic JMS はプロデューサ アプリケーションからメッセージを受信し、受け取ったメッセージをコンシューマ アプリケーションに配信します。
Administration Console を使用して、以下のコンフィグレーション属性を定義します。
WebLogic JMS では、一部のコンフィグレーション属性に対して、デフォルト値が用意されていますが、それ以外のすべての属性に対しては値を指定する必要があります。コンフィグレーション属性に対して無効な値を指定した場合や、デフォルト値が存在しない属性に対して値を指定しなかった場合は、再起動時に JMS が起動されません。Examples サーバには、サンプル コンフィグレーションとして examplesJMSServer が用意されています。Examples サーバの起動については、『インストール ガイド』の「サンプル サーバ、Pet Store サーバ、および Workshop サンプル サーバの起動」を参照してください。 また、WebLogic Server の起動と JMS のコンフィグレーションでは、基本的な JMS 実装を手動でコンフィグレーションする手順が説明されています。
『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS アプリケーションの移植」で説明されているように、WebLogic JMS アプリケーションを WebLogic Server の以前のリリースから移植する場合、コンフィグレーション情報は自動的に変換されます。
WebLogic JMS 属性をコンフィグレーションするには、以降の節で説明されている手順に従います。また JMS オブジェクトを作成およびコンフィグレーションするには、Administration Console オンライン ヘルプの手順に従います。
WebLogic JMS をコンフィグレーションしたら、アプリケーションで JMS API を使用してメッセージの送受信ができるようになります。WebLogic JMS アプリケーションの開発の詳細については、『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS アプリケーションの開発」を参照してください。
注意: WebLogic JMS のコンフィグレーション プランを支援するために、『WebLogic JMS プログラマーズ ガイド』にはコンフィグレーション チェックリストがあります。このチェックリストを使用して、属性の要件や各種 JMS 機能をサポートするオプションを検討できます。
ドメインの相互運用性を実現するための JMS リソースの命名規則
WebLogic ドメイン内では、サーバ インスタンス、マシン、クラスタ、仮想ホストなど、すべてのリソース タイプにユニークな名前を付ける必要があります。また、これらをドメインと同じ名前にすることはできません。 ユニークな名前を付けるという規則は、単一の WebLogic ドメイン環境であるかマルチドメイン環境であるかに関係なく、すべての JMS リソースにも適用されます。
WebLogic JMS ドメイン内の相互運用性を実現するために、スタンドアロンであるか、サーバ インスタンスがクラスタ化されているかに関係なく、リソースにはユニークな名前を付けるという規則がすべてのコンフィグレーション可能な JMS オブジェクト (JMS サーバ、ストア (ファイルまたは JDBC)、テンプレート、接続ファクトリ、セッション プール、接続コンシューマなど) に適用されます。 たとえば、同じ名前を持つ 2 つの JMS サーバ (myJMSServer など) を、ドメイン内の 2 つの異なるサーバ インスタンスに割り当てることはできません。
JMS のクラスタ化の仕組みに関する詳細については、『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS のクラスタ化のコンフィグレーション」を参照してください。
ただし、以下に示すように、ドメイン内ではユニークな名前を付けるという規則は、ドメイン内の異なる JMS サーバにある JMS キューおよび JMS トピックの送り先には適用されません。
JMS 接続ファクトリという例外を除き、WebLogic JMS リソースの単一ドメイン環境における命名規則は、メッセージング ブリッジを使用して他の WebLogic ドメインにアクセスする場合にドメイン間の相互運用性を実現するためにも適用されます。 この規則は、WebLogic Server の異なるリリースのドメインも対象としています。
たとえば、mydomain61 という名前のバージョン 6.1 ドメインに myserver というサーバ インスタンスがすでにある場合は、mydomain70 というバージョン 7.0 ドメインに myserver という WebLogic Server インスタンスを作成することはできません。 同様に、JMS のサブシステム レベルにおいて、別々のドメインにある場合であっても、名前が同じ 2 つの JMS サーバまたはストアを持つことはできません。
したがって、WebLogic ドメイン間の相互運用を行う際には以下の規則に従う必要があります。
複数の WebLogic ドメインと相互運用するようにメッセージング ブリッジをコンフィグレーションする詳細については、メッセージング ブリッジを使用しての WebLogic Server のさまざまなリリースおよびドメインとの相互運用を参照してください。
WebLogic Server の起動と JMS のコンフィグレーション
以下の節では、WebLogic Server および Administration Console の起動方法を概説し、基本的な JMS 実装をコンフィグレーションする手順について説明します。
WebLogic Server のデフォルトのロールは管理サーバです。ドメインが 1 つの WebLogic Server のみで構成されている場合は、そのサーバが管理サーバになります。ドメインが複数の WebLogic Server で構成されている場合は、まず管理サーバを起動してから、管理対象サーバを起動します。
管理サーバの起動の詳細については、管理サーバの起動を参照してください。
Administration Console は、WebLogic Server に対する Web ベースの管理者フロントエンド (管理者クライアント インタフェース) です。サーバの Administration Console にアクセスする前に、サーバを起動する必要があります。
Administration Console を使用した WebLogic Server のコンフィグレーションの詳細については、Administration Console の起動と使い方を参照してください。
この節では、Administration Console を使用して基本的な JMS 実装をコンフィグレーションする方法について説明します。
ストアのコンフィグレーションの詳細については、ストアのコンフィグレーションを参照してください。
JMS JDBC ストアの使用の詳細については、JMS JDBC ストア についてを参照してください。 JDBC 接続プールのコンフィグレーションの詳細については、Administration Console による JDBC 接続プール、マルチプール、およびデータソースのコンフィグレーションと管理を参照してください。
JMS テンプレートのコンフィグレーションの詳細については、JMS テンプレートのコンフィグレーションを参照してください。
JMS サーバのコンフィグレーションの詳細については、JMS サーバのコンフィグレーションを参照してください。
送り先のコンフィグレーションの詳細については、送り先のコンフィグレーションを参照してください。
接続ファクトリのコンフィグレーションの詳細については、接続ファクトリのコンフィグレーションを参照してください。
JMS サーバは、クライアントの代わりに接続およびメッセージ リクエストを管理するサーバです。JMS サーバを作成するには、Administration Console の [サーバ] ノードを使用して、以下を定義します。
注意: JMS サーバの名前は、ドメイン内でユニークでなければなりません。 詳細については、ドメインの相互運用性を実現するための JMS リソースの命名規則を参照してください。
注意: JMS サーバのデプロイメントは、接続ファクトリやテンプレートのデプロイメントとは異なります。JMS サーバは、単一の WebLogic Server インスタンスまたは移行できる対象 (次項を参照) にデプロイされます。一方、接続ファクトリやテンプレートは、複数のサーバで同時にインスタンス化されます。
JMS サーバを作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「JMS サーバのタスク」を参照してください。
接続ファクトリは、JMS クライアントが JMS 接続を作成することを可能にするオブジェクトです。接続ファクトリでは同時使用がサポートされており、複数のスレッドがオブジェクトに同時にアクセスできます。 WebLogic JMS には、あらかじめコンフィグレーションされたデフォルトの接続ファクトリ weblogic.jms.ConnectionFactory が用意されています。この接続ファクトリは、サーバごとに記述できます。詳細については、Administration Console オンライン ヘルプの「[サーバ] --> [サービス] --> [JMS]」を参照してください。 もしくは、1 つまたは複数の接続ファクトリを定義およびコンフィグレーションし、あらかじめ定義された属性を使用して、よりアプリケーションに適合する接続を作成できます。ただし、各接続ファクトリにユニークな名前が付けられている場合にかぎります。WebLogic Server では、起動時に接続ファクトリが JNDI スペースに追加され、アプリケーションが WebLogic JNDI を使用して接続ファクトリを取り出します。
クラスタ内のあらゆるサーバから送り先へのクラスタワイドで透過的なアクセスを確立するには、各サーバ インスタンスに対してデフォルトの接続ファクトリを有効にするか、1 つまたは複数の接続ファクトリをコンフィグレーションしてクラスタ内の 1 つまたは複数のサーバ インスタンスに割り当てます。これにより、各接続ファクトリを複数の WebLogic Server にデプロイすることが可能となります。 JMS のクラスタ化のコンフィグレーションの詳細については、『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS の管理」を参照してください。
接続ファクトリをコンフィグレーションするには、Administration Console の [接続ファクトリ] ノードを使用して、以下を定義します。
注意: JMS 接続ファクトリの名前は、ドメイン内でユニークでなければなりません。 詳細については、ドメインの相互運用性を実現するための JMS リソースの命名規則を参照してください。
デフォルトの接続ファクトリ weblogic.jms.ConnectionFactory では、すべてのコンフィグレーション属性がデフォルト値に設定されています。デフォルトの接続ファクトリの定義がアプリケーションに適用できる場合は、さらに接続ファクトリのコンフィグレーションを行う必要はありません。
注意: デフォルトの接続ファクトリを使用する場合は、接続ファクトリがデプロイされる可能性のある WebLogic Server を限定できない。特定のサーバを対象にする場合は、新しい接続ファクトリを作成し、適切なサーバ対象を指定してください。
接続ファクトリを作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「接続ファクトリのタスク」を参照してください。
接続ファクトリの属性の中には、動的にコンフィグレーションできるものもあります。動的な属性が実行時に変更された場合、新しく設定された値は新規接続に対してのみ有効になります。既存の接続の動作には影響しません。
送り先では、JMS サーバのキュー (ポイント ツー ポイント) かトピック (Pub/Sub) かが識別されます。JMS サーバを定義したら、各 JMS サーバに 1 つのまたは複数の送り先をコンフィグレーションします。
送り先は、明示的にコンフィグレーションすることも、送り先テンプレートを使用してコンフィグレーションすることもできます。送り先テンプレートを使用すると、似た属性設定を持つ複数の送り先を定義できます (JMS テンプレートのコンフィグレーションを参照)。
注意: また、クラスタ内の単一の分散送り先のメンバーとして、複数の物理的送り先をコンフィグレーションすることもできます。したがって、クラスタ内で 1 つのインスタンスがダウンした場合に、同じ送り先の他のインスタンスで JMS プロデューサおよびコンシューマにサービスを提供できます。 詳細については、分散送り先のコンフィグレーションを参照してください。
送り先を明示的にコンフィグレーションするには、Administration Console の [送り先] ノードを使用して、以下のコンフィグレーション属性を定義します。
注意: JMS 送り先の名前は、ドメイン内でユニークでなければなりません。 詳細については、ドメインの相互運用性を実現するための JMS リソースの命名規則を参照してください。
送り先を作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「JMS 送り先のタスク」を参照してください。
送り先の属性の中には、動的にコンフィグレーションできるものもあります。属性が実行時に変更された場合、変更は新しく配信されるメッセージにのみ適用され、格納されているメッセージには影響しません。
JMS テンプレートを使用することによって、似た属性設定を持つ複数の送り先を効率的に定義できます。JMS テンプレートには、以下のような利点があります。
JMS テンプレートのコンフィグレーション属性を定義するには、Administration Console の [テンプレート] ノードを使用します。JMS テンプレートに対してコンフィグレーションできる属性は、送り先に対してコンフィグレーションされる属性と同じです。これらのコンフィグレーション属性は、それらを使用する送り先によって継承されます。ただし、以下の例外があります。
注意: JMS テンプレートの名前は、ドメイン内でユニークでなければなりません。 詳細については、ドメインの相互運用性を実現するための JMS リソースの命名規則を参照してください。
送り先に対して明示的に定義されない属性には、デフォルト値が割り当てられます。デフォルト値が存在しない場合は、必ず、JMS テンプレートで値を指定するか、または送り先の属性のオーバーライド値として値を指定します。そうしないと、コンフィグレーション情報は不備な状態のままとなります。その場合、WebLogic JMS コンフィグレーションは失敗し、WebLogic JMS が起動しません。
JMS テンプレートを作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「JMS テンプレートのタスク」を参照してください。
特定の送り先に対してソート順を定義するには、送り先キーを使用します。
送り先キーを作成するには、Administration Console の [送り先キー] ノードを使用して、以下のコンフィグレーション属性を定義します。
送り先キーを作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「送り先キーのタスク」を参照してください。
永続ストレージは、永続的なメッセージングに使用されるファイルまたはデータベースで構成されます。ファイル ストアまたはデータベース ストアを作成するには、Administration Console の [ストア] ノードを使用して、以下のコンフィグレーション属性を定義します。
注意: JMS ストアの名前は、ドメイン内でユニークでなければなりません。 詳細については、ドメインの相互運用性を実現するための JMS リソースの命名規則を参照してください。
警告: トランザクション (XA) 接続プールを、JDBC データベース ストアで使用するようにコンフィグレーションすることはできません。 詳細については、JMS JDBC トランザクションを参照してください。
JMS 永続ストレージに格納されているメッセージ数が増加するにつれて、WebLogic Server の初期化に必要なメモリ量も増加します。WebLogic Server の再起動中にメモリ不足で初期化が失敗した場合は、Java 仮想マシン (JVM) のヒープ サイズを、現在 JMS 永続ストレージに格納されているメッセージ数に比例するよう増加させてください。その後、サーバを再起動してください。 ヒープ サイズの設定の詳細については、『BEA WebLogic Server パフォーマンス チューニング ガイド』の「WebLogic Server アプリケーションのチューニング」を参照してください。
ストアを作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「JMS ファイル ストアのタスク」(ファイル ストアに関する情報)、および「JMS JDBC ストアのタスク」(JDBC データベース ストアに関する情報) をそれぞれ参照してください。
JMS では、JDBC を使用することで、指定された JDBC 接続プールからアクセスできるデータベースに永続的メッセージを格納できます。JMS データベースには、JDBC ドライバからアクセスできる任意のデータベースを指定できます。WebLogic JMS では、以下のデータベースに対応する一部のドライバが検出されます。
weblogic.jar ファイル内の weblogic/jms/ddl ディレクトリには、これらのデータベースに対応する JMS DDL ファイルが含まれています。JMS DDL ファイルは実際にはテキスト ファイルであり、JMS データベース テーブルを作成する SQL コマンドを含んでいます。異なるデータベースを使用するには、これらの .ddl ファイルのいずれかをコピーして編集するだけです。
注意: WebLogic Server 配布キットに用意されている JMS サンプルは、PointBase Java データベースで動作するように設定されています。WebLogic Server には、PointBase の評価版が付属しており、demoPool データベースが用意されています。
既存の JMS JDBC ストアが破損している場合、utils.Schema ユーティリティを使用して再生成できます。 詳細については、『WebLogic JMS プログラマーズ ガイド』の「JDBC データベース ユーティリティ」を参照してください。
JMS JDBC ストアで使用するように、トランザクション (XA) 接続プールをコンフィグレーションすることはできません。JMS では 非 XAResource ドライバを使用する JDBC 接続プールを使用しなければなりません (XA ドライバまたは JTS ドライバは使用できません)。JMS は JDBC ドライバの上で XA をサポートします。
これは、WebLogic JMS には独自のリソース マネージャがあるためです。つまり、JMS 自身が XAResource を実装し、(メッセージがデータベースに格納されている場合でも) データベースに依存しないでトランザクションを処理します。従って、JMS とデータベースを使用する場合は (そのデータベースが JMS メッセージが格納されているデータベースと同じでも)、常に 2 フェーズ コミット トランザクションになります。 WebLogic JMS でのトランザクションの使い方については、『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS によるトランザクションの使い方」を参照してください。
パフォーマンスの点から見ると、データベース操作に使用される JDBC 接続プールが JMS キューと同じ WebLogic Server 上にある場合、パフォーマンスが向上する可能性があります。トランザクションは依然として 2 フェーズですが、より小さいネットワーク オーバーヘッドで処理されるためです。また、JMS JDBC ストアではなく JMS ファイル ストアを使用することによっても、パフォーマンスが向上する場合があります。
必要に応じて、JDBC 接続プールのリソースを制限することもできます。以前のバージョンの WebLogic Server では、ACL を使って WebLogic リソースを保護していました。WebLogic Server バージョン 7.0 では、WebLogic リソースへの「アクセス権は誰が持つか」という問いに、セキュリティ ポリシーが答えます。セキュリティ ポリシーは、WebLogic リソースとユーザ、グループ、またはロールの間の関連付けを定義するときに作成します。WebLogic リソースは、セキュリティ ポリシーが割り当てられるまでは保護されません。 すべての WebLogic Server リソースに対してセキュリティを設定する方法に関する詳細については、Administration Console オンライン ヘルプの「WebLogic リソースの保護の設定」を参照してください。
Oracle データベースの場合、Oracle のアドバンスト レプリケーションでは LONG または LONG RAW データ型カラムを持つテーブルはレプリケートできませんが、代わりに主キーの使用が必要になります。 このため、デフォルトの Oracle DDL ファイルを修正して、JMS JDBC ストアで使用される JMSStore テーブルに手動で主キーを追加します。
jms_oracle.ddl ファイルが事前にコンフィグレーションされ、WL_HOME/server/lib/weblogic.jar ファイル (WL_HOME は WebLogic Server がインストールされている最上位ディレクトリ) にある WebLogic CLASSPATH で指定されています。
JMSStore および JMSState テーブルがすでに存在する場合は、これらのテーブルは削除され、修正された DDL ファイルを使用するように再作成される必要があります。
jar xf weblogic.jar /weblogic/jms/ddl
JMS データベースには、自動的に生成され、JMS 内部で使用されるシステム テーブルが 2 つあります。
プレフィックス名は、この永続ストレージ内の JMS テーブルを識別します。ユニークなプレフィックスを指定すると、同一データベース内に複数のストアが存在できます。プレフィックスは、JMS JDBC ストアをコンフィグレーションする際に Administration Console でコンフィグレーションします。プレフィックスは、DBMS で完全修飾名が必要な場合、または 2 つの WebLogic Server の JMS テーブルを区別する必要がある (1 つの DBMS で複数のテーブルを格納できるようにする) 場合にテーブル名の前に付けられます。
警告: データに障害が発生するので、2 つのJMS JDBC ストアを同じデータベース テーブルで使用することはできません。
プレフィックスは、JMS テーブル名に付加されたときに有効なテーブル名になるように、次の形式で指定します。
[[[catalog.]schema.]prefix]JMSStore
catalog は DBMS が参照するシステム テーブルのセットを識別し、schema はテーブル オーナの ID に変換します。たとえば JMS 管理者は、次のようにプロダクション データベースで販売部門用の固有のテーブルを保持できます。
[[[Production.]JMSAdmin.]Sales]JMSStore
このテーブルは、JMSAdmin スキーマの Production カタログに作成され、SalesJMSStore という名前が付けられます。
注意: Oracle などの一部の DBMS ベンダの場合、設定または選択するカタログがないので、このフォーマットは [[schema.]prefix] となります。詳細については、DBMS のマニュアルで完全修飾テーブル名の作成および使用方法を参照してください。
JMS JDBC ストア向けの JDBC 接続プールの推奨設定
WebLogic Server の堅牢な JDBC 接続プールは、データベースに障害が発生した場合、復旧後に自動的に再接続します。このため、WebLogic Server を再起動する必要はありません。この機能を活用し、JMS JDBC ストアをより堅牢にするには、JMS JDBC ストアに関連付けられている JDBC 接続プールの以下の属性をコンフィグレーションします。
TestConnectionsOnReserve="true"
TestTableName="SYSTABLES"
JDBC のデフォルトのテスト テーブル名に関する詳細については、Administration Console オンライン ヘルプの「[JDBC 接続プール] --> [コンフィグレーション] --> [テスト]」で、接続をテストするためのオプションを参照してください。
サーバ セッション プールを使用すると、アプリケーションで複数のメッセージを並行して処理できます。JMS サーバを定義したら、必要に応じて各 JMS サーバに 1 つのまたは複数のサーバ セッション プールをコンフィグレーションします。
Administration Console の [セッション プール] ノードを使用して、以下のコンフィグレーション属性を定義します。
セッション プールを作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「セッション プールのタスク」を参照してください。
セッション プールの属性の中には、動的にコンフィグレーションできるものもありますが、新しい値はセッション プールが再起動されるまで有効になりません。
接続コンシューマは、サーバ セッションを取り出し、メッセージを処理するキュー (ポイント ツー ポイント) またはトピック (Pub/Sub) です。セッション プールを定義したら、各 JMS サーバに 1 つまたは複数の接続コンシューマをコンフィグレーションします。
接続コンシューマをコンフィグレーションするには、Administration Console の [セッション プール] ノードを使用して、以下のコンフィグレーション属性を定義します。
接続コンシューマを作成およびコンフィグレーションする手順と、接続コンシューマの各コンフィグレーション属性の詳細については、Administration Console オンライン ヘルプの「接続コンシューマのタスク」を参照してください。
Administration Console を使用すると、JMS サーバ、接続、セッション、送り先、メッセージ プロデューサ、メッセージ コンシューマ、サーバ セッション プール、恒久サブスクライバといった JMS オブジェクトに関する統計をモニタできます。
サーバの実行中は、JMS 統計は増え続けます。統計は、サーバを再起動するときにのみリセットされます。
注意: WebLogic Server への JMS 接続のモニタについては、Administration Console オンライン ヘルプの「サーバ」を参照してください。
アクティブな JMS サーバ、送り先、およびセッション プールの実行時情報を表示するには、次の手順に従います。
注意: 分散送り先をモニタする場合、そのトピックまたはキュー メンバーに対するプロキシ トピック メンバーまたはシステム サブスクリプションが表示されることがあります。 詳細については、分散送り先のシステム サブスクリプションとプロキシ トピック メンバーのモニタを参照してください。
送り先トピックで動作している恒久サブスクライバを表示するには、次の操作を行います。
分散送り先のシステム サブスクリプションとプロキシ トピック メンバーのモニタ
WebLogic Server 7.0 の特定の JMS コンフィグレーションでは、分散送り先が、トピック メンバーまたはキュー メンバー間に、「プロキシ トピック メンバー」と「システム サブスクリプション」を自動的に作成することがあります。その場合、分散送り先のメンバーをモニタすると、システム サブスクリプションとプロキシ トピック メンバーが MBean の統計に現れ、Administration Console に表示されます。また、分散送り先メンバーの恒久サブスクリプション名とコンシューマ数にも現れます。
システム サブスクリプションとプロキシ トピック メンバーの動作について以下に示します。
以下の節では、WebLogic JMS で利用できる管理パフォーマンス チューニング機能を実装することによって、アプリケーションを最大限に活用する方法について説明します。
以降の節では、WebLogic Server JMS で永続ストレージを使用する場合のチューニング オプションについて説明します。
JMS ファイル ストアの同期書き込みポリシーのコンフィグレーション
WebLogic JMS ファイル ストアでは、デフォルトで同期書き込みを使用することで最新のメッセージの整合性を保証します。通常、同期書き込みを無効にすると、ファイル ストアのパフォーマンスは大幅に向上します。その代わり、オペレーティング システムがクラッシュしたり、ハードウェアの障害が発生したりした場合には、メッセージがトランザクション対応であっても、送信したメッセージが失われたり、同じメッセージを重複して受信したりする可能性があります。オペレーティング システムでは通常のシャットダウン時に未処理の書き込みをすべてフラッシュするので、OS をシャット ダウンするだけではこうしたエラーは発生しません。こうしたエラーは、ビジー状態のサーバの電源を遮断することでエミュレートできます。
注意: ファイル ストアが非永続的なメッセージのディスクへのページングのために排他的に使用されている場合、同期書き込みポリシーは無視されます。
表 9-1 は、WebLogic Server 上で実行されているすべての JMS ファイル ストアの同期書き込みポリシーをコンフィグレーションする際のオプションについて説明しています。
警告: Sun Solaris とは異なり、Windows 上で Direct-Write ポリシーを使用する場合、トランザクション データはオンディスク キャッシュに残され、すぐにはディスクに書き込まれません。この場合、停電などによってオンディスク キャッシュのデータが消えてメッセージが消失したり重複したりするおそれがあり、トランザクションとしては安全とはいえません。Windows で Direct-Write の信頼性を高めるには、ディスクの書き込みキャッシュをすべて無効にするか、バッテリー バックアップのあるキャッシュを使用します。
Windows でハードディスクのオンディスク キャッシュを無効にするには、[スタート|設定|コントロール パネル|システム] を選択し、[ハードウェア] タブで [デバイス マネージャ] ボタンをクリックして [ディスク ドライブ] アイコンをダブルクリックします。次に、ドライブの名前をダブルクリックし、[ディスクのプロパティ] タブの [書き込みキャッシュを有効にする] チェック ボックスのチェックをはずします。ただし、この値を変更できないファイル システムもあります (たとえば、信頼性のあるキャッシュを備えた RAID システム)。
以下の表では、信頼性、パフォーマンス、およびスケーラビリティに関して、同期書き込みポリシーを比較しています。以下のキーポイントを使用して、同期書き込みポリシーの設定に基づいて予想される結果を解釈してください。
メッセージ ページング機能を使用すると、メッセージ負荷のピーク時に仮想メモリを解放できます。この機能は、大きなメッセージ空間を必要とするアプリケーションには非常に有効です。
JMS メッセージ ページングでは、永続メッセージおよび非永続メッセージの両方においてメモリを節約できます。永続メッセージのデータはメモリにキャッシュされますが、それでもメモリを節約する効果はあります。ページングされた永続メッセージは、通常のバッキング ストア (ファイルまたはデータベース) に書き込まれます。ページングされた非永続メッセージは、JMS サーバのメッセージ ページング ストアに書き込まれます。これらは別々にコンフィグレーションできます。
メッセージをページから取り出しても、これに使用されていたすべてのメモリが解放されるわけではありません。メッセージのヘッダとプロパティはメモリに残され、検索、ソート、およびフィルタリングに使用されます。
注意: トランザクション セッションで送信されるメッセージは、セッションがコミットされた後にのみページングできます。 その前には、メッセージはメモリにのみ保持されます。したがって、Java 仮想マシン (JVM) のヒープ サイズは、コミットされるまですべてのアクティブ セッションからのクライアント負荷の予想される最大量に対応できるように適切に調整する必要があります。 ヒープ サイズのチューニングの詳細については、『BEA WebLogic Server パフォーマンス チューニング ガイド』の「Java 仮想マシン (JVM) のチューニング」を参照してください。
ページングがコンフィグレーションされていないか有効になっていない場合は、すべてのメッセージ (永続的なメッセージを含む) がメモリに保持されます。Administration Console を使用して、新規または既存の JMS サーバまたはその送り先に対してページングをコンフィグレーションできます。[JMS|サーバ] ノードの属性を使用して、JMS サーバのページング ストアを指定したり、バイトまたはメッセージ ページングを有効にしたり、ページングを開始および停止するバイト/メッセージの最大および最小しきい値をコンフィグレーションしたりすることができます。
同様に、[送り先] ノードの属性を使用して、JMS サーバでコンフィグレーションされているすべてのトピックおよびキューのバイト/メッセージ ページングをコンフィグレーションできます。送り先は、JMS サーバ用にコンフィグレーションされているページング ストアを使用します。
また、JMS テンプレートを使用して複数の送り先をコンフィグレーションする場合、[テンプレート] ノードの属性を使用して、すべての送り先のページングをすばやくコンフィグレーションできます。特定の送り先に関してテンプレートのページング コンフィグレーションをオーバーライドする場合、どの送り先に対してもページングを有効または無効にできます。
新規の JMS サーバ、テンプレート、および送り先 (トピックまたはキュー) のコンフィグレーション手順については、Administration Console オンライン ヘルプの「JMS サーバ」、「JMS 送り先」、および「JMS テンプレート」を参照してください。
注意: パフォーマンスをチューニングするために、ページングのしきい値をいつでも有効な値に変更できます。 ただし、ページを有効にすると、バイトまたはメッセージしきい値を -1 にリセットしてページングを動的に無効にすることはできません。 ページングの発生を防止するには、バイト/メッセージの最大しきい値を非常に大きな値 (最大値は 263 -1) に設定して、ページングが開始されないようにします。
ページング ストアは、JMS サーバごとに必要です。各 JMS サーバおよびその送り先への非永続メッセージは、この専用のページ ストアを使用してページングされます。JMS JDBC ストアではなく、JMS ファイル ストアを使用することをお勧めします。JDBC ストアは、特にメリットがない上、性能も劣るためです。
新しいページング ストアをコンフィグレーションするには、次の手順に従います。
既存の JMS サーバでページングをコンフィグレーションして有効にするには、次の手順に従います。
ページング ストアのコンフィグレーション手順については、JMS サーバのページング ストアのコンフィグレーションを参照してください。
JMS テンプレートを使用することによって、似た属性設定を持つ複数の送り先 (トピックまたはキュー) を効率的に定義できます。送り先用のテンプレートでページングをコンフィグレーションするには、次の手順に従います。
JMS テンプレートを使用しないで送り先のページングをコンフィグレーションする場合、以下の手順に従います。
注意: JMS テンプレートを使用して送り先をコンフィグレーションした場合、送り先のバイト/メッセージ ページングを明示的にコンフィグレーションすると、テンプレートのコンフィグレーションはオーバーライドされます。 詳細については、JMS テンプレートのページングをオーバーライドする送り先のコンフィグレーションおよびJMS のコンフィグレーションを参照してください。
JMS テンプレートのページングをオーバーライドする送り先のコンフィグレーション
テンプレートの設定をオーバーライドして特定の送り先のページングを有効または無効にする場合、次の手順に従います。
以降の節では、WebLogic Server JMS で使用可能なページング属性について簡単に説明します。
表 9-4 では、JMS サーバでのページングをコンフィグレーションするときに定義するページング属性について説明します。 JMS サーバの属性の詳細、および属性の有効な値とデフォルト値については、Administration Console オンライン ヘルプの「JMS サーバ」を参照してください。
非永続メッセージをページングする永続ストレージの名前。ページング ストアは、永続メッセージまたは恒久サブスクライバ用と同じストアであってはならない。 2 つの JMS サーバは同じページング ストアを使用することができないので、サーバごとに固有のページング ストアをコンフィグレーションする必要がある。 |
表 9-5 では、JMS テンプレートで送り先のページングをコンフィグレーションするときに定義するページング属性について説明します。 JMS テンプレートの属性の詳細、および属性の有効な値とデフォルト値については、Administration Console オンライン ヘルプの「JMS テンプレート」を参照してください。
表 9-6 では、送り先に関するページングをコンフィグレーションするときに定義するページング属性について説明します。 JMS 送り先の属性の詳細、および属性の有効な値とデフォルト値については、Administration Console オンライン ヘルプの「JMS の送り先」を参照してください。
注意: サーバのページングが有効で、送り先レベルのページングが指定した送り先に関して無効になっている場合、サーバのページングが開始されると、送り先のメッセージはページングされます。ただし、送り先レベルのページングが指定した送り先に関して無効になっている場合、送り先のメッセージ数がその送り先の最大しきい値を超えても、メッセージはページングされません。
表 9-7 では、JMS サーバ、テンプレート、および送り先で使用可能なバイトおよびメッセージ ページングのしきい値について簡単に説明します。 JMS サーバ、テンプレート、および送り先の属性の詳細と、属性の有効な値およびデフォルト値については、Administration Console オンライン ヘルプの「JMS サーバ」、「JMS の送り先」、および「JMS テンプレート」を参照してください。
しきい値は、サーバ、テンプレート、および送り先に対して次のように定義します。
WebLogic JMS のフロー制御機能を使うと、メッセージ プロデューサが過負荷になっていると判断したときに、JMS サーバまたは送り先で、メッセージ プロデューサの処理速度を低下させることができます。具体的には、JMS サーバや送り先で、指定のバイト数またはメッセージ数のしきい値を超えた場合に対処機能が作動し、メッセージ フロー (1 秒当たりのメッセージ数) を制限するようプロデューサに指示が出されます。
プロデューサでは、JMS 接続ファクトリを通じてプロデューサ用にコンフィグレーションされた一連のフロー制御属性に基づき、プロダクション率を制限します。プロデューサは、指定した最大フローのメッセージ数から開始して、所定の間隔ごとに (たとえば、60 秒間、10 秒ごとに)、サーバや送り先がまだ対処機能を作動させたままであるかどうかを評価します。各間隔ごとに、サーバや送り先で対処機能が作動したままであれば、プロデューサは、所定のフロー最小値まで、プロダクション率を低下させます。
プロデューサで処理速度が低下するにつれ、しきい値条件は徐々に補正されます。これはサーバや送り先の対処機能が解除されるまで行われます。この時点で、プロデューサはプロダクション率を上げることができるようになりますが、必ずしも最大限まで上げる必要はありません。実際には、メッセージ フローは、所定の最大フローに達してフロー制御の対象でなくなる時点までは、(サーバや送り先が対処機能を解除していても) 引き続き制御されます。
プロデューサは、セッションから一連のフロー制御属性を受信します。セッションは接続から、接続は接続ファクトリから、この属性を受信します。JMS 接続ファクトリでのフロー制御属性のコンフィグレーションは、Administration Console を通じて行います。
これらの属性により、プロデューサはメッセージ フローを調整できます。具体的には、プロデューサはフローを最小値から最大値までの範囲内に制限する属性を受信します。プロデューサは、条件が悪くなると最小値側に移動し、改善されると最大値側に移動します。最小値側および最大値側への移行は、移行率を指定する 2 つの追加属性によって定義されます。また、最小値側および最大値側への移行の必要性は、コンフィグレーションされた間隔ごとに評価されます。
接続ファクトリでのメッセージ フロー制御をコンフィグレーションするには、以下の手順に従います。
他の接続ファクトリ属性の詳細、および属性の有効な値とデフォルト値については、Administration Console オンライン ヘルプの「JMS 接続ファクトリ」を参照してください。
バイト数やメッセージ数のしきい値のコンフィグレーションに使用される属性は、JMS サーバおよび JMS 送り先の一部として定義されます。 表 9-9 では、これらのしきい値がどのように JMS サーバや JMS 送り先に対するフロー制御を開始および停止するのかを示します。
JMS サーバおよび JMS 送り先の属性の詳細と、属性の有効な値およびデフォルト値については、Administration Console オンライン ヘルプの「JMS サーバ」、および「JMS の送り先」を参照してください。
以降の節では、JMS 接続ファクトリに対するロード バランシングとサーバ アフィニティの属性をコンフィグレーションすることで分散送り先をチューニングする方法について説明します。 分散送り先のコンフィグレーションの詳細については、分散送り先のコンフィグレーションを参照してください。
分散送り先のメッセージ ロード バランシングのコンフィグレーション
[JMS Connection Factory|コンフィグレーション|一般] タブの [ロード バランスを有効化] 属性では、接続ファクトリを通じて作成された匿名でないプロデューサが、呼び出しごとにロード バランシングされるかどうかを定義します。分散送り先を使用して、複数の物理的送り先にまたがってプロデューサおよびコンシューマを分散またはバランシングするが、メッセージが生成されるたびにロード バランシングの決定を行いたくないアプリケーションでは、[ロード バランスを有効化] 属性をオフにできます。
分散送り先でメッセージング負荷が公正に分散されるようにするために、プロデューサで使用される最初の物理的送り先 (キューまたはトピック) は必ず、分散送り先メンバーの中から無作為に選択されます。
接続ファクトリでのロード バランシングをコンフィグレーションするには、以下の手順に従います。
注意: 実装によっては、[サーバ アフィニティを有効化] 属性の設定が、分散送り先のロード バランシング設定に影響することがあります。 詳細については、『WebLogic JMS プログラマーズ ガイド』の「[サーバ アフィニティを有効化] 属性を使用した場合の分散送り先のロード バランシングへの影響」を参照してください。
匿名プロデューサ (作成時に送り先を指定しないプロデューサ) は、送り先を切り替えるたびにロード バランシングされます。同じ送り先を使用し続けると、匿名でないプロデューサと同じ法則 (前述) が適用されます。
分散送り先のメンバー間でメッセージのロード バランシングがどのように行われるのかについては、『WebLogic JMS プログラマーズ ガイド』の「分散送り先におけるメッセージのロード バランシング」を参照してください。
[JMS Connection Factory|コンフィグレーション|一般] タブの [サーバ アフィニティを有効化] 属性では、分散送り先の複数の物理的送り先にわたってコンシューマまたはプロデューサをロード バランシングしている WebLogic Server が、同じ WebLogic Server 上で実行されている他の物理的送り先にまたがるロード バランシングを最初に試みるかどうかを定義します。
注意: [サーバ アフィニティを有効化] 属性は、キュー ブラウザに影響を与えません。 したがって、分散キューで作成されたキュー ブラウザは、サーバ アフィニティが有効な場合でもリモートの分散キュー メンバーに固定することができます。
接続ファクトリでサーバ アフィニティを無効化するには、次の手順に従います。
[サーバ アフィニティを有効化] の設定が分散送り先メンバー間でのロード バランシングにどのように影響するのかについては、『WebLogic JMS プログラマーズ ガイド』の「[サーバ アフィニティを有効化] 属性を使用した場合の分散送り先のロード バランシングへの影響」を参照してください。
分散送り先とは、1 つの JNDI 名で呼び出される物理的送り先 (キューまたはトピック) のセットのことです。したがって、セットのメンバーが実際にはクラスタ内の複数のサーバに分散し、各メンバーが別々の JMS サーバに属していても、そのセットはクライアント側からは 1 つの論理的送り先として認識されます。
複数の物理的キューおよびトピックを分散送り先のメンバーとしてコンフィグレーションできるようにすることで、WebLogic JMS はクラスタ内の JMS 送り先の高可用性とロード バランシングをサポートします。 たとえば、サーバの障害などによって使用できない送り先メンバーがある場合は、セット内の他のメンバーにトラフィックがリダイレクトされます。
複数の物理的キューおよびトピックを分散送り先のメンバーとしてコンフィグレーションできるようにすることで、WebLogic JMS はクラスタ内の JMS 送り先の高可用性とロード バランシングをサポートします。 アプリケーションで分散送り先を使用する手順については、『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS アプリケーションの開発」を参照してください。
分散 JMS 送り先は、[サービス|JMS|分散送り先] ノードでコンフィグレーションできます。 コンフィグレーション プロセスがわかりやすいように、以下のシナリオに対応する手順に分けて説明しています。
分散送り先アプリケーションの管理と開発を簡素化するために、参加している各 JMS サーバおよびそれに関連付けられた物理的な送り先に対して同じようなコンフィグレーションを使用することで、分散送り先をクラスタ全体に一貫性を持ってデプロイすることをお勧めします。 これには、JMS ストア、メッセージ ページング、エラー送り先、メッセージおよびバイト数の割り当て、接続ファクトリなどの一貫したコンフィグレーションが必要になります。 たとえば、永続的なメッセージングがコンフィグレーションされている場合は、各分散メンバーがキャパシティとパフォーマンスに関して同様の JMS ストアに関連付けられるようにする必要があります。
分散送り先メンバーに対してコンフィグレーションの一貫性を保持するための推奨方法は、JMS テンプレートを使用することです。JMS テンプレートは、それぞれの物理的な送り先に共通するすべてのカスタム コンフィグレーションを一元化する最も信頼性のある方法だからです。 Administration Console を使用してコンフィグレーションされた、新たに作成された分散送り先メンバーの場合は、それらのメンバーに対して自動的に作成される JMS テンプレートを使用します (JMS テンプレートの自動作成を参照)。 既存の物理的な送り先を表すように作成された分散送り先の場合は、それらの物理的な送り先に関連付けられた JMS テンプレートを使用します。JMS テンプレートが存在しない場合はコンフィグレーションしてください (JMS テンプレートのコンフィグレーションを参照)。
警告: アプリケーションで障害が発生する問題を回避するために、参加している各分散送り先メンバーに対して一貫性のあるセキュリティ パーミッションをコンフィグレーションする必要があります。 たとえば、分散送り先のあるメンバーに他のメンバーとは異なる送信制限があると、アプリケーションでその分散送り先への送信が場合によって許可されたり、禁止されたりするおそれがあります。
分散送り先のコンフィグレーションをチューニングするためのデフォルトの [ロード バランスを有効化] および [サーバ アフィニティを有効化] 属性の値は、Administration Console を使って JMS 接続ファクトリで変更できます。 詳細については、分散送り先のメッセージ ロード バランシングのコンフィグレーションおよび分散送り先のサーバ アフィニティのコンフィグレーションを参照してください。
Administration Console で新しい分散トピック メンバーまたは分散キュー メンバーと共に分散送り先が作成されると、それらのメンバーのデフォルト属性値を使用して対応する JMS テンプレートが自動的に作成されます。 新しい JMS テンプレートは、[JMS テンプレート] ノードに分散送り先と同じ名前で表示されます。 分散送り先メンバーのしきい値や割当などの属性は、このテンプレートを使用してリセットできます。 JMS テンプレートの使用の詳細については、JMS テンプレートのコンフィグレーションを参照してください。
クラスタ化されたコンフィグレーションでは、あらかじめ分散送り先コンフィグレーションから分散送り先メンバーを手動で削除せずに、そのメンバーをホストしている JMS サーバを割り当て解除または削除すると、コンフィグレーション ファイル (config.xml) が起動不能になる場合があります。 分散送り先メンバーを削除する手順については、JMS 分散キュー メンバーの削除およびJMS 分散トピック メンバーの削除を参照してください。
分散トピックをコンフィグレーションし、WebLogic Server クラスタの一部である JMS サーバ (高可用性のため)、またはクラスタの一部ではない単一の WebLogic Server インスタンス上の JMS サーバにトピック メンバーを自動的に作成するには、以下の手順に従います。
分散トピックを JNDI ネームスペース内にバインドするために使用される名前を入力する。アプリケーションは、JNDI 名を使用して分散トピックをルックアップする。 JNDI 名を持たない分散トピックは、分散送り先の名前を javax.jms.TopicSession.createTopic() に渡すことで参照できる。 |
|
プロデューサがどのようにメッセージを分散トピックのメンバー間に分散するかを定義する。 有効値は、分散送り先のメッセージ ロード バランシングのコンフィグレーションに定義される [ラウンドロビン] と [ランダム]。 |
これらの属性の詳細については、Administration Console オンライン ヘルプの「JMS 分散トピック] --> [コンフィグレーション] --> [しきい値と割当]」を参照してください。
分散トピックの作成および既存の物理的トピックのメンバーとしての手動追加
以前にコンフィグレーションした送り先を分散送り先セットのメンバーとして追加する必要がある WebLogic JMS の既存の実装で、分散トピックをコンフィグレーションして既存の物理トピックをメンバーとして手動で追加するには、以下の手順に従います。
分散トピックを JNDI ネームスペース内にバインドするために使用される名前を入力する。アプリケーションは、JNDI 名を使用して分散トピックをルックアップする。 JNDI 名を持たない分散トピックは、分散送り先の名前を javax.jms.TopicSession.createTopic() に渡すことで参照できる。 |
|
プロデューサがどのようにメッセージを分散トピックのメンバー間に分散するかを定義する。 有効値は、分散送り先のメッセージ ロード バランシングのコンフィグレーションに定義される [ラウンドロビン] と [ランダム]。 |
分散トピック メンバーの基底の物理トピックに、既にしきい値と割当がコンフィグレーションされた JMS テンプレートが備わっている場合、これらの属性はそのトピック メンバーには適用されません。 これらの属性の詳細については、Administration Console オンライン ヘルプの「[JMS 分散トピック] --> [コンフィグレーション] --> [しきい値と割当]」を参照してください。
注意: WebLogic Server クラスタの一部である JMS サーバ (高可用性のため)、またはクラスタの一部ではない単一の WebLogic Server インスタンス上の JMS サーバにトピック メンバーを自動的に作成する場合は、分散トピックの作成とメンバーの自動作成を参照してください。
トピック メンバーの重み (メッセージ負荷を処理する能力の尺度) を、分散送り先における他のトピック メンバーとの比較で定義する。 ランダム分散ロード バランシング アルゴリズムは、物理的送り先に割り当てられた重みを使用して、一連の物理的送り先の重み付けされた分散を計算する。詳細については、『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS アプリケーションの開発」を参照。 |
分散キューをコンフィグレーションし、WebLogic Server クラスタの一部である JMS サーバ (高可用性のため)、またはクラスタの一部ではない単一の WebLogic Server インスタンス上の JMS サーバにキュー メンバーを自動的に作成するには、以下の手順に従います。
分散キューを JNDI ネームスペース内にバインドするために使用される名前を入力する。アプリケーションは、JNDI 名を使用して分散キューをルックアップする。 JNDI 名を持たない分散キューは、分散送り先名を javax.jms.QueueSession.createQueue() に渡すことによって参照できる。 |
|
プロデューサがどのようにメッセージを分散キューのメンバー間に分散するかを定義する。 有効値は、分散送り先のメッセージ ロード バランシングのコンフィグレーションに定義される [ラウンドロビン] と [ランダム]。 |
|
メッセージを持つがコンシューマを持たない分散キュー メンバーが、コンシューマを持つ他のキューにメッセージを転送するまでに待機する時間を秒単位で定義する。 |
これらの属性の詳細については、Administration Console オンライン ヘルプの「JMS 分散トピック --> [コンフィグレーション] --> [しきい値と割当]」を参照してください。
分散キューの作成および既存の物理キューのメンバーとしての手動追加
以前にコンフィグレーションした送り先を分散送り先セットのメンバーとして追加する必要があるWebLogic JMS の既存の実装で、分散キューをコンフィグレーションして既存の物理キューをメンバーとして手動で追加するには、以下の手順に従います。
分散キューを JNDI ネームスペース内にバインドするために使用される名前を入力する。アプリケーションは、JNDI 名を使用して分散キューをルックアップする。 JNDI 名を持たない分散キューは、分散送り先名を javax.jms.QueueSession.createQueue() に渡すことによって参照できる。 |
|
プロデューサがどのようにメッセージを分散キューのメンバー間に分散するかを定義する。 有効値は、分散送り先のメッセージ ロード バランシングのコンフィグレーションに定義される [ラウンドロビン] と [ランダム]。 |
|
メッセージを持つがコンシューマを持たない分散キュー メンバーが、コンシューマを持つ他のキューにメッセージを転送するまでに待機する時間を秒単位で定義する。 |
分散キュー メンバーの基底の物理キューに、既にしきい値と割当がコンフィグレーションされた JMS テンプレートが備わっている場合、これらの属性はそのキュー メンバーには適用されません。 これらの属性の詳細については、Administration Console オンライン ヘルプの「[JMS 分散キュー] --> [コンフィグレーション] --> [しきい値と割当]」を参照してください。
注意: WebLogic Server クラスタの一部である JMS サーバ (高可用性のため)、またはクラスタの一部ではない単一の WebLogic Server インスタンス上の JMS サーバにキュー メンバーを自動的に作成する場合は、分散キューの作成とメンバーの自動作成を参照してください。
キュー メンバーの重み (メッセージ負荷を処理する能力の尺度) を、分散送り先における他のキュー メンバーとの比較で定義する。 ランダム分散ロード バランシング アルゴリズムは、物理的送り先に割り当てられた重みを使用して、一連の物理的送り先の重み付けされた分散を計算する。 詳細については、『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS アプリケーションの開発」を参照してください。 |
分散キューのメンバーとして既存の物理的キューを追加するには、次の手順に従います。
分散キュー メンバーの属性の詳細については、Administration Console オンライン ヘルプの「[分散キュー メンバ] --> [コンフィグレーション]」を参照してください。
分散キュー コンフィグレーションのメンバーを削除し、必要に応じてそのキュー メンバーの基底の物理的なキューも削除するには、次の手順に従います。 たとえば、あるキュー メンバーをホストしている JMS サーバを割り当て解除または削除する場合は、まず、分散送り先からそのメンバーを削除する必要があります。その JMS サーバを単純に割り当て解除または削除すると、コンフィグレーション ファイル (config.xml) が起動不能になる場合があります。
注意: 分散キュー全体を削除する必要がある場合は、分散送り先の削除の指示に従ってください。
分散キューのメンバーとして既存の物理的キューを追加するには、次の手順に従います。
分散トピック メンバーの属性の詳細については、Administration Console オンライン ヘルプの「[JMS 分散トピック メンバ] --> [コンフィグレーション]」を参照してください。
分散トピックを削除し、必要に応じてメンバーの基底の物理トピックも削除するには、次の手順に従います。
注意: 分散トピック全体を削除する必要がある場合は、分散送り先の削除の指示に従ってください。
分散送り先全体を削除する場合は、次の手順で削除する必要があります。
分散送り先をモニタする場合、そのトピックまたはキュー メンバーに対して自動的に作成されるプロキシ トピック メンバーまたはシステム サブスクリプションを参照できます。 詳細については、分散送り先のシステム サブスクリプションとプロキシ トピック メンバーのモニタを参照してください。
以降の節では、サーバで障害が発生した場合に JMS アプリケーションを正常に終了させる方法、およびサーバで障害が発生した後に JMS データを移行する方法について説明します。
WebLogic Server の障害発生時に正常に終了するよう、JMS アプリケーションをプログラミングすることもできます。 次に例を示します。
JMSException が接続例外リスナに配信される。サーバを再起動または交換したらすぐに、アプリケーションを再起動する必要がある。 |
|
ConsumerClosedException がセッション例外リスナに配信される。失われたすべてのメッセージ コンシューマを再確立する必要がある。 |
WebLogic JMS では、WebLogic Server のコアに実装される移行フレームワークを使用します。これにより、WebLogic JMS は移行要求に正しく応答できるようになり、WebLogic JMS サーバのオンラインとオフラインの切り替えが順序立って行われるようになります。これには、スケジューリングされた移行だけでなく、WebLogic Server の障害への対応としての移行も含まれます。
いったん、正しくコンフィグレーションされると、JMS サーバとそのすべての送り先メンバーは、クラスタ内の別の WebLogic Server に移行できます。
新しくサーバを起動し、次の表に記載されたタスクのうち 1 つ以上を実行することで、障害が発生した WebLogic Server から JMS データを回復できます。
注意: JMS 永続ストレージに格納されているメッセージ数が増加するにつれて、WebLogic Server の初期化に必要なメモリ量も増加します。WebLogic Server の再起動中にメモリ不足で初期化が失敗した場合は、Java 仮想マシン (JVM) のヒープ サイズを、現在 JMS 永続ストレージに格納されているメッセージ数に比例するよう増加させてから、再起動してください。
新しい WebLogic Server の起動については、WebLogic Server の起動と停止を参照してください。 障害が発生したサーバの回復については、『WebLogic Server ドメイン管理』の「障害が発生したサーバの回復」を参照してください。
移行できる対象の詳細については、『WebLogic Server クラスタ ユーザーズ ガイド』の「移行可能サービスをデプロイ、活性化、および移行する」を参照してください。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |