ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ホーム   |     管理者ガイド   |   前へ   |   次へ   |   目次   |   索引   |   PDF 版

JMS の管理

 

以下の節では、WebLogic Server の Java Message Service(JMS)を管理する方法について説明します。

 


JMS と WebLogic Server

JMS は、エンタープライズ メッセージング システムにアクセスするための標準の API です。具体的な WebLogic JMS の機能は以下のとおりです。

次の図は、WebLogic JMS によるメッセージングの仕組みを示しています。

図17-1 WebLogic Server JMS のメッセージング


 

図で示されているように、WebLogic JMS はプロデューサ アプリケーションからメッセージを受信し、受け取ったメッセージをコンシューマ アプリケーションに配信します。

 


JMS のコンフィグレーション

Administration Console を使用して、以下のコンフィグレーション属性を定義します。

WebLogic JMS では、一部のコンフィグレーション属性に対して、デフォルト値が用意されていますが、それ以外のすべての属性に対しては値を指定する必要があります。コンフィグレーション属性に対して無効な値を指定した場合や、デフォルト値が存在しない属性に対して値を指定しなかった場合は、再起動時に JMS が起動されません。製品には、サンプル サーバにおける examplesJMSServer のサンプル コンフィグレーションが用意されています。サンプル サーバの詳細については、『インストール ガイド』の「デフォルト、サンプル、および Pet Store サーバの起動」を参照してください。

WebLogic Server アプリケーションを以前のリリースから移行する場合、コンフィグレーション情報は自動的に変換されます(『WebLogic JMS プログラマーズ ガイド』の「既存のアプリケーションの移行」を参照)。

WebLogic JMS の属性をコンフィグレーションするには、以降の節、または『 Administration Console オンライン ヘルプ』で説明されている手順に従って、JMS オブジェクトを作成およびコンフィグレーションします。

WebLogic JMS をコンフィグレーションしたら、アプリケーションで JMS API を使用してメッセージの送受信ができるようになります。WebLogic JMS アプリケーションの開発の詳細については、『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS アプリケーションの開発」を参照してください。

注意: WebLogic JMS のコンフィグレーション プランを支援するために、『WebLogic JMS プログラマーズ ガイド』にはコンフィグレーション チェックリストがあります。このチェックリストを使用して、属性の要件や各種 JMS 機能をサポートするオプションを検討できます。

WebLogic Server の起動とJMS のコンフィグレーション

この節では、WebLogic Server および Administration Console の起動方法と、基本的な JMS 実装をコンフィグレーションするための手順を説明します。

デフォルト WebLogic Server の起動

WebLogic Server のデフォルトの役割は、管理サーバです。ドメインが WebLogic Server 1 つだけから構成されている場合、そのサーバが管理サーバです。ドメインが複数のWebLogic Server から構成されている場合、管理サーバをまず起動し、それから管理対象サーバを起動する必要があります。

管理サーバ起動の詳細については、 WebLogic Server の起動と停止 を参照してください。

Administration Console の起動

Administration Console は、WebLogic Server に対する Web ベースの管理フロント エンド(管理クライアント インタフェース)です。先にサーバを起動してからでないと、サーバの Administration Console にアクセスできません。

Administration Console を使用した WebLogic Server のコンフィグレーションの詳細については、 Administration Console を参照してください。

基本的 JMS 実装のコンフィグレーション

この節では、Administration Console を使用した基本的 JSM 実装のコンフィグレーション方法を説明します。

  1. 左ペインの [サービス] の下にある [JMS] ノードをクリックし、リストを展開します。

  2. オプションとして、永続メッセージをフラット ファイルに格納するため ファイル ストアを作成するか、またはあわせて、メッセージをメモリ外にスワップ アウトするためページング ストアを作成します。

    1. 左ペインの [ストア] ノードをクリックし、右ペインの [新しい JMSFile Store のコンフィグレーション] リンクをクリックします。

    2. [一般] タブで、ストアに名前を付け、ディレクトリを指定してから [作成] ボタンをクリックします。

    3. [Paging Store] の作成も、同じ手順を繰り返します。

      注意: ストアのコンフィグレーションの詳細については、 ストアのコンフィグレーションを参照してください。

  3. オプションとして、永続性メッセージをデータベースに格納するための JDBC ストアを作成します。

    1. 左ペインの [JDBC] ノードをクリックして展開します。

    2. 左ペインの [接続プール] ノードをクリックして、 次に右ペインの[新しい JDBC Connection Pool のコンフィグレーション] リンクをクリックします。

    3. [コンフィグレーション] タブで、接続プールに対する[名前]、[URL] および データベース[プロパティ] などの属性を設定します。変更が終ったら、各タブで [適用] をクリックします。

    4. [対象] タブで、[サーバ] タブまたは [クラスタ] タブのいずれかを選択して、その接続プールをデプロイするWebLogic Serverインスタンス またはサーバ クラスタを指定します。 [選択可] リストから [選択済み] リスト に移して対象を選択し、 [適用] をクリックします。

    5. [JMS|ストア] ノードに戻り、 右ペインの [新しい JMSJDBCStore のコンフィグレーション] リンクをクリックします。

    6. JDBC ストア名をつけ、接続プールとプレフィックス名を選択します。それから [作成] をクリックします。

      注意: JDBC 接続プールのコンフィグレーションの詳細については、 Administration Console による JDBC 接続プール、マルチプール、およびデータソースのコンフィグレーションと管理 を参照してください。

  4. オプションとして、 JMS テンプレートを作成し、同じような属性設定を持つ複数の送り先を定義します。また、一時的なキューを作成する場合にも JMS テンプレートが必要です。

    1. 左ペインの [テンプレート] ノードをクリックし、次に右ペインの [新しい JMS Template のコンフィグレーション] リンクをクリックします。

    2. [一般] タブで、テンプレートの名前を指定してから [作成] をクリックします。

    3. 必要に応じて [しきい値と割当]、[オーバライド] および [再配信] タブに入力します。 変更が終ったら、各タブで [適用] をクリックします。

      注意: JMS テンプレートのコンフィグレーションの詳細については、 JMS テンプレートのコンフィグレーションを参照してください。

  5. JMS サーバを以下のようにコンフィグレーションします。

    1. 左ペインの [サーバ] ノードをクリックし、右ペインの [新しい JMSServer のコンフィグレーション] リンクをクリックします。

    2. [一般] タブで、サーバに名前を付け、ストアを作成した場合には、ストアを選択し、ページング ストアを作成した場合にはページング ストアを選択し、テンプレートを作成した場合にはテンプレートを選択します。 それから、[作成] をクリックします。

    3. 必要に応じて [しきい値と割当] タブに入力します。 変更が終ったら、[適用] をクリックします。

    4. [対象] タブで、 [選択可] リストから [選択済み] リスト に移して、そのJMS サーバをデプロイする WebLogic Server インスタンスを選択し、 [適用] をクリックします。

      注意: JMS サーバのコンフィグレーションの詳細については、 JMS サーバのコンフィグレーションを参照してください。

  6. [JMS 送り先] を作成し、これがキュー(ポイント ツー ポイント)またはトピック(Pub/Sub)です。

    1. 左ペインの [サーバ] ノードの下で、新しい JMS サーバ インスタンスをクリックしてリストを展開し、[ 送り先] ノードをクリックします。

    2. 右ペインの [新しい JMSQueue のコンフィグレーション] リンクまたは [ 新しい JMSTopic のコンフィグレーション] リンクのどちらかをクリックします。

    3. [一般] タブで、送り先に名前と JNDI 名を指定します。必要に応じて、他の属性を入力し、[作成] をクリックします。

    4. 必要に応じて [しきい値と割当], [オーバライド]、 [再配信]、[マルチキャスト] (トピックのみ)タブに入力します。 変更が終ったら、各タブで [適用] をクリックします。

      注意: 送り先のコンフィグレーションの詳細については、 送り先のコンフィグレーションを参照してください。

  7. 接続ファクトリを作成して、JMS クライアントが JMS 接続を作成できるようにします。

    1. 左ペインで[接続ファクトリ] ノードをクリックして展開し、 次に右ペインの [新しい JMS Connection Factory のコンフィグレーション] リンクをクリックします。

    2. [一般] タブで、接続ファクトリに名前とJNDI 名を指定します。 必要に応じて、他の属性を入力し、[作成] をクリックします。

    3. 必要に応じて [トランザクション] タブに入力します。変更が終ったら、各タブで [適用] をクリックします。

    4. [対象] タブで、 [サーバ] タブまたは [クラスタ] タブ を選択して、接続ファクトリをデプロイする WebLogic Server インスタンス またはサーバ クラスタを指定します。[選択可] リストから [選択済み] リスト に移して対象を選択し、 [適用] をクリックします。

      注意: 接続ファクトリのコンフィグレーションの詳細については、 接続ファクトリのコンフィグレーションを参照してください。

  8. オプションとして、 [送り先キー] ノードを使用して特定の送り先に対してソート順を定義します。詳細については、 送り先キーのコンフィグレーションを参照してください。

  9. オプションとして、 JMS セッション プールを作成して、アプリケーションがメッセージを並行処理できるようにし、 接続コンシューマ(キューまたはトピック)を作成して、サーバ セッションを取り出してメッセージを処理します。 詳細については、 セッション プールのコンフィグレーション 接続コンシューマのコンフィグレーションを参照してください。

JMS サーバのコンフィグレーション

JMS サーバは、クライアントの代わりに接続およびメッセージ リクエストを管理するサーバです。

JMS サーバを作成するには、Administration Console の [JMS|サーバ] ノードを使用して、以下を定義します。

注意: JMS サーバのデプロイメントは、接続ファクトリやテンプレートのデプロイメントとは異なります。JMS サーバは 1 つのサーバにデプロイされます。接続ファクトリやテンプレートは、複数のサーバで同時にインスタンス化されます。

JMS サーバを作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「JMS サーバ」を参照してください。

接続ファクトリのコンフィグレーション

接続ファクトリは、JMS クライアントが JMS 接続を作成することを可能にするオブジェクトです。接続ファクトリでは同時使用がサポートされており、複数のスレッドがオブジェクトに同時にアクセスできます。接続ファクトリを定義およびコンフィグレーションして、あらかじめ定義された属性で接続を作成します。WebLogic Server では、起動時に接続ファクトリが JNDI スペースに追加され、アプリケーションが WebLogic JNDI を使用して接続ファクトリを取り出します。

システム管理者は、複数の接続ファクトリをコンフィグレーションし、対象を使用してそれらを WebLogic サーバに割り当てることで、クラスタ内のあらゆるサーバから送り先へのクラスタワイドで透過的なアクセスを確立できます。各接続ファクトリは、複数の WebLogic サーバにデプロイできます。JMS クラスタ化の詳細については、『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS の基礎」を参照してください。

接続ファクトリをコンフィグレーションするには、Administration Console の [接続ファクトリ] ノードを使用して、以下を定義します。

WebLogic JMS では、デフォルトでweblogic.jms.ConnectionFactory という 1 つの接続ファクトリが用意されています。 すべてのコンフィグレーション属性は、このデフォルトの接続ファクトリのデフォルト値に設定されています。デフォルトの接続ファクトリの定義がアプリケーションに適用できる場合は、さらに接続ファクトリのコンフィグレーションを行う必要はありません。

注意: デフォルトの接続ファクトリを使用する場合は、接続ファクトリがデプロイされる可能性のある JMS サーバを限定することができません。特定の JMS サーバを対象にする場合は、新しい接続ファクトリを作成し、適切な JMS サーバの対象を指定してください。

接続ファクトリを作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「JMS 接続ファクトリ」を参照してください。

接続ファクトリの属性の中には、動的にコンフィグレーションできるものもあります。動的な属性が実行時に変更された場合、新しく設定された値は新規接続に対してのみ有効になります。既存の接続の動作には影響しません。

送り先のコンフィグレーション

送り先では、キュー (ポイント ツー ポイント)か JMS サーバ用のトピック(Push / Sub)かが識別されます。JMS サーバを定義したら、JMS サーバごとに 1 つまたは複数の送り先をコンフィグレーションします。

送り先は、明示的にコンフィグレーションすることも、送り先テンプレートを使用してコンフィグレーションすることもできます。送り先テンプレートを使用すると、似た属性設定を持つ複数の送り先を定義できます( JMS テンプレートのコンフィグレーションを参照)。

送り先を明示的にコンフィグレーションするには、Administration Console の [送り先] ノードを使用して、以下のコンフィグレーション属性を定義します。

送り先を作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「JMS の送り先」を参照してください。

送り先の属性の中には、動的にコンフィグレーションできるものもあります。属性が実行時に変更された場合、変更は新しく配信されるメッセージにのみ適用され、格納されているメッセージには影響しません。

JMS テンプレートのコンフィグレーション

JMS テンプレートを使用することによって、似た属性設定を持つ複数の送り先を効率的に定義できます。JMS テンプレートには、以下のような利点があります。

JMS テンプレートのコンフィグレーション属性を定義するには、Administration Console の [テンプレート] ノードを使用します。JMS テンプレートに対してコンフィグレーションできる属性は、送り先に対してコンフィグレーションされる属性と同じです。これらのコンフィグレーション属性は、それらを使用する送り先によって継承されます。ただし、以下の例外があります。

送り先に対して明示的に定義されない属性には、デフォルト値が割り当てられます。デフォルト値が存在しない場合は、必ず、JMS テンプレートで値を指定するか、または送り先の属性のオーバーライド値として値を指定します。そうしないと、コンフィグレーション情報は不備な状態のままとなります。その場合、WebLogic JMS コンフィグレーションは失敗し、WebLogic JMS が起動しません。

JMS テンプレートを作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「JMS テンプレート」を参照してください。

送り先キーのコンフィグレーション

特定の送り先に対してソート順を定義するには、送り先キーを使用します。

送り先キーを作成するには、Administration Console の [送り先キー] ノードを使用して、以下のコンフィグレーション属性を定義します。

送り先キーを作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「JMS の送り先キー」を参照してください。

ストアのコンフィグレーション

永続ストレージは、永続的なメッセージングに使用されるファイルまたはデータベースで構成されます。ファイル ストアまたはデータベース ストアを作成するには、Administration Console の [ストア] ノードを使用して、以下のコンフィグレーション属性を定義します。

警告: JDBC データベース ストアで使用するトランザクション(XA)接続プールをコンフィグレーションすることはできません。詳細については、 JMS JDBC トランザクションを参照してください。

JMS 永続ストレージに格納されているメッセージ数が増加するにつれて、WebLogic Server の初期化に必要なメモリ量も増加します。WebLogic Server の再起動中にメモリ不足で初期化が失敗した場合は、Java 仮想マシン (JVM) のヒープ サイズを、現在 JMS 永続ストレージに格納されているメッセージ数に比例して増やします。その後、サーバをもう一度再起動してください。ヒープ サイズを設定する方法の詳細については、『WebLogic Server パフォーマンス チューニング ガイド』の「WebLogic Server アプリケーションのチューニング」を参照してください。

ストアの作成およびコンフィグレーションの手順については、『Administration Console オンライン ヘルプ』の「JMS ファイル ストア」(ファイル ストアに関する情報)および 「JMS JDBC ストア」(JDBC データベース ストアに関する情報)をそれぞれ参照してください。

JMS JDBC ストアについて

JMS では、JDBC を使用することで、指定された JDBC 接続プールからアクセスできるデータベースに永続メッセージを格納できます。JMS データベースには、JDBC ドライバからアクセスできる任意のデータベースを指定できます。WebLogic JMS は、以下のデータベースに対するドライバを検出します。

weblogic.jar ファイルの weblogic/jms/ddl ディレクトリには、これらのデータベースに対する JMS DDL ファイルが収められています。このファイルは、実際には、JMS データベースのテーブルを作成する SQL コマンドを含むテキスト ファイルです。別のデータベースを使用するには、いずれかの .ddl ファイルをコピーして編集してください。

注意: WebLogic Server の配布キットに付属する JMS サンプルは、Cloudscape Java データベースで動作するようにセットアップされます。WebLogic Server には、Cloudscape の評価版が付属しており、demoPool データベースが用意されています。

既存の JMS JDBC ストアに何らかの破損が発生した場合は、utils.Schema ユーティリティを使って生成し直すことができます。詳細については、『WebLogic JMS プログラマーズ ガイド』の「JDBC データベース ユーティリティ」を参照してください。

JMS JDBC トランザクション

JMS JDBC ストアで使用するように、トランザクション (XA) JDBC 接続プールをコンフィグレーションすることはできません。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 ファイル ストアを使用しても、パフォーマンスが向上する可能性があります。

JMS JDBC のセキュリティ

オプションとして、JDBC 接続プールに対してアクセス制御リスト(ACL)を制限することもできます。ACL を制限する場合は、WebLogic の system ユーザおよび JMS メッセージを送信するすべてのユーザが、このリストに含まれている必要があります。WebLogic Server セキュリティの管理の詳細については、 セキュリティの管理を参照してください。

JMS ストア テーブルのプレフィックス

JMS データベースには、自動的に生成され、JMS 内部で使用されるシステム テーブルが 2 つあります。

プレフィックス名は、この永続ストレージ内の JMS テーブルを識別します。ユニークなプレフィックスを指定すると、同一データベース内に複数のストアが存在できます。プレフィックスは、JDBC ストアをコンフィグレーションする際に Administration Console でコンフィグレーションします。プレフィックスは、DBMS で完全修飾名が必要な場合、または 2 つの WebLogic Server の JMS テーブルを区別する必要がある(1 つの DBMS で複数のテーブルを格納できるようにする)場合にテーブル名の前に付けられます。

警告: データに障害が発生するので、2 つのJMS ストアを同じデータベース テーブルで使用することはできません。

プレフィックスは、JMS テーブル名に付加されたときに有効なテーブル名になるように、次の形式で指定します。

[[[catalog.]schema.]prefix]JMSStore

catalog は DBMS が参照するシステム テーブルのセットを識別し、schema はテーブル オーナの ID に変換します。たとえば、JMS 管理者はプロダクション データベースで販売部門用の固有のテーブルを次のようにして保持できます。

[[[Production.]JMSAdmin.]Sales]JMSStore

注意: Oracle などの一部の DBMS ベンダの場合、設定または選択するカタログがないので、このフォーマットは [[schema.]prefix] となります。詳細については、DBMS のマニュアルで完全修飾テーブル名の作成および使用方法を参照してください。

JMS ストア向けの JDBC 接続プールの推奨設定

WebLogic Server が備える堅牢な JDBC 接続プールは、障害が発生したデータベースがオンラインに戻った時点で、自動的に再接続を行うことができます。WebLogic Server を再起動する必要はありません。この機能を利用して、JMS JDBC ストアをさらに堅牢なものにするには、JMS JDBC ストアに関連付けられた JDBC 接続プールに対し、次の属性をコンフィグレーションします。

TestConnectionsOnReserve="true"
TestTableName="[[[
catalog.]schema.]prefix]JMSState"

セッション プールのコンフィグレーション

サーバ セッション プールを使用すると、アプリケーションで複数のメッセージを並行して処理できます。JMS サーバを定義した後、各 JMS サーバに 1 つまたは複数のサーバ セッション プールをコンフィグレーションします。

Administration Console の [セッション プール] ノードを使用して、以下のコンフィグレーション属性を定義します。

セッション プールを作成およびコンフィグレーションする手順については、Administration Console オンライン ヘルプの「JMS セッション プール」を参照してください。

セッション プールの属性の中には、動的にコンフィグレーションできるものもありますが、新しい値はセッション プールが再起動されるまで有効になりません。

接続コンシューマのコンフィグレーション

接続コンシューマは、サーバ セッションと取り出し、メッセージを処理するキュー(ポイント ツー ポイント)またはトピック(Pub/Sub)です。セッション プールを定義した後、各 JMS サーバに 1 つまたは複数の接続コンシューマをコンフィグレーションします。

接続コンシューマをコンフィグレーションするには、Administration Console の [セッション プール] ノードを使用して、以下のコンフィグレーション属性を定義します。

接続コンシューマを作成およびコンフィグレーションする場合に使用する、接続コンシューマの各コンフィグレーション属性の詳細については、Administration Console オンライン ヘルプの「JMS 接続コンシューマ」を参照してください。

 


JMS のモニタ

Administration Console を使用すると、JMS サーバ、接続、セッション、送り先、メッセージ プロデューサ、メッセージ コンシューマ、サーバ セッション プール、恒久サブスクライバといった JMS オブジェクトに関する統計をモニタできます。

サーバの実行中は、JMS 統計は増え続けます。統計は、サーバを再起動するときにのみリセットされます。

注意: WebLogic Server への JMS 接続のモニタについては、Administration Console オンライン ヘルプの「サーバ」を参照してください。

JMS オブジェクトのモニタ

JMS モニタ情報を表示するには、次の操作を行います。

  1. Administration Console を起動します。

  2. 左ペインの [サービス] の下にある [JMS] ノードをクリックし、JMS サービスのリストを展開します。

  3. 左ペインの [JMS] の下にある [サーバ] ノードをクリックします。

    JMS サーバの情報が、右ペインに表示されます。

  4. JMS サーバのリスト、または右ペインに表示されている JMS サーバから、モニタする JMS サーバを選択します。

  5. [モニタ] タブを選択して、モニタ データを表示します。

モニタされている情報の詳細については、Administration Console オンライン ヘルプを参照してください。

恒久サブスクライバのモニタ

送り先トピックで動作している恒久サブスクライバを表示するには、次の操作を行います。

  1. JMS オブジェクトのモニタで説明されている手順 1 〜 3 に従います。

  2. 左ペインの [サーバ] の下にある [送り先] ノードをクリックし、JMS トピックおよびキューのリストを展開します。

    JMS 送り先情報が右ペインに表形式で表示されます。[Durable Subscribers] カラムには、表に示されている送り先トピックに対して実行されている恒久サブスクライバの数が表示されます。

  3. 特定のトピックの恒久サブスクライバ情報を表示するには、目的のトピックの [Durable Subscribers] のアイコン(または実際の数)をクリックします。

モニタされている情報の詳細については、Administration Console オンライン ヘルプを参照してください。

 


JMS のチューニング

以降の節では、WebLogic Server JMS で使える管理者用パフォーマンス チューニング機能を実装することにより、アプリケーションの能力を最大限に引き出す方法を説明します。

永続性ストア

以降の節では、WebLogic Server JMS で永続性ストアを使用する場合のチューニング オプションについて説明します。

ファイル ストアへの同期書き込みの無効化

WebLogic Server JMS ファイル ストアでは、デフォルトで同期書き込みを使用することで最新のメッセージの整合性を保証します。通常、同期書き込みを無効にすると、ファイル ストアのパフォーマンスは大幅に向上します。その代わり、オペレーティング システムがクラッシュしたり、ハードウェアの障害が発生したりした場合には、メッセージがトランザクション対応であっても、送信したメッセージが失われたり、同じメッセージを重複して受信したりする可能性があります。オペレーティング システムでは通常のシャットダウン時に未処理の書き込みをすべてフラッシュするので、オペレーティング システムをシャット ダウンするだけではこうしたエラーは発生しません。こうしたエラーは、ビジー状態のサーバの電源を遮断することでエミュレートできます。

注意: 少なくとも 1 つの JMS ベンダでは同期書き込みをデフォルトで無効にしており、このベンダの場合のみ、受信に関して同期書き込みを無効にしたまま、送信に関して有効にすることができます。

WebLogic Server 上で実行されているすべての JMS ファイル ストアに対する同期書き込みを無効にするには、次のコマンドライン プロパティを設定します。

-Dweblogic.JMSFileStore.SynchronousWritesEnabled=false

JMS ファイル ストアに対する同期書き込みを無効にするには、次のように設定します。

-Dweblogic.JMSFileStore.store-name.SynchronousWritesEnabled=false

プロパティを両方とも設定すると、最初に設定したプロパティは後の設定でオーバーライドされます。同期書き込みが無効化された場合、ログ メッセージが生成されます。このメッセージを確認すると、コマンドライン プロパティが有効になっていることがわかります。

メッセージ ページングの使い方

メッセージ ページング機能を利用すると、メッセージの負荷がピーク状態にある間、仮想メモリを解放することができます。この機能は、大きなメッセージ空間を使用するアプリケーションに対して大きな利点があります。

JMS メッセージ ページングを使うと、永続メッセージと非永続メッセージの両方について、永続メッセージがデータをメモリにキャッシュしていても、メモリを節約できます。ページングされた永続メッセージは、引き続き標準のバッキング ストア (ファイルまたはデータベース) に書き込まれます。また、ページングされた非永続メッセージは、別途コンフィグレーションされる JMS サーバのメッセージ ページング ストアに書き込まれます。

メッセージがページングアウトされても、メッセージが占めていたメモリがすべて解放されるわけではありません。検索、ソート、フィルタなどの処理で使用するため、メッセージのヘッダーとプロパティはメモリに残っています。

ページングのコンフィグレーション

ページングをコンフィグレーションして有効にしないと、すべてのメッセージは (永続メッセージであっても) メモリに保持されます。Administration Console を使用して、新規または既存の JMS サーバまたはその送り先に対してページングをコンフィグレーションできます。[JMS|サーバ] ノードの属性を使用して、JMS サーバのページング ストアを指定したり、バイトまたはメッセージ ページングを有効にしたり、ページングを開始および停止するバイト/メッセージの最大および最小しきい値をコンフィグレーションしたりすることができます。

同様に、[送り先] ノードの属性を使用して、JMS サーバでコンフィグレーションされているすべてのトピックおよびキューのバイト/メッセージ ページングをコンフィグレーションできます。送り先は、JMS サーバ用にコンフィグレーションされているページング ストアを使用します。

また、JMS テンプレートを使用して複数の送り先をコンフィグレーションする場合、[テンプレート] ノードの属性を使用して、すべての送り先のページングをすばやくコンフィグレーションできます。特定の送り先に関してテンプレートのページング コンフィグレーションをオーバーライドする場合、どの送り先に対してもページングを有効または無効にできます。

新規の JMS サーバ、テンプレート、および送り先(トピックまたはキュー)のコンフィグレーション手順については、Administration Console オンライン ヘルプの「JMS サーバ」、「JMS 送り先」、および「JMS テンプレート」を参照してください。

注意: パフォーマンスをチューニングするために、ページングのしきい値をいつでも有効な値に変更できます。ただし、ページを有効にすると、バイトまたはメッセージしきい値を -1 にリセットしてページングを動的に無効にすることはできません。ページングの発生を防止するには、バイト/メッセージの最大しきい値を非常に大きな値(最大値は 263 -1)に設定して、ページングが開始されないようにします。

JMS サーバのページング ストアのコンフィグレーション

JMS サーバごとに専用のページング ストアを用意する必要があります。このページング ストアは、JMS サーバとその送り先に対する非永続メッセージをページングアウトするためだけに使用されます。JMS JDBC ストアはパフォーマンスが悪く現実的な利点がないので、JDBC ストアではなく JMS ファイル ストアを使用するのが最善です。

新しいページング ストアをコンフィグレーションするには、次の手順に従います。

  1. Administration Console を起動します。

  2. [JMS|ストア] ノードをクリックします。すべての JMS ストアが右ペインに表示されます。

  3. [新しい JMSFile Store のコンフィグレーション] テキスト リンクをクリックします。新しいファイル ストアのコンフィグレーションに関連するタブが右ペインに表示されます。

  4. 属性フィールドに値を入力します。

  5. [作成] をクリックして、[名前] フィールドで指定した名前のファイル ストア インスタンスを作成します。新しいインスタンスが左ペインの [JMS|ストア] ノード下に追加されます。

  6. ドメインに複数の JMS サーバがある場合、サーバ インスタンスごとに手順 3 〜 5 を繰り返します。

JMS サーバのページングのコンフィグレーション

既存の JMS サーバでページングをコンフィグレーションして有効にするには、次の手順に従います。

  1. [JMS|サーバ] ノードをクリックします。ドメインに定義されているすべてのサーバが右ペインに表示されます。

  2. ページングをコンフィグレーションするサーバをクリックします。サーバのコンフィグレーションに関連するタブが右ペインに表示されます。

  3. [一般] タブの [Paging Store] リスト ボックスで、ページングしたメッセージを格納するためのストアを選択します。[適用] をクリックして、変更を保存します。ページング ストアのコンフィグレーション手順については、 JMS サーバのページング ストアのコンフィグレーションを参照してください。

  4. [しきい値と割当] タブで、バイト ページングをコンフィグレーションします。

  5. [しきい値と割当] タブで、 メッセージ ページングをコンフィグレーションします。

  6. [適用] をクリックして、新しいバイト数やメッセージ ページング値を保存します。

  7. ドメインの JMS サーバのページングをさらにコンフィグレーションするには、手順 2 〜 6 を繰り返します。

    注意: 各 JMS サーバは、それぞれ独自の永続ストレージを使用する必要があります。

  8. JMS サーバのページングをコンフィグレーションしたら、次のいずれかの操作を行います。

JMS テンプレートのページングのコンフィグレーション

JMS テンプレートを使用することによって、似た属性設定を持つ複数の送り先(トピックまたはキュー)を効率的に定義できます。送り先用のテンプレートでページングをコンフィグレーションするには、次の手順に従います。

  1. 左ペインの [JMS] ノードをクリックします。

  2. [テンプレート] ノードをクリックします。ドメインに定義されているすべてのテンプレートが右ペインに表示されます。

  3. ページングをコンフィグレーションするテンプレートをクリックします。テンプレートのコンフィグレーションに関連するタブが右ペインに表示されます。

  4. [しきい値と割当] タブで、バイト ページングをコンフィグレーションします。

  5. [しきい値と割当] タブで、メッセージ ページングをコンフィグレーションします。

  6. [適用] をクリックして、新しいバイト数やメッセージ ページング値を保存します。

  7. JMS テンプレートのページングをさらにコンフィグレーションするには、手順 3 〜 6 を繰り返します。

  8. ページングに関してすべての JMS テンプレートをコンフィグレーションしたら、WebLogic Server を再起動してページングを有効にします。

送り先のページングのコンフィグレーション

JMS テンプレートを使用しないで送り先のページングをコンフィグレーションする場合、以下の手順に従います。

  1. [JMS|サーバ] をクリックして、ページングがコンフィグレーションされているサーバ インスタンスを展開します。

  2. [送り先] ノードをクリックします。サーバのトピックおよびキューが右ペインにすべて表示されます。

  3. ページングをコンフィグレーションするトピックまたはキューをクリックします。トピックまたはキューのコンフィグレーションに関連するタブが右ペインに表示されます。

  4. [しきい値と割当] タブで、バイト ページングをコンフィグレーションします。

  5. [しきい値と割当] タブで、メッセージ ページングをコンフィグレーションします。

  6. [適用] をクリックして、新しいバイト数やメッセージ ページング値を保存します。

  7. JMS 送り先のページングをさらにコンフィグレーションするには、手順 3 〜 6 を繰り返します。

  8. ページングに関してすべての送り先をコンフィグレーションしたら、WebLogic Server を再起動してページングを有効にします。

注意: JMS テンプレートを使用して送り先をコンフィグレーションした場合、送り先のバイト/メッセージ ページングを明示的にコンフィグレーションすると、テンプレートのコンフィグレーションはオーバーライドされます。詳細については、 JMS テンプレートのページングをオーバーライドする送り先のコンフィグレーションおよび JMS のコンフィグレーションを参照してください。

JMS テンプレートのページングをオーバーライドする送り先のコンフィグレーション

テンプレートの設定をオーバーライドして特定の送り先のページングを有効または無効にする場合、次の手順に従います。

  1. [JMS|サーバ] をクリックして、ページングがコンフィグレーションされているサーバ インスタンスを展開します。

  2. [送り先] ノードをクリックします。サーバのトピックおよびキューが右ペインにすべて表示されます。

  3. ページングをコンフィグレーションするトピックまたはキューをクリックします。サーバ インスタンスに関連付けられたトピックまたはキューが右ペインに表示されます。

  4. [しきい値と割当] タブで、JMS テンプレートをオーバーライドする方法に応じて、送り先の [Bytes Paging Enabled] または [Messages Paging Enabled] 属性をコンフィグレーションします。

  5. [適用] をクリックして、新しいバイト数やメッセージ ページング値を保存します。

  6. 同じサーバ インスタンスの JMS 送り先のページングをさらにコンフィグレーションするには、手順 2 〜 5 を繰り返します。

  7. ページングに関してすべての送り先をコンフィグレーションしたら、WebLogic Server を再起動してページングを有効にします。

JMS のページング属性

以降の節では、WebLogic Server JMS で使用可能なページング属性について簡単に説明します。

JMS サーバのページング属性

表 17-1 では、JMS サーバでのページングをコンフィグレーションするときに定義するページング属性について説明します。JMS サーバの属性の詳細、および属性の有効な値とデフォルト値については、Administration Console オンライン ヘルプの「ドメイン」を参照してください。

表17-1 JMS サーバの属性

属性

説明

[Bytes Paging Enabled]

  • [Bytes Paging Enabled] チェック ボックスを選択しない場合(False)、サーバのバイト ページングは明示的に無効になる。

  • [Bytes Paging Enabled] チェック ボックスを選択し(True)、ページング ストアがコンフィグレーションされており、[最小バイトしきい値] および [最大バイトしきい値] 属性が -1 より大きい場合、サーバのバイト ページングは有効になる。

  • [最小バイトしきい値] または [最大バイトしきい値] 属性のいずれかが定義されていない場合、または -1 に設定されている場合、[Bytes Paging Enabled] が選択されていても(True)、サーバのバイト ページングは暗黙的に無効になる。

[Messages Paging Enabled]

  • [Messages Paging Enabled] チェック ボックスを選択しない場合(False)、サーバのメッセージ ページングは明示的に無効になる。

  • [Messages Paging Enabled] チェック ボックスを選択し(True)、ページング ストアがコンフィグレーションされており、[最小メッセージしきい値] および [最大メッセージしきい値] 属性が 1 より大きい場合、サーバのメッセージ ページングは有効になる。

  • [最小メッセージしきい値] または [最大メッセージしきい値] 属性のいずれかが定義されていない場合、または -1 に設定されている場合、[Messages Paging Enabled] が選択されていても(True)、サーバのメッセージ ページングは暗黙的に無効になる。

[Paging Store]

非永続メッセージをページングする永続ストレージの名前。ページング ストアは、永続メッセージまたは恒久サブスクライバ用と同じストアであってはならない。

2 つの JMS サーバは同じページング ストアを使用することができないので、サーバごとに固有のページング ストアをコンフィグレーションする必要がある。

JMS テンプレートのページング属性

表 17-3 では、JMS テンプレートで送り先のページングをコンフィグレーションするときに定義するページング属性について説明します。JMS テンプレートの属性の詳細、および属性の有効な値とデフォルト値については、Administration Console オンライン ヘルプの「JMS テンプレート」を参照してください。

表17-2 JMS テンプレートの属性

属性

説明

[Bytes Paging Enabled]

  • [Bytes Paging Enabled] チェック ボックスを選択しない場合(Flase)、送り先レベルのバイト ページングは、送り先の設定でテンプレートをオーバーライドしない限り、JMS テンプレートの送り先に関して無効になる。

  • [Bytes Paging Enabled] チェック ボックスを選択し(True)、JMS サーバのページング ストアがコンフィグレーションされており、[最小バイトしきい値] および [最大バイトしきい値] 属性が -1 より大きい場合、送り先レベルのバイト ページングは、送り先の設定でテンプレートをオーバーライドしない限り、JMS テンプレートの送り先に関して有効になる。

  • JMS テンプレート Mbean に値が定義されてない場合、False がデフォルト値となるので、JMS テンプレートの送り先に関するバイト ページングは無効になる。

[Messages Paging Enabled]

  • [Messages Paging Enabled] チェック ボックスを選択しない場合(Flase)、送り先レベルのメッセージ ページングは、送り先の設定でテンプレートをオーバーライドしない限り、テンプレートの送り先に関して無効になる。

  • [Messages Paging Enabled] チェック ボックスを選択し(True)、JMS サーバのページング ストアがコンフィグレーションされており、[最小バイトしきい値] および [最大バイトしきい値] 属性が -1 より大きい場合、送り先レベルのメッセージ ページングは、送り先の設定でテンプレートをオーバーライドしない限り、テンプレートの送り先に関して有効になる。

  • JMS テンプレート Mbean に値が定義されてない場合、False がデフォルト値となるので、JMS テンプレートの送り先に関するメッセージ ページングは無効になる。

JMS 送り先のページング属性

表 17-3 では、送り先に関するページングをコンフィグレーションするときに定義するページング属性について説明します。JMS 送り先の属性の詳細、および属性の有効な値とデフォルト値については、Administration Console オンライン ヘルプの「JMS の送り先」を参照してください。

表17-3 JMS の送り先の属性

属性

説明

[Bytes Paging Enabled]

  • [Bytes Paging Enabled] を False に設定すると、送り先レベルのバイト ページングはその送り先に関して無効になる。

  • [Bytes Paging Enabled] を True に設定し、JMS サーバのページング ストアがコンフィグレーションされており、[最小バイトしきい値] および [最大バイトしきい値] 属性が -1 より大きい場合、送り先レベルのバイト ページングはその送り先に関して有効になる。

  • [Bytes Paging Enabled] をデフォルト設定にすると、この値はテンプレートの値を継承する(テンプレートが指定されている場合)。その送り先に関してテンプレートがコンフィグレーションされていない場合、デフォルト値は False となる。

[Messages Paging Enabled]

  • [Messages Paging Enabled] を False に設定すると、送り先レベルのメッセージ ページングはその送り先に関して無効になる。

  • [Messages Paging Enabled] を True に設定し、JMS サーバのページング ストアがコンフィグレーションされており、[最小バイトしきい値] および [最大バイトしきい値] 属性が -1 より大きい場合、送り先レベルのメッセージ ページングはその送り先に関して有効になる。

  • [Messages Paging Enabled] をデフォルト設定にすると、この値はテンプレートの値を継承する(テンプレートが指定されている場合)。その送り先に関してテンプレートがコンフィグレーションされていない場合、デフォルト値は False となる。

注意: サーバのページングが有効で、送り先レベルのページングが指定した送り先に関して無効になっている場合、サーバのページングが開始されると、送り先のメッセージはページングされます。ただし、送り先レベルのページングが指定した送り先に関して無効になっている場合、送り先のメッセージ数がその送り先の最大しきい値を超えても、メッセージはページングされません。

ページングのしきい値属性

表 17-4 では、JMS サーバ、テンプレート、および送り先で使用可能なバイトおよびメッセージ ページングのしきい値について簡単に説明します。JMS サーバ、テンプレート、および送り先の属性の詳細と、属性の有効な値およびデフォルト値については、Administration Console オンライン ヘルプの「JMS サーバ」、「JMS テンプレート」、および「JMS の送り先」を参照してください。

表17-4 ページングのしきい値属性

属性

説明

[最大バイトしきい値]

バイト数がこのしきい値を超えるとページングが開始される。

[最小バイトしきい値]

バイト数がこのしきい値を下回るとページングが停止される。

[最大メッセージしきい値]

メッセージ数がこのしきい値を超えるとページングが開始される。

[最小メッセージしきい値]

メッセージ数がこのしきい値を下回るとページングが停止される。

しきい値は、サーバ、テンプレート、および送り先に対して次のように定義します。

 


WebLogic Server の障害からの回復

以降の節では、システムの障害発生時に WebLogic Server インスタンスを再起動または交換する方法と、そうした障害の後、JMS アプリケーションを正常に終了するためのプログラミングの考慮事項について説明します。

WebLogic Server の再起動または交換

WebLogic Server に障害が発生した場合、システムの回復方法には、以下の 3 種類があります。

障害が発生したサーバ インスタンスを再起動する、または障害が発生したサーバと同じ IP アドレスを使用して新しいサーバ インスタンスを起動する場合は、 WebLogic Server の起動と停止にある説明に従ってサーバを起動し、サーバ プロセスを開始します。

障害が発生したサーバとは異なる IP アドレスを使用して新しいサーバ インスタンスを起動するには、次の手順に従います。

  1. サーバ エリアスが新しい IP アドレスを参照するように、ドメイン ネーム サービス(DNS)を更新します。

  2. WebLogic Server の起動と停止の説明に従ってサーバを起動し、サーバ プロセスを開始します。

  3. 必要に応じて、次の表のタスクを実行します。

    JMS アプリケーションで使用している機能

    実行するタスク

    永続的なメッセージング-JDBC ストア

    • 障害が発生したサーバに JDBC データベース ストアが存在している場合は、データベースを新しいサーバに移行し、JDBC 接続プールの URL 属性が適切なロケーション参照を反映していることを確認する。

    • 障害が発生したサーバに JDBC データベース ストアが存在していない場合は、データベースへのアクセスに影響はないので、変更は不要。

    永続的なメッセージング-ファイル ストア

    ファイルを新しいサーバに移行し、WebLogic Server ホーム ディレクトリ内のファイルのパス名が元のサーバにあったパス名と同じであることを確認する。

    トランザクション

    <servername>*.tlog という名前のすべてのファイルをコピーして、トランザクション ログを新しいサーバに移行する。このような移行は、一方のマシンに取り付け可能なデュアル ポート ディスクにトランザクション ログ ファイルを格納するか、または手動でファイルをコピーすることで実行できる。

    ファイルが新しいサーバの異なるディレクトリにある場合は、サーバの [トランザクション ログファイルのプレフィックス] コンフィグレーション属性を更新してから新しいサーバを起動する。

    注意: システムのクラッシュ後の移行では、サーバを新しい場所で再起動するときにトランザクション ログ ファイルが使用可能になっていることが特に重要である。そうしないと、クラッシュ時にコミット中だったトランザクションが適切に解決できず、その結果、アプリケーション データに矛盾が発生する場合がある。 未確定のトランザクションはすべてロールバックされる。


     

注意: JMS 永続ストレージに格納されているメッセージ数が増加するにつれて、WebLogic Server の初期化に必要なメモリ量も増加します。WebLogic Server の再起動中にメモリ不足で初期化が失敗した場合は、Java 仮想マシン(JVM)のヒープ サイズを、現在 JMS 永続ストレージに格納されているメッセージ数に比例するよう増加させてから、再起動してください。

プログラミングの考慮事項

WebLogic Server の障害発生時に正常に終了するよう、JMS アプリケーションをプログラミングすることもできます。次に例を示します。

WebLogic Server の障害発生時の状態

対応

障害が発生した WebLogic Server インスタンスに接続していた。

JMSException が接続例外リスナに配信される。サーバを再起動または交換したらすぐに、アプリケーションを再起動する必要がある。

障害が発生した WebLogic Server インスタンスに接続していなかった。

サーバを再起動または交換したらすぐに、すべてを再確立する必要がある。

障害が発生した WebLogic Server インスタンスが JMS サーバの対象になっていた。

ConsumerClosedException がセッション例外リスナに配信される。失われたおそれがあるすべてのメッセージ コンシューマを再確立する必要がある。

 

back to top previous page next page