BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic J2EE コネクタ アーキテクチャ

 Previous Next Contents Index PDF で侮ヲ  

接続管理

以下の節では、BEA WebLogic J2EE 接続管理アーキテクチャ関連のさまざまな接続管理作業について説明します。

 


接続プロパティのコンフィグレーション

ra.xml デプロイメント記述子ファイルには、ManagedConnectionFactory インスタンスごとに 1 つのコンフィグレーション設定を宣言するための config-property 要素が入っています。通常、リソース アダプタ プロバイダは、これらのコンフィグレーション プロパティを設定します。ただし、コンフィグレーション プロパティが設定されていない場合、リソース アダプタのデプロイ担当者がプロパティの値を指定する必要があります。

WebLogic Server では、weblogic-ra.xml デプロイメント記述子ファイルの map-config-property 要素を使用してコンフィグレーション プロパティを設定できます。リソースのアダプタの一連のコンフィグレーション プロパティをコンフィグレーションするには、宣言するコンフィグレーション プロパティごとに map-config-property-name と map-config-property-value の組み合わせを指定します。

また、map-config-property 要素を使用すると、ra.xml デプロイメント記述子ファイルで指定した値をオーバライドできます。WebLogic Server は、起動時に map-config-property の値を ra.xml ファイルの config-property の値と比較します。コンフィグレーション プロパティ名が一致した場合、WebLogic Server は対応するコンフィグレーション プロパティ名の map-config-property-value を使用します。

 


BEA WebLogic Server 拡張接続管理機能

「J2EE コネクタ仕様 バージョン 1.0、最終リリース」に記載されている接続管理要件に加えて、BEA WebLogic Server は、接続プールのサイズをコンフィグレーションして自動的に維持するオプション設定とサービスを提供します。

ManagedConnection 作成に関する実行時パフォーマンス コストの最小化

ManagedConnection の作成では、ManagedConnection が表すエンタープライズ情報システム (EIS) の複雑さに応じて大きなコストが発生します。そのため、WebLogic Server の起動時に接続プールに初期数の ManagedConnection を登録し、実行時には作成しないようにします。この設定は、weblogic-ra.xml 記述子ファイルの initial-capacity 要素を使用してコンフィグレーションします。この要素のデフォルト値は、1 ManagedConnection です。

「J2EE コネクタ仕様、バージョン 1.0、最終リリース」に記されているように、アプリケーション コンポーネントがリソース アダプタを使用して EIS との接続を要求すると、WebLogic Server はまず、接続プール内の既存で利用可能な ManagedConnection の中で要求されている接続タイプと一致するものがないか探します。しかし、一致するものが見つからない場合には、新規の ManagedConnection を作成して接続要求に応じます。

WebLogic Server の設定を使用すると、一致するものがない場合に ManagedConnection を自動的に追加作成できます。この機能により、時間の経過と共に増加する接続プールのサイズとサイズが増加するたびに低下するサーバのパフォーマンスを柔軟に制御できます。この設定は、weblogic-ra.xml 記述子ファイルの capacity-increment 要素を使用してコンフィグレーションします。デフォルト値は 1 ManagedConnection です。

WebLogic Server の起動時には開始セキュリティ プリンシパルまたはリクエスト コンテキスト情報が不明なので、initial-capacity でコンフィグレーションされている初期数の ManagedConnection は、デフォルト サブジェクトと null のクライアント リクエスト情報の入ったデフォルト セキュリティ コンテキストを使用して作成されます。capacity-increment を使用して追加の ManagedConnection を作成すると、最初の ManagedConnection は接続要求の既知の開始プリンシパルとクライアント リクエスト情報を使用して作成されます。残りの ManagedConnection は、最初の ManagedConnection を作成するときに使用されたものと同じデフォルト セキュリティ コンテキストを使用して capacity-increment の制限まで作成されます。

デフォルト リソース プリンシパルのコンフィグレーションの詳細については、セキュリティを参照してください。

接続プールの増加数の制御

作成される ManagedConnection の数が時間の経過とともに増えると、各 ManagedConnection によって消費されるメモリやディスク容量などのシステム リソースの量が増加します。エンタープライズ情報システム (EIS) によっては、この消費量がシステム全般のパフォーマンスに影響します。WebLogic Server では、ManagedConnection がシステム リソースに与える影響を制御するため、割り当て済み ManagedConnection の最大許容数の設定をコンフィグレーションできます。

この設定は、weblogic-ra.xml 記述子ファイルの maximum-capacity 要素を使用してコンフィグレーションします。接続要求中に ManagedConnection を (capacity-increment が 2 以上の場合は複数) 新規作成する必要がある場合、WebLogic Server が最大許容数を超えて ManagedConnection を作成することはありません。最大数に達すると、WebLogic Server は接続プールから ManagedConnection を再利用しようとします。ただし、再利用できる接続がない場合、再利用の試みが失敗したことと、接続要求が最大許容数の接続分のみ許可されることを示す警告がログに記録されます。maximum-capacity のデフォルト値は 10 ManagedConnection です。

システム リソースの使用量の制御

ManagedConnection の最大数を設定すると、処理能力を超えた数の ManagedConnection を割り当てることが原因でサーバが過負荷になることはありませんが、常に必要に応じてシステム リソースの量を効率的に制御するわけではありません。WebLogic Server では、リソース アダプタのデプロイメント中に接続プール内の ManagedConnection の動作状況をモニタするサービスを利用できます。使用量が減少し、そのレベルで一定期間とどまっている場合、接続プールのサイズは継続的な接続要求を十分満たせるだけの量にまで縮小されます。

このシステム リソース使用量サービスはデフォルトで有効です。ただし、weblogic-ra.xml 記述子ファイルの shrinking-enabled 要素を false に設定すると、このサービスを無効にできます。weblogic-ra.xml 記述子ファイルの shrink-period-minutes 要素を使用すると、WebLogic Server が接続プールのサイズを縮小する必要があるかどうかを計算し、縮小する必要がある場合に未使用の ManagedConnection をプールから削除する頻度を設定できます。この要素のデフォルト値は、15 分です。

接続リークの検出

接続リークは、接続終了後に接続を閉じないエンタープライズ JavaBeans (EJB) など、問題のあるアプリケーション コンポーネントから発生します。「J2EE コネクタ仕様、バージョン 1.0、最終リリース」に記載されているように、EIS 接続を終了すると、アプリケーション コンポーネントは接続解除要求を送信します。この時点で、WebLogic Server は必要なクリーンアップを実行し、接続を将来の接続要求で使用できるようにする必要があります。ただし、アプリケーション コンポーネントが接続解除に失敗した場合、接続プールが利用可能な接続を使い果たすため、将来の接続要求が失敗することがあります。

WebLogic Server にはこのシナリオを防止する 2 つのメカニズムがあります。

ガベージ コレクタ メソッド

WebLogic Server は Java 仮想マシン (JVM) のガベージ コレクタ メカニズムを活用して自動的に接続リークを検出します。アプリケーション コンポーネントが終了し、アプリケーション コンポーネントが使用する接続が間接参照されるようになると、ガベージ コレクタにより接続オブジェクトの finalize() メソッドが呼び出されます。

ガベージ コレクタが finalize() メソッドを呼び出すときに、アプリケーション コンポーネントが接続を閉じていないと WebLogic Server が判断すると、サーバはリソース アダプタの ManagedConnection.cleanup() メソッドを呼び出し、自動的に接続を閉じます。WebLogic Server はアプリケーション コンポーネント接続の正常なクローズ時に Connection_CLOSED イベントを受け取った場合と同じように動作します。

アイドル タイマー メソッド

ガベージ コレクタの動作は予測できず、実際にはまったく呼び出されないこともあるため、WebLogic Server では第 2 の接続リーク検出メソッドであるアイドル タイマーが提供されます。アイドル タイマーにより、WebLogic Server は各接続の前回の使用をトラッキングすることができます。EIS への各接続のアイドル タイマーは、WebLogic Server デプロイメント記述子エディタを使用してコンフィグレーションすることができます。weblogic-ra.xml デプロイメント記述子の要素.Administration Console デプロイメント記述子エディタを使用したファイルの編集を参照してください。

アプリケーション コンポーネントが使用を目的として接続を確保したにもかかわらず、アクティブに使用していない場合、アイドル タイマーがカウントを開始します。現在アクティブになっている接続をクローズしてしまうことを防ぐため、設定されているリミットに接続が達しても、WebLogic Server は自動的に接続をクローズしないようになっています。WebLogic Server は、接続がアイドル時間を超えても、絶対的にクローズする必要があると判断できるまで待機します。

リソース アダプタの接続プールが割り当てられている接続の最大数を超え、フリー プールに接続が割り当てられていない場合、接続要求は失敗します。場合によっては、接続が非アクティブであっても、接続がリークし、フリー プールに戻されないことがあります。その場合、WebLogic Server は接続要求の時点で最長アイドル時間を超えている接続を閉じるため、リクエストが成功します。

以前に使用されていた要素の非推奨

connection-duration-time 要素および connection-cleanup-frequency 要素は非推奨になりました。これらのパラメータを現在コンフィグレーションで使用している場合、デプロイメント機能はまだ使用することができます。しかし、これらの要素はコンフィグレーションに反映されません。weblogic-ra.xml デプロイメント記述子の要素.weblogic-ra.xml DTDを参照してください。

 


Console を使用した接続プールのモニタ

BEA J2EE コネクタ アーキテクチャでは、WebLogic Server Console に検出されたリークを表示するモニタ機能、およびリークを起こしているアプリケーションを突き止めるためにスタックをルックアップするメソッドがあります。Console の [削除] ボタンを使用すると、リークが発見された接続を動的に閉じることができます。接続を削除するオプションは指定のアイドル時間を超えており、削除しても安全な接続のみに使用できます (言い換えると、その接続はトランザクションに使用されていない)。

weblogic-ra.xml ファイルの connection-profiling-enabled 要素は、各接続の割り当て先のコール スタックを接続プールに格納するか否かを指定します。要素値を true に設定すると、この情報を Console を通じてアクティブ接続上で表示できます。また、リーク接続とアイドル接続のスタックを表示でき、接続を閉じないコンポーネントのデバッグもできます。

はじめに

Console を使用してモニタ ツールを呼び出す方法は 2 つあります。

第 1 の方法

  1. Console の左ペインで [デプロイメント|コネクタ] を選択し、コネクタ一覧を表示します。

  2. コネクタを右クリックし、ポップアップ メニューから [すべての接続中のコネクタ接続プールのモニタ] を選択します。

    接続プールの接続情報が選択したコネクタに関して右ペインに表示されます。

第 2 の方法

  1. Console の右ペインの [デプロイメント] で、[コネクタ] を選択します。

    コネクタ テーブルが表示されます。

  2. [名前] カラムで、モニタするコネクタをクリックします。

  3. [モニタ] タブで、[すべての接続中のコネクタ接続プールのモニタ] を選択します。

    接続プールの接続情報が選択したコネクタに関して右ペインに表示されます。

リークされた接続の表示

Console の [接続リーク プロファイル] カラムで、リークされた接続に関するプロファイル情報を照会できます。このカラムはリークされた接続の数を表示するだけの [検出されたリーク接続] カラムと混同しないようにしてください。

これら 2 つのカラムの大きな相違は、[接続リーク プロファイル] カラムが weblogic-ra.xml ファイルの connection-profiling-enabled 設定を用いて制御される点です。デフォルトでは、この設定は false であるため、通常、[接続リーク プロファイル] カラムはゼロ (無効) となります。ただし、[検出されたリーク接続] カラムは常に有効化され、リークされた接続の数が常に表示されます。

Console を使用してリークされた接続を照会する方法は 2 つあります。

第 1 の方法

  1. Console の左ペインで [デプロイメント|コネクタ] を選択し、コネクタ一覧を表示します。

  2. コネクタを右クリックし、ポップアップ メニューから [リークされた接続を表示] を選択します。

    接続プールの接続情報が選択したコネクタに関して右ペインに表示されます。

  3. [接続リーク プロファイル] カラムで、選択されたコネクタに関するリークされた接続の数をクリックします。

    リークされた接続に関する情報が右ペインに表示されます。

第 2 の方法

  1. Console の右ペインの [デプロイメント] で、[コネクタ] を選択します。

    コネクタ テーブルが表示されます。

  2. [名前] カラムで、モニタするコネクタの名前をクリックします。

  3. [モニタ] タブで、[すべての接続中のコネクタ接続プールのモニタ] を選択します。

    接続プールの接続情報が選択したコネクタに関して右ペインに表示されます。

  4. [接続リーク プロファイル] カラムで、選択されたコネクタに関するリークされた接続の数をクリックします。

    リークされた接続に関する情報が右ペインに表示されます。

アイドル コネクタの表示

Console の [アイドル接続プロファイル] カラムで、アイドル接続に関するプロファイル情報を照会できます。このカラムはアイドル接続の数を表示するだけの [検出されたアイドル接続] カラムと混同しないようにしてください。

これら 2 つのカラムの大きな相違は、[アイドル接続プロファイル] カラムが weblogic-ra.xml ファイルの connection-profiling-enabled 設定を使用して制御される点です。デフォルトでは、この設定は false であるため、通常、[アイドル接続プロファイル] カラムはゼロ (無効) となります。ただし、[検出されたアイドル接続] カラムは常に有効化され、アイドル接続の数が常に表示されます。

Console を使用してアイドル接続を照会する方法は 2 つあります。

第 1 の方法

  1. Console の左ペインで [デプロイメント|コネクタ] を選択し、コネクタ一覧を表示します。

  2. コネクタを右クリックし、ポップアップ メニューから [アイドル接続を表示] を選択します。

    接続プールの接続情報が選択したコネクタに関して右ペインに表示されます。

  3. [アイドル接続プロファイル] カラムで、選択されたコネクタに関するアイドル接続の数をクリックします。

    アイドル接続に関する情報が右ペインに表示されます。

第 2 の方法

  1. Console の右ペインの [デプロイメント] で、[コネクタ] を選択します。

    コネクタ テーブルが表示されます。

  2. [名前] カラムで、モニタするコネクタの名前をクリックします。

  3. [モニタ] タブで、[すべての接続中のコネクタ接続プールのモニタ] を選択します。

    接続プールの接続情報が選択したコネクタに関して右ペインに表示されます。

  4. [アイドル接続プロファイル] カラムで、選択されたコネクタに関するアイドル接続の数をクリックします。

    アイドル接続に関する情報が右ペインに表示されます。

接続の削除

リークされた接続またはアイドル接続を Console を使用して削除するには、以下の手順を実行します。

  1. Console の右ペインの [デプロイメント] で、[コネクタ] を選択します。

    コネクタ テーブルが表示されます。

  2. [名前] カラムで、モニタするコネクタの名前をクリックします。

  3. [モニタ] タブで、[すべての接続中のコネクタ接続プールのモニタ] を選択します。

    接続プールの接続情報が選択したコネクタに関して右ペインに表示されます。

  4. [接続] カラムで、選択されたコネクタに関する接続の数をクリックします。

    接続情報が表形式で表示され、各行に接続が 1 つ表示されます。

  5. 接続を削除するには、その接続の右にある [削除] ボタンをクリックします。

 


エラー ロギングとトレース機能

「J2EE コネクタ仕様、バージョン 1.0、最終リリース」では、アプリケーション サーバの要件の 1 つとして、ManagedConnectionFactory.set/getLogWriter を使用してエラー ロギングおよびトレース機能をリソース アダプタに提供することが記載されています。

weblogic-ra.xml ファイル記述子ファイルでは、WebLogic Server にデプロイされたリソース アダプタでロギングとトレースのコンフィグレーションが可能な 2 つの要素がサポートされます。以下の要素がこれにあたります。

詳細については、weblogic-ra.xml デプロイメント記述子の要素.を参照してください。

 

Back to Top Previous Next