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

WebLogic JMS プログラマーズ ガイド

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

WebLogic JMS の管理

WebLogic Server Administration Console は、JMS を含む WebLogic Server の機能を有効化、コンフィグレーション、およびモニタするためのインタフェースを備えています。Administration Console の起動手順については、Administration Console オンライン ヘルプの「サーバの起動と停止」を参照してください。

以下の節では、WebLogic JMS のコンフィグレーションおよびモニタについて概説します。

 


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

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

コンフィグレーション属性のデフォルト値の変更

WebLogic JMS では、一部のコンフィグレーション属性に対して、デフォルト値が用意されていますが、それ以外のすべての属性に対しては値を指定する必要があります。コンフィグレーション属性に対して無効な値を指定した場合や、デフォルト値が存在しない属性に対して値を指定しなかった場合は、再起動時に JMS が起動されません。コンフィグレーション可能なすべての JMS 属性のデフォルト値を確認するには、Administration Console オンライン ヘルプの「JMS に関する属性と Administration Console 画面のリファレンス」を参照してください。

examplesServer には、サンプル コンフィグレーションとして examplesJMSServer が用意されています。サンプル サーバを起動する手順については、『WebLogic Server のコンフィグレーションと管理』の「サーバの起動と停止 : クイック リファレンス」を参照してください。

WebLogic JMS 属性をコンフィグレーションするには、Administration Console オンライン ヘルプの「JMS : コンフィグレーション」で説明されている手順に従って JMS オブジェクトを作成およびコンフィグレーションします。WebLogic JMS をコンフィグレーションすると、アプリケーションで JMS API を使用してメッセージの送受信ができるようになります。WebLogic JMS アプリケーションの開発の詳細については、「WebLogic JMS アプリケーションの開発」を参照してください。

Weblogic Server の以前のリリースから移行する場合、コンフィグレーション情報は自動的に変換されます (「既存のアプリケーションの移植」を参照)。

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

以下の節では、WebLogic Server および Administration Console の起動方法を概説し、基本的な WebLogic JMS 実装をコンフィグレーションする手順について説明します。

デフォルトの WebLogic Server を起動する

WebLogic Server のデフォルトのロールは管理サーバです。ドメインが 1 つの WebLogic Server のみで構成されている場合は、そのサーバが管理サーバになります。ドメインが複数の WebLogic Server インスタンスで構成されている場合は、まず管理サーバを起動してから、管理対象サーバを起動します。

管理サーバの起動方法の詳細については、Administration Console オンライン ヘルプの「サーバの起動と停止」を参照してください。

Administration Console を起動する

Administration Console は、WebLogic Server に対する Web ベースの管理者フロントエンド (管理者クライアント インタフェース) です。サーバの Administration Console にアクセスする前に、サーバを起動する必要があります。

Administration Console を使用して WebLogic Server インスタンスをコンフィグレーションする手順については、『WebLogic Server のコンフィグレーションと管理』の「Administration Console の起動」を参照してください。

基本的な JMS 実装を手動でコンフィグレーションする

この節では、Administration Console を使用して基本的な JMS 実装をコンフィグレーションする方法について説明します。

  1. ナビゲーション ツリーの [サービス] ノードで、[JMS] ノードを展開します。
  2. ディスクベース ファイルに永続的メッセージを格納する場合は、JMS ファイル ストアを作成する必要があります。JMS ページング機能を使用する場合は、メッセージ本文をメモリから一時的にスワップ アウトするためのページング用 JMS ファイル ストアを追加コンフィグレーションする必要もあります。
    1. JMS ファイル ストアを格納するディレクトリをファイル システムに作成します。
    2. [JMS|ストア] ノードを展開し、右ペインの [新しい JMS ファイル ストアのコンフィグレーション] リンクをクリックします。
    3. [全般] タブで、ストア名とファイル ストア ディレクトリのパス名を指定します。必要に応じて、JMS ファイル ストアがディスクにデータを書き込む方法を決定する同時書き込みポリシーを選択します。
    4. [作成] をクリックします。
    5. 同じ手順を繰り返して、ページング用の JMS ファイル ストアを作成します。

    JMS ファイル ストアおよびページング ファイル ストアのコンフィグレーションの詳細については、Administration Console オンライン ヘルプの「JMS ファイル ストアのタスク」を参照してください。

  3. JDBC によるアクセスが可能なデータベースに永続的メッセージを格納する場合は、JMS JDBC ストアを作成する必要があります (JDBC 接続プールを作成する必要がある場合は、最初に手順 A から C を完了してください。それ以外の場合は、手順 D から開始できます)。
    1. [サービス] および [JDBC] ノードをクリックして展開します。
    2. [接続プール] ノードを右クリックして、[新しい JDBC Connection Pool のコンフィグレーション] を選択します。JDBC 接続プール アシスタントが右ペインに表示されます。
    3. JDBC 接続プール アシスタントの使い方」の説明にしたがって接続プールをコンフィグレーションします。
    4. [JMS|ストア] ノードを展開し、右ペインの [新しい JMS JDBC ストアのコンフィグレーション] リンクをクリックします。
    5. JDBC ストアに名前を付け、接続プールを選択し、プレフィックス名を入力します。
    6. [作成] をクリックします。
    7. 注意 : JDBC 接続プールおよび JMS JDBC ストアのコンフィグレーションの詳細については、Administration Console オンライン ヘルプの「JMS JDBC ストアのタスク」、「JDBC 接続プール」、「[JDBC マルチ プール]」、および「JDBC データ ソース」を参照してください。

  4. 必要に応じて、同じような属性設定で複数の送り先を定義するための JMS テンプレートを作成することもできます。JMS テンプレートは、一時キューの作成にも必要です。
    1. 左ペインの [テンプレート] ノードをクリックしてから、右ペインの [新しい JMS Template のコンフィグレーション] リンクをクリックします。
    2. [全般] タブでテンプレートに名前を付け、[作成] をクリックします。
    3. 必要に応じて、[しきい値と割当]、[オーバーライド]、[有効期限ポリシー]、および [再配信] タブに値を入力します。完了したら、各タブの [適用] をクリックします。

    JMS テンプレートのコンフィグレーションの詳細については、Administration Console オンライン ヘルプの「JMS テンプレートのタスク」を参照してください。

  5. JMS サーバをコンフィグレーションするには、次の手順に従います。
    1. [サーバ] ノードを展開し、右ペインの [新しい JMS Server のコンフィグレーション] リンクをクリックします。
    2. [全般] タブでサーバに名前を付け、[ストア]、[ページング ストア]、および [テンプレート] のうち、作成したものを選択します。その後、[作成] をクリックします。
    3. 必要に応じて、[しきい値と割当] タブに値を入力します。 完了したら、[適用] をクリックします。
    4. [対象とデプロイ] タブで、JMS サーバをデプロイする独立した WebLogic Server のインスタンスまたは移行可能対象サーバを対象として設定します。該当するチェック ボックスを選択し、[適用] をクリックします。

    JMS サーバのコンフィグレーションの詳細については、Administration Console オンライン ヘルプの「JMS サーバのタスク」を参照してください。

  6. JMS 送り先を作成します。JMS 送り先は、キュー (ポイント ツー ポイント) またはトピック (Pub/Sub) です。
    1. [サーバ] ノードの下で、新しい JMS サーバ インスタンスをクリックしてリストを展開し、[送り先] ノードをクリックします。
    2. 右ペインの [新しい JMS Queue のコンフィグレーション] または [新しい JMS Topic のコンフィグレーション] リンクをクリックします。
    3. [全般] タブで、送り先に名前と JNDI 名を付けます。必要に応じて他の属性を入力し、[作成] をクリックします。
    4. 必要に応じて、[しきい値と割当]、[オーバーライド]、[再配信]、[有効期限ポリシー]、および [マルチキャスト] (トピック専用) タブに値を入力します。完了したら、各タブの [適用] をクリックします。

    JMS 送り先のコンフィグレーションの詳細については、Administration Console オンライン ヘルプの「JMS キューおよびトピック送り先のタスク」を参照してください。

  7. WebLogic JMS に用意されているデフォルト接続ファクトリがアプリケーションに適さない場合は、新しい接続ファクトリを作成します。JMS クライアントは、それを使用して JMS 接続を作成できます。
    1. 左ペインの [接続ファクトリ] ノードをクリックして展開し、右ペインの [新しい JMS Connection Factory のコンフィグレーション] リンクをクリックします。
    2. [全般] タブで、接続ファクトリに名前と JNDI 名を付けます。必要に応じて他の属性を入力し、[作成] をクリックします。
    3. 必要に応じて、[トランザクション] および [フロー制御] タブに値を入力します。完了したら、各タブの [適用] をクリックします。
    4. [対象とデプロイ] タブで、接続ファクトリをデプロイする独立した WebLogic Server のインスタンスまたはサーバ クラスタを対象として設定します。該当するチェック ボックスを選択して [適用] をクリックします。

    デフォルト接続ファクトリの使い方の詳細については、「デフォルト接続ファクトリの使い方」を参照してください。接続ファクトリのコンフィグレーションの詳細については、Administration Console オンライン ヘルプの「JMS 接続ファクトリのタスク」を参照してください。

  8. 送り先に到着したメッセージは、デフォルトでは FIFO (先入れ先出し) で格納され、各メッセージのユニークな JMSMessageID に基づいて昇順にソートされます。異なるソート方式をコンフィグレーションする場合は、[送り先キー] ノードを使用して別のソート順序 (LIFO、後入れ先出しなど) を定義します。詳細については、Administration Console オンライン ヘルプの「送り先キーのタスク」を参照してください。
  9. 必要に応じて [分散送り先] ノードを使用し、物理的な送り先をサーバ クラスタ内の単一の分散送り先セットの一部にすると、可用性とロード バランシング機能をさらに高められます。詳細については、Administration Console オンライン ヘルプの「JMS 分散送り先のタスク」を参照してください。
  10. 必要に応じて、アプリケーションでメッセージを並行処理するための JMS セッション プール、およびサーバ セッションを取得してメッセージを処理する接続コンシューマ (キューまたはトピック) を作成します。詳細については、Administration Console オンライン ヘルプの「セッション プールのタスク」および「接続コンシューマのタスク」を参照してください。

コンフィグレーション ウィザードを使用して JMS をコンフィグレーションする

コンフィグレーション ウィザードは、WebLogic Server の管理ドメインとサーバ コンフィグレーションを作成する Java アプリケーションです。コンフィグレーション ウィザードを使用して、JMS、データベース接続 (JDBC)、セキュリティ グループなどのリソースや、セキュリティ ロール、およびユーザ アカウントをコンフィグレーションできます。既存のドメインを変更することもできます。詳細については、『コンフィグレーション ウィザードの使い方』の「Java Messaging Service のコンフィグレーション」を参照してください。

 


WebLogic JMS のクラスタ化のコンフィグレーション

WebLogic Server のクラスタはドメイン内のサーバ群で、より強力で信頼性のあるアプリケーション プラットフォームを提供します。クラスタはそのクライアントにとって単一のサーバに見えますが、実際には、一体で機能するサーバ群です。クラスタは、単一のサーバを超える下記の 4 つの重要な機能を提供します。

WebLogic Server クラスタの機能とメリットについては、『WebLogic Server クラスタ ユーザーズ ガイド』の「WebLogic Server のクラスタ化の概要」を参照してください。

クラスタ化された JMS ライセンスを取得する

JMS クラスタ化を実装するには、クラスタ化された有効な JMS ライセンスが必要です。このライセンスにより、接続ファクトリや送り先を別の WebLogic Server インスタンスに配置することが可能になります。クラスタ化された JMS ライセンスは、外部 JMS プロバイダ機能を使用するためにも必要です。外部 JMS プロバイダ機能の詳細については、Administration Console オンライン ヘルプの「リモートまたは外部 JMS プロバイダへの単純なアクセス」を参照してください。クラスタ化された有効な JMS ライセンスの入手方法については、BEA 販売代理店にお問い合わせください。

JMS クラスタ化の仕組み

管理者は、クラスタ内の各サーバ インスタンスのデフォルト接続ファクトリを使用するか、1 つまたは複数の接続ファクトリをコンフィグレーションしてクラスタ内の 1 つまたは複数のサーバ インスタンスを対象とすることで、クラスタ内のあらゆるサーバから JMS 送り先へのクラスタワイドで透過的なアクセスを確立できます。これにより、各接続ファクトリを複数の WebLogic Server にデプロイできます。 ただし、複数の WebLogic Server にデプロイする場合は、問題なくデプロイできるように、ユーザ定義の各接続ファクトリにユニークな名前を付ける必要があります。接続ファクトリのコンフィグレーションおよびデプロイ、またはデフォルトの接続ファクトリの使い方の詳細については、Administration Console オンライン ヘルプの「JMS 接続ファクトリのタスク」を参照してください。

管理者は、クラスタ内のさまざまなサーバ インスタンス上の複数の JMS サーバにユニークな名前が付けられているかぎり、それらの JMS サーバをコンフィグレーションして JMS 送り先を割り当てることもできます。アプリケーションでは、Java Naming and Directory Interface (JNDI) を使用して接続ファクトリをルックアップし、JMS サーバとの通信を確立するための接続を作成します。各 JMS サーバでは、複数の送り先に対するリクエストが処理されます。JMS サーバで処理されない送り先へのリクエストは、適切な WebLogic Server インスタンスに転送されます。JMS サーバのコンフィグレーションおよびデプロイの詳細については、Administration Console オンライン ヘルプの「JMS サーバのタスク」を参照してください。

JMS クラスタ化のネーミング要件

以下のガイドラインは、WebLogic JMS を単一または複数ドメインで構成されるクラスタ環境で動作するようにコンフィグレーションする場合に適用されます。

単一および複数のドメイン環境における JMS リソースの命名規則の詳細については、Administration Console オンライン ヘルプの「ドメインの相互運用性を実現するための JMS リソースの命名規則」を参照してください。

クラスタ内での JMS 分散送り先

分散送り先は、単一の JNDI 名でアクセスされ、クライアントからは単一の論理的な送り先に見える物理的な送り先のセットです。分散送り先のメンバーは、実際にはクラスタ内の複数のサーバに分散されており、各送り先メンバーは個々の JMS サーバに属しています。分散送り先を使用すると、WebLogic JMS によって高可用性およびクラスタ内の物理的な送り先間でのロード バランシングがサポートされます。すなわち、サーバの障害で送り先メンバーがアクセス不能になった場合に、他のアクセス可能な送り先メンバーにトラフィックがリダイレクトされます。分散送り先のコンフィグレーションの詳細については、Administration Console オンライン ヘルプの「JMS 分散送り先のタスク」を参照してください。

クラスタ内での移行可能なサービスとしての JMS

WebLogic JMS は、クラスタ環境用の WebLogic Server コアに実装されている移行フレームワークを利用します。これにより、WebLogic JMS は、移行リクエストに適切に応答し、JMS サーバを正しい順序でオンラインまたはオフラインにすることができます。これには、スケジューリングされた移行だけでなく、WebLogic Server の障害への対応としての移行も含まれます。詳細については、「JMS サーバの移行可能対象のコンフィグレーション」を参照してください。

JMS クラスタ化のコンフィグレーションのガイドライン

クラスタ環境で WebLogic JMS を使用する場合は、以下のガイドラインに従います。

  1. 『WebLogic Server クラスタ ユーザーズ ガイド』の「WebLogic クラスタの設定」の説明に従ってクラスタ環境をコンフィグレーションします。
  2. Administration Console を使用して、JMS 接続ファクトリの対象とするサーバを指定します。接続ファクトリでは、単一のサーバまたはクラスタを対象として指定できます。対象とは、クラスタ化をサポートするために接続ファクトリに関連付けられたサーバのインスタンスです。
  3. これらの接続ファクトリのコンフィグレーション属性の詳細については、Administration Console オンライン ヘルプの「JMS 接続ファクトリのタスク」を参照してください。

  4. 必要に応じ、Administration Console を使用して、JMS サーバに対して移行可能なサーバを対象として指定できます。JMS サーバでは、単一のサーバまたは移行可能なサーバを対象として指定できます。移行可能な対象とは、クラスタ内にあるサーバ インスタンスのセットで、クラスタ内で 1 台のサーバに障害が発生した場合に、JMS のような「かならず 1 回」のサービスをホストできるものです。
  5. JMS の移行可能対象サーバの詳細については、「JMS サーバの移行可能対象のコンフィグレーション」を参照してください。 JMS サーバのコンフィグレーション属性の詳細については、Administration Console オンライン ヘルプの「JMS サーバのタスク」を参照してください。

    注意 : 同じ送り先を複数の JMS サーバにデプロイすることはできません。また、1 つの JMS サーバを複数の WebLogic Server にデプロイすることもできません。

  6. 必要に応じて、クラスタ内に物理 JMS 送り先を分散送り先セットの一部としてコンフィグレーションできます。詳細については、「クラスタ内での JMS 分散送り先」を参照してください。

フェイルオーバの場合

クラスタ環境の一部である WebLogic Server インスタンスでは、複数の物理的送り先 (キューとトピック) を単一の分散送り先セットの一部としてコンフィグレーションすることで、1 台のサーバに障害が発生した場合にも、WebLogic JMS によるサービスが継続されます。さらに、移行可能サービスの機能を実装すると、JMS のような固定された「かならず 1 回」のサービスによって、クラスタ内の依存するアプリケーションに対するシングル ポイント障害が発生しなくなります。

ただし、自動フェイルオーバは現在 WebLogic JMS でサポートされていません。手動フェイルオーバの実行の詳細については、「WebLogic Server の障害からの回復」を参照してください。

 


JMS サーバの移行可能対象のコンフィグレーション

JMS サーバが行うのは「かならず 1 回」のサービスなので、クラスタ内のすべての WebLogic Server のインスタンスに対してアクティブというわけではありません。代わりに、データの一貫性を保持するためにクラスタ内の単一サーバに「固定」されます。固定されたサービスにより、クラスタ内にある依存するアプリケーションに対してシングル ポイント障害が発生しないように、移行可能対象リスト内のあらゆるサーバをコンフィグレーションして、1 回だけサービスを移行するようにできます。

WebLogic JMS は、この移行フレームワークを活用して、管理者が Administration Console で JMS サーバの移行可能対象を指定できるようにします。いったん適切にコンフィグレーションすると、JMS サーバとその送り先すべてをクラスタ内の別の WebLogic Server へ移行することができます。

これにより、WebLogic JMS は、移行リクエストに適切に応答し、JMS サーバを正しい順序でオンラインまたはオフラインにすることができます。移行には、スケジューリング済み移行のほかに、クラスタ内の WebLogic Server の障害に応答して発生する移行が含まれます。

固定サービスの移行の詳細については、『WebLogic Server クラスタ ユーザーズ ガイド』の「固定サービスの移行」を参照してください。

JMS サービス移行のコンフィグレーション手順

クラスタ環境で JMS サーバを移行可能なサービスにするには、以下の作業が必要です。

  1. 必要に応じて、固定サービスを行うサーバの移行の仕組みについて理解を深めるために、『WebLogic Server クラスタ ユーザーズ ガイド』の「固定サービスの移行」をお読みください。
  2. 永続的なメッセージングを使用した JMS 実装では、移行可能な対象内にあるすべての候補サーバが JMS ストアへのアクセスを共有するように、ストアをコンフィグレーションします。JMS ストアの移行の詳細については、「JMS ストアの移行」を参照してください。
  3. 『WebLogic Server クラスタ ユーザーズ ガイド』の「固定サービスの移行可能対象をコンフィグレーションする」の説明に従って、JMS サーバをホストできるクラスタに、移行可能対象サーバをコンフィグレーションします。
  4. 注意 : 移行された JMS サーバをホストすることになる移行可能対象サーバのインスタンスには、ユニークなリスン アドレス値を設定する必要があります。ユニークな値を設定しない場合、移行は失敗します。

  5. 『WebLogic Server クラスタ ユーザーズ ガイド』の「移行可能対象のサーバ インスタンスに JMS をデプロイする」の説明に従って、JMS サーバをデプロイする移行可能対象サーバ インスタンスを指定します。
  6. 注意 : 移行可能対象サーバが起動すると、クラスタ内のユーザが選んだサーバ上で、JMS サーバも自動的に起動します。

  7. サーバ メンテナンスを実行する前や、ホスト サーバに障害が発生した場合に問題のないサーバへ、JMS サーバとそのすべての送り先を手作業で移行できます。詳細については、『WebLogic Server クラスタ ユーザーズ ガイド』の「対象サーバ インスタンスに固定サービスを移行する」を参照してください。
  8. 注意 : 対象サーバ インスタンスがすでに JMS サーバとその分散送り先メンバーをホストしているときでも、JMS サーバの分散送り先メンバーはクラスタ内の別のサーバ インスタンスへ移行できます。 分散送り先でのフェイル オーバーの詳細については、「分散送り先のフェイルオーバ」を参照してください。

警告 : グローバル トランザクションに単独で参加している JMS サービスを、保留中のトランザクションが残らないように移行するには、JMS サービスと JTA サービスの両方を移行する必要があります。その場合、JMS サービスを移行してから JTA サービスを移行しなければなりません。

JMS ストアの移行

JMS ファイル ストアは、JMS サーバとともに移行できません。したがって、JMS サーバを移行した後にほかの物理マシンから永続ストアへのアクセスを必要とするアプリケーションでは、次のように代替のソリューションを実装する必要があります。

 


JMX を使用した JMS のコンフィグレーション

JMS サーバとは、WebLogic Server によって管理されるリソースです。管理対象リソースとしての JMS には、管理用にコンフィグレーションおよびモニタできる一連の属性が組み込まれています。たとえば、各 JMS サーバには、そのサーバの名前、送り先名、しきい値、および配信パラメータを定義する属性が組み込まれています。コンフィグレーション MBean および実行時 MBean の双方を管理できます。詳細については、『WebLogic JMX Service プログラマーズ ガイド』を参照してください。

以下のコードは、JMX を使用した JMS キューのコンフィグレーション例です。

コード リスト 3-1 JMX を使用した JMS キューの作成

import java.util.Iterator;
import java.util.Set;
import javax.management.ObjectName;
import javax.management.QueryExp;
import javax.management.Attribute;
import javax.naming.Context;
import weblogic.jndi.Environment;
import weblogic.management.MBeanHome;
import weblogic.management.RemoteMBeanServer;
import weblogic.management.WebLogicObjectName;
import weblogic.management.configuration.JMSQueueMBean;
import weblogic.management.configuration.JMSServerMBean;
import weblogic.management.configuration.JMSDestinationMBean;
import weblogic.management.runtime.JMSServerRuntimeMBean;

public class JMSAddQueue {

// WebLogic ドメインの名前。実際のドメインの名前にあわせて //
// 変更してください //
private static String weblogicDomain = "mydomain";

// WebLogic サーバの名前。実際のサーバの名前にあわせて //
// 変更してください //
private static String weblogicServer = "myserver";

// 作成する新しい JMSQueue の名前 //
private static String jmsQueue = "JMSQueue-7";


public static void main(String[] args) {

try {

   Environment env = new Environment();
   env.setProviderUrl("t3://localhost:7001");
   env.setSecurityPrincipal("weblogic");
   env.setSecurityCredentials("weblogic");
   Context ctx = env.getInitialContext();
   MBeanHome home = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
   ctx.close();

   WebLogicObjectName aObjectName = new
   WebLogicObjectName("JMSServer1",
                      "JMSServer",
                       weblogicDomain);

   JMSServerMBean jmsServer = (JMSServerMBean)home.getMBean(aObjectName);

   // 新しい JMSQueueMBean を作成する
   JMSDestinationMBean destination = (JMSQueueMBean)
      home.createAdminMBean(jmsQueue,"JMSQueue");
   destination.setJNDIName("JNDINAME-"+jmsQueue);
   destination.setParent(jmsServer);
   jmsServer.addDestination(destination);

   // MBean サーバに問い合わせを行い、作成した Queue を検索する
   QueryExp query = null;
   RemoteMBeanServer bSvr = home.getMBeanServer();
   Set queueNames = bSvr.queryNames(new    ObjectName(weblogicDomain+":Type=JMSQueue,Name="+jmsQueue+",*"),query);
   ObjectName name = (ObjectName)queueNames.iterator().next();

   System.out.println("QUEUE MBEAN RETRIEVED: " + name);

   // BytesMaximum 属性を、デフォルト値以外に
   // 設定する
   bSvr.setAttribute(name,new Attribute("BytesMaximum",new Long(10000)));
   } catch (Exception e) {
   e.printStackTrace();
   }
  }
}

 


WebLogic JMS のチューニング

以下の節では、WebLogic JMS で利用できる管理パフォーマンス チューニング機能を実装することによって、アプリケーションを最大限に活用する方法について説明します。

 


WebLogic JMS のモニタ

JMS サーバ、接続、セッション、送り先、恒久サブスクライバ、メッセージ プロデューサ、メッセージ コンシューマ、サーバ セッション プールなどの JMS オブジェクトに関する統計が提供されます。JMS 統計は、Administration Console でモニタできます。

サーバの実行中は、JMS 統計は増え続けます。サーバを再起動するときにのみ、統計をリセットできます。WebLogic JMS のコンフィグレーションおよびモニタの詳細については、Administration Console オンライン ヘルプの「JMS : モニタ」を参照してください。

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

 


WebLogic Server の障害からの回復

以降の節では、サーバで障害が発生した場合に JMS アプリケーションを正常に終了させる方法、およびサーバで障害が発生した後に JMS データを移行する方法について説明します。

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

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

表 3-1 サーバ障害に関するプログラミングの考慮事項

WebLogic Server インスタンスの障害発生時の状態

対応

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

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

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

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


 

新しいサーバへの JMS データの移行

WebLogic JMS では、WebLogic Server のコアに実装される移行フレームワークを使用します。これにより、WebLogic JMS は移行要求に正しく応答できるようになり、WebLogic JMS サーバのオンラインとオフラインの切り替えが順序立って行われるようになります。これには、スケジューリングされた移行だけでなく、WebLogic Server の障害への応答としての移行も含まれます。

いったん適切にコンフィグレーションすると、JMS サーバとそのすべての送り先をクラスタ内の別の WebLogic Server へ移行できます。

新しくサーバを起動し、表 3-2 のタスクのうち 1 つ以上を実行することで、障害が発生した WebLogic Server から JMS データを回復できます。

注意 : クラッシュしているか、管理サーバからアクセスできないサーバ インスタンスからサービスを移行するときには、特別な考慮事項があります。移行を実行する時点で、以前アクティブだったサービスのホストに管理サーバからアクセスできない場合は、「現在アクティブなホストがない場合のサービスの移行」を参照してください。

表 3-2 移行タスク ガイド

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

実行するタスク . .

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

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

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

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

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

トランザクション

クラッシュ後の回復を容易にするために、WebLogic Server ではトランザクション回復サービスが提供されている。このサービスによりシステムの起動時にトランザクションの回復が自動的に試行される。トランザクション回復サービスでは、サーバのトランザクションのログが記録される。

障害の発生したサーバからトランザクションを回復する手順の詳細については、Administration Console オンライン ヘルプの「サーバに障害が発生した後のトランザクションの回復」を参照。

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

新しく WebLogic Server を起動する方法の詳細については、Administration Console オンライン ヘルプの「サーバの起動と停止」を参照してください。 障害が発生したサーバの回復については、『WebLogic Server のコンフィグレーションと管理』の「障害が発生したサーバの回復」を参照してください。

移行可能サービスの定義の詳細については、『WebLogic Server クラスタ ユーザーズ ガイド』の「固定サービスの移行」を参照してください。

 

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