www.bea.com code library downloads support.bea.com BEA logo

WebLogic エンタープライズ JavaBeans プログラマーズ ガイド

 Previous Next Contents Index View as PDF

EJB の実行時モニタ

EJB のために収集される実行時情報は重要です。EJB のチューニングとデバッグに非常に有用なものとなります。この節では、収集される実行時モニタ属性および統計の各々について説明し、この情報に基づいて EJB をチューニングする際の、いくつかの基本的なガイドラインを示します。

実行時の数値の一部は比率を計算するためだけに収集されており、それだけでは役立たないという点に留意することが重要です。たとえば、キャッシュ ヒット数は、キャッシュ アクセス数との関連以外では、役に立ちません。しかし 2 つを共に使うと、非常に貴重な統計情報であるキャッシュ ヒット率を計算できます。ただし、キャッシュの現在の使用量の測定に役立つ現在のキャッシュされた Bean 数など、実行時属性によっては、それだけでも有用なものもあります。

注意: アプリケーションはそれぞれ違うので、このガイドラインを決定的なものとは考えないでください。

 


実行時キャッシュ属性

この節では、以下を含む、実行時キャッシュ属性についての詳細情報を示します。

現在のキャッシュされた Bean 数

この EJB ホームからの、現在 EJB キャッシュに入っている Bean の総数を返します。この情報は、利用されているコンフィグレーション済みキャッシュ容量の現在の割合の計算に役立つ場合があります。

キャッシュ アクセス数

キャッシュから Bean へのアクセスの総試行回数を返します。この情報は、キャッシュ ヒットなど他の数値との関係において有用です。

キャッシュ ヒット数

キャッシュから Bean へ試みられたアクセスが成功した総回数を返します。この情報は、EJB キャッシュの効率を判断するのに有用です。

キャッシュ ミス数

キャッシュから Bean へ試みられたアクセスが失敗した総回数を返します。この情報は、EJB キャッシュの効率を判断するのに有用です。

アクティブ化の数

この EJB ホームからの、アクティブ化された Bean の総数を返します。

パッシベーション数

この EJB ホームからの、パッシベーションされた Bean の総数を返します。

キャッシュ ミス率

キャッシュ ミス率とは、コンテナがキャッシュ内で Bean を見つけようと試行した回数 (キャッシュ アクセス) に対する、コンテナがキャッシュ内に Bean を見つけられなかった回数 (キャッシュ ミス) の比率です。

キャッシュ ミス率 = (キャッシュ総ミス数 / キャッシュ総アクセス数) * 100

一般に、キャッシュ ミス率が低いほど、EJB の効率は高くなります。キャッシュから Bean を取得することによって節約される時間の長さは、その Bean の ejbActive メソッドの代償および cache-between-transactions の設定によって異なります。キャッシュ ミスが生じると、フリー プールから Bean を取得して、その ejbActive メソッドを呼び出す必要があります。ejbActivate の呼び出しにかかる負担が大きいほど、キャッシュ ミスによるパフォーマンスの低下も大きくなります。EJB が cache-between-transaction を true に設定してコンフィグレーションされていると、キャッシュ ミスにより EJB コンテナは Bean をロードするのにデータベースへの追加呼び出しを行わざるを得なくなります。

キャッシュ ミス率の統計に応じて何をチューニングするかについては、『WebLogic Server パフォーマンス チューニング ガイド』の「Cache Miss Ratio」を参照してください。

 


実行時ロック マネージャ属性

この節では、以下を含む、実行時ロック マネージャ属性についての詳細情報を示します。

現在のロック エントリ数

ロック マネージャの現在のロック エントリ数を返します。この情報は、EJB のチューニングに実際に役立つわけではありませんが、古くなったロック エントリの検出に役立つ場合があります。

ロック マネージャのアクセス数

Bean に対するロック取得の総試行回数を返します。この情報には、クライアントの代わりに既にロックされている Bean に対するロックを取得する試みが含まれます。この情報は、待機総数およびタイムアウト総数との関係において有用です。

待機総数

Bean に対するロックを待機していたスレッドの総数を返します。この情報は、ロック待機率を計算するのに有用です。

タイムアウト総数

Bean に対するロックを待機していてタイムアウトしたスレッドの総数を返します。この情報は、ロック タイムアウト率を計算するのに有用です。

ロック待機率

これは、スレッドの Bean に対するロックの待機時間と、発行されたロック リクエストの総数の比率です。

ロック待機率 = (現在の待機数 / 現在のロック エントリ数) * 100

最大限のパフォーマンスを得るには、ロック待機率をできるだけ低く抑えます。

ロック待機率の統計に応じて何をチューニングするかについては、『WebLogic Server パフォーマンス チューニング ガイド』の「Lock Waiter Ratio」を参照してください。

ロック タイムアウト率

これは、ロック マネージャに対するタイムアウトとアクセスの比率です。

ロック タイムアウト率 = (ロック マネージャ タイムアウト総数 / ロック マネージャ アクセス総数) * 100

タイムアウトは、パフォーマンスを著しく低下させるので、ロック タイムアウト率は最低限に抑えるよう心掛ける必要があります。タイムアウトは、いくつかのレベルでパフォーマンスに悪影響を与えます。第 1 に、ロックを待機している各スレッドは、他のリクエストにサービスを行うためにサーバが使用できるスレッドより、1 つ少なくなります。第 2 に、ロック タイムアウトの結果、現在のトランザクションをロールバックする例外が発生し、そのトランザクションで行われた作業がすべて消去されて現在のリクエストが失敗します。

ロック タイムアウト率の統計に応じて何をチューニングするかについては、『WebLogic Server パフォーマンス チューニング ガイド』の「Lock Timeout Ratio」を参照してください。

 


実行時フリー プール属性

この節では、以下を含む、実行時フリー プール属性についての詳細情報を示します。

アクセス総数

フリー プールからインスタンスを取得するための総試行回数を返します。この情報は、他のフリー プールに関する数値との関係において有用です。

ミス総数

フリー プールからインスタンスを取得するための試行が失敗した総回数を返します。プール内に利用できるインスタンスがない場合、プールから Bean を取得する試みは失敗します。この情報は、プール ミス率を計算するのに有用です。

破棄した総数

このプールからの Bean インスタンスが、そこから非アプリケーション例外が送出されたことにより破棄された回数の合計を返します。この情報は、Bean 破棄率を計算するのに有用です。

現在のプールされた Bean 数

フリー プール内の現在利用できる Bean インスタンス数を返します。この情報は、EJB の需要を追跡するのに有用です。たとえば、これは異常なプール ミス率について調査を行う際に重要となる場合があります。

現在の使用中 Bean 数

フリー プールからの、現在使用中の Bean インスタンスの数を返します。この情報は、EJB の需要を追跡するのに有用です。たとえば、これは異常なプール ミス率について調査を行う際に重要となる場合があります。

現在の待機数

フリー プールからの利用可能な Bean インスタンスを現在待機しているスレッドの数を返します。この情報はたとえば、ある特定の時点にアプリケーションのパフォーマンスが低かった原因を調査する際に有用になる場合があります。

プールのタイムアウト総数

フリー プールからの利用可能な Bean インスタンスを待機していてタイムアウトしたスレッドの総数を返します。この情報は、プール タイムアウト率を計算するのに有用です。

プール ミス率

プール ミス率は、プールへの Bean のリクエストの総数に対する、利用できる Bean がないときにプールから Bean を取得するリクエストが行われた回数の比率です。

プール ミス率 = (プール総ミス数 / プール総アクセス数) * 100

プール ミスの結果は、Bean の種類によって異なります。

ステートレス セッション Bean の場合のプール ミスでは、リクエストを行っているスレッドは Bean がプール内で利用できるようになるまで待機します。スレッドの最長待機時間は、Bean のトランザクション タイムアウト値と等しい時間です。

エンティティ Bean およびメッセージ駆動型 Bean は、インスタンスが利用できるようになるまで待機することはありません。その代わり、プール ミスがあると、プールはリクエストをサービスする新しい Bean インスタンスを作成します。プール ミスがあると、実行スレッドは、Bean が利用できるようになるまで待機するか、新しい Bean が作成されるのを待機しなければならなくなるので、損失を招くことになります。したがって、プール ミス率は最低限に抑えることを心掛けるべきです。

プール ミス率の統計に応じて何をチューニングするかについては、『WebLogic Server パフォーマンス チューニング ガイド』の「Pool Miss Ratio」を参照してください。

Bean 破棄率

Bean 破棄率とは Bean のリクエストの総数に対する、破棄された Bean 数の比率です。

Bean 破棄率 = (総破棄数 / 総アクセス数) * 100

EJB の仕様では、実行中に Bean から非アプリケーション例外が送出された場合には EJB コンテナにより Bean を破棄することを定めています。Bean を破棄すると、破棄された Bean は多くの場合新しい Bean インスタンスで置き換えられることになるので、損失を招きます。したがって、Bean 破棄率は最低限に抑える必要があります。

Bean 破棄率の統計に応じて何をチューニングするかについては、『WebLogic Server パフォーマンス チューニング ガイド』の「Destroyed Bean Ratio」を参照してください。

プール タイムアウト率

プール タイムアウト率とは、行われたリクエストの総数に対する、プールからの Bean を待機していてタイムアウトしたリクエストの比率です。

プール タイムアウト率 = (プール総タイムアウト数 / プール総アクセス数) * 100

この比率は、ステートレス セッション Bean の場合のみ有効です。Bean が利用できるようになるのを待機するのは、この種類の Bean のみだからです。

その他の種類の Bean は待機を行わず、リクエストをサービスする新しいインスタンスを自動的に作成します。最大限のパフォーマンスを得るには、プール タイムアウト率をできるだけ低くする必要があります。

プール タイムアウト率の統計に応じて何をチューニングするかについては、『WebLogic Server パフォーマンス チューニング ガイド』の「Pool Timeout Ratio」を参照してください。

 


実行時トランザクション属性

この節では、以下を含む、実行時トランザクション属性についての詳細情報を示します。

トランザクションのコミット総数

この EJB に対してコミットされたトランザクションの総数を返します。この情報は、トランザクション コミット率を計算するのに有用です。

トランザクションのロールバック総数

この EJB に対してロールバックされたトランザクションの総数を返します。この情報は、トランザクション コミット率を計算するのに有用です。

トランザクションのタイムアウト総数

この EJB に対してタイムアウトされたトランザクションの総数を返します。この情報は、トランザクション タイムアウト率を計算するのに有用です。

トランザクション ロールバック率

トランザクション ロールバック率とは、EJB に関与するトランザクションの総数に対する、ロールバックしたトランザクションの比率です。

トランザクション ロールバック率 = (トランザクション ロールバック総数 / トランザクション総数) * 100

この情報が有益な理由はいくつかあります。まず、アプリケーションにおける問題点を示すのに役立ちます。たとえば、予想外に高いロールバック率の原因は、アプリケーションが使用しているリソースに問題があることかもしれません。また、アプリケーションの効率を評価する際にも役立つことがあります。トランザクション ロールバック率が高いということは、多くの作業が行われていても最終的にはロールバックされてしまい、非効率であることを意味します。

トランザクション ロールバック率の統計に応じて何をチューニングするかについては、『WebLogic Server パフォーマンス チューニング ガイド』の「Transaction Rollback Ratio」を参照してください。

トランザクション タイムアウト率

トランザクション タイムアウト率とは、EJB に関与するトランザクションの総数に対する、タイムアウトしたトランザクションの比率です。

トランザクション タイムアウト率 = (トランザクション タイムアウト総数 / トランザクション総数) * 100

タイムアウトは、効率が悪いということを表すため、特に懸念の対象となります。

EJB リクエストはすべて、スレッドや Bean インスタンスなど、貴重なサーバ リソースを使用します。タイムアウトしたトランザクションがあるということは、サーバ リソースが無益に拘束されていたことを意味します。トランザクション タイムアウト率は、アプリケーションにおける問題点を示すものとして有益です。

トランザクション タイムアウト率の統計に応じて何をチューニングするかについては、『WebLogic Server パフォーマンス チューニング ガイド』の「Transaction Timeout Ratio」を参照してください。

 


JMS 属性

この節では、以下を含む、JMS 属性についての詳細情報を示します。

活動中の JMS 接続

[活動中の JMS 接続] フィールドでは、EJB コンテナが JMS 送り先ソースに正常に接続し、それによりメッセージ駆動型 Bean がメッセージを受け取っているかどうかが示されます。このフィールドの値が「false」と表示されている場合は、接続失敗理由として考えられる要因をサーバ ログで調べてください。

 

 Back to Top Previous Next