アプリケーション・プロファイル・パフォーマンスの考慮事項

アプリケーション・プロファイルを使用するとアセンブリー構成技術が 使用可能になり、アプリケーションのランタイム、パフォーマンス、および スケーラビリティーが改善されます。 着信要求を識別するタスク、並行性やその他のデータ・アクセス特性を判断するアクセス・インテントを識別するタスク、およびそれらのタスクをアクセス・インテントにマップするプロファイルを識別するタスクを構成することができます。

アプリケーション・サーバーを構成する機能は、パフォーマンスや効率、スケーラビリティーを改善する一方で、開発や保守にかかるコストを削減します。アプリケーション・プロファイル・サービスには、サービスが必要でない場合に 使用不可にするチェック・ボックス以外にチューニング・パラメーターがありません。 しかし、アプリケーション・プロファイル・サービスはオーバーヘッドが小さく、使用不可にすべきではありません。 これを使用不可にしておくと、予測不能な結果が生じる場合があります。

アクセス・インテントを使用すると、データ・アクセス特性の指定が可能になります。 WebSphere ランタイム環境は、これらのヒントを使用して適切な分離レベルおよび並行性を設定することによって、 データへのアクセスを最適化します。 各種のアクセス・インテント・ヒントは、 1 つのアクセス・インテント・ポリシーにグループ化することができます。

本製品では、Bean レベルのアクセス・インテントを構成して所定の Bean をロードすることをお勧めします。 アプリケーション・プロファイルにより、希望する場合は Entity Bean 上で複数のアクセス・インテント・ポリシーを構成することができます。 呼び出し元によっては、データを読み取る意図で Bean をロードするものや、 アップデートのために Bean をロードするものがあります。 アプリケーション・サーバーを構成する機能は、 開発および保守のコストを削減すると同時に、パフォーマンス、効率、 およびスケーラビリティーを向上させることができます。

アクセス・インテントを使用すると、使用される特定のタイプの エンタープライズ Bean に基づき、最適なパフォーマンスを提供するように EJB コンテナーを構成することができます。 各種のアクセス・インテント・ヒントは、デプロイメント時に明確に指定して、 コンテナーやパーシスタンス・マネージャーなどの WebSphere リソースを指示したり、 該当するアクセス・インテント・サービスをすべての EJB 要求に提供したりすることができます。

アプリケーション・プロファイル・サービスは、 ランタイム動作を微調整することによって、Entity Bean のパフォーマンスおよびスループットを全体的に向上させます。 アプリケーション・プロファイル・サービスを使用すると、「ワーストケース」を選択することなく、 EJB の最適化を複数ユーザーのアクセス・パターンに対してカスタマイズすることができます。「 ワーストケース」とは、findByPrimaryKey メソッドによってアクセスされる Bean での「ペシミスティック更新」などを指します。 この場合、クライアントが読み取りや更新のために「ペシミスティック更新」を必要とするかどうかは関係ありません。

アプリケーション・プロファイルで定義できる階層は、「コンテナー管理タスク」 > 「アプリケーション・プロファイル」 > 「アクセス・インテント・ポリシー」 > 「アクセス・インテント・オーバーライド (Access Intent Overrides)」です。Container-Managed タスクは、作業単位 (UOW) を識別し、1 つのメソッドまたは一連のメソッドと関連付けられます。 タスクに関連付けられたメソッドが呼び出されると、そのタスク名は、要求によって伝搬されます。 例えば、UOW は、トランザクションまたは ActivitySession に対応するアプリケーション内の固有のパスを指します。 タスクの名前は、Java EE クライアントまたはサーブレット、あるいはエンタープライズ Bean のメソッドに対して明確に割り当てられます。 タスク名は、呼び出しグラフまたはサブグラフの開始点を識別します。 タスク名は、グラフの開始点から、それ以降のすべての IIOP 要求の上を、それ以降の起動を識別しつつ、 構成されたタスクに所属するグラフに沿って、下流へと流れます。 ベスト・プラクティスとしては、UOW が開始された場所 (例えばトランザクションまたは ActivitySession) とは無関係に、タスクをその開始点に割り当てます。

アプリケーション・プロファイル・サービスは、 伝搬されたタスクをアクセス・インテント・ポリシーに関連付けます。 Bean がロードされ、データが取り出されると、 そのデータの取り出しのために使用された特性は、アプリケーション・プロファイルによって指示されます。 アプリケーション・プロファイルは、特定のタスク用のデータにアクセスするために使用されるべき、アクセス・インテント・ポリシーおよびオーバーライドを構成します。

アクセス・インテント・ポリシーは、Bean が特定のタスクのためにロードされる方法、 およびデータがトランザクション中にアクセスされる方法を決定します。 アクセス・インテント・ポリシーは、アクセス・インテント・ヒントの名前付きグループです。 ヒントは、データベースおよびリソース・マネージャーの特性に応じて使用できます。 データ・アクセス操作に適用された各種のアクセス・インテント・ヒントは、 データ保全性を決定します。 一般規則としては、データ保全性を高くするほど、オーバーヘッドも大きくなります。 オーバーヘッドを大きくすれば、スループット、 および複数のクライアントからの同時データ・アクセスの機会が低下する原因となります。

アクセス・インテント・オーバーライドを指定すると、 アクセス・インテント・ポリシーのさらに詳細な構成が得られます。

ベスト・プラクティス

アプリケーション・プロファイルは、以下のそれぞれ異なるシナリオにおいても有効です。
  • 同一の Bean が、異なるデータ・アクセス・パターンでロードされる

    同一の Bean または Bean セットをアプリケーション全体で再使用できますが、 それらのアプリケーションのそれぞれは、起動グラフ内の単数または複数の Bean に対して、 異なる要件を有しています。 あるアプリケーションは Bean をアップデート用にロードすることを要求し、 一方、別のアプリケーションは Bean を読み取り専用でロードすることを要求する場合があります。 アプリケーション・プロファイルは、 Bean のデプロイ時の構成を有効にして EJB ロード要件間の区別を行います。

  • 異なるクライアントがそれぞれ異なるデータ・アクセス要件を有する

    同一の Bean または Bean セットを異なるタイプのクライアント要求に対して使用できます。 それらのクライアントが起動グラフ内の単数または複数の Bean に対して異なる要件を有している場合は、 アプリケーション・プロファイルを使用して、クライアントの要件に対する Bean ロード特性を調整できます。 あるクライアントは Bean をアップデート用にロードすることを要求し、 一方、別のクライアントは Bean を読み取り専用でロードすることを要求する場合があります。 アプリケーション・プロファイルは、 Bean のデプロイ時の構成を有効にして EJB ロード要件間の区別を行います。

モニター・ツール

Tivoli Performance Viewer、データベース、およびログをモニター・ツールとして使用できます。

Tivoli Performance Viewer を使用して、アプリケーション ・プロファイル構成内の Bean に関連付けられた各種のメトリックをモニター することができます。 以下のセクションでは、 アクセス・インテントおよびアプリケーション・プロファイルが使用される際に変更を反映する Tivoli Performance Viewer メトリックの概略を説明します。
  • コレクション有効範囲:

    エンタープライズ Bean グループには、EJB ライフサイクル情報が、 Bean グループまたは特定の Bean に対する累積値として格納されています。 この情報をモニターして、ActivitySession 有効範囲を使用した場合と、ト ランザクション有効範囲を使用した場合の相違を判別できます。 トランザクション有効範囲の場合、コンテナー・トランザクションがどのよ うに定義されたかによって、activates および passivates をメソッド起動 と関連付けることができます。 アプリケーションは、ActivitySession 有効範囲を使用して、activates および passivates の頻度を削減できます 。 詳しくは、トピック『ActivitySession サービスの使用』を参照してください。

  • コレクション増分:

    エンタープライズ Bean グループには、EJB ライフサイクル情報が、 Bean グループまたは特定の Bean に対する累積値として格納されています。 「活動化数 」をモニターして、 特定の findByPrimaryKey 操作用に活動化された エンタープライズ Bean の数を監視できます。 例えば、コレクション増分がデフォルトの 25 ではなく 10 に設定されている場合、「活動化数」の値は、どの結果セット・イテレーターが実行される前でも、初期 findByPrimaryKey として 10 を表示します。活動化の数がコレクション増分を超えることがほとんどない場合は、 コレクション増分の設定値を縮小することを検討してください。

  • リソース・マネージャー事前取り出し増分:

    リソース・マネージャーの事前取り 出し増分は、データベースに依存するデータベース・エンジンによって実行 されたヒントです。 Tivoli Performance Viewer には、リソース・マネージャーの事前取り出し 増分設定値の効果を示すメトリックはありません。

  • 先読みヒント:

    エンタープライズ Bean グループには、EJB ライフサイクル情報が、 Bean グループまたは特定の Bean に対する累積値として格納されています。 「活動化数 」をモニターして、 特定の要求用に活動化された エンタープライズ Bean の数を監視できます。 先読み関連付けが使用されていない場合、「 活動化数 」値は低い初期数値を示します。 先読み関連付けが使用されている場合、「 活動化数 」値は呼び出しグラフ全体の活動化の数を示します。

データベース・ツールは、 競合および並行性の問題を知らせてくれる、それぞれ異なる Bean ロード特性をモニターするのに役に立ちます。 これらの問題は、アプリケーション・プロファイルによって解決されるか、 あるいは、アクセス・インテント・ポリシーの適用の失敗によってさらに悪化する場合もあります。

データベース・ツールは、ロック、デッドロック、接続オープンな どのロックや競合特性をモニターするのに役に立ちます。 例えば、ロックの場合、DB2 Snapshot Monitor は、 ロック待ち、ロック・タイムアウト、およびロック・エスカレーションの統計値を表示できます。 ロック待ちおよびロック・タイムアウトが頻繁に発生する場合には、 アプリケーション・プロファイルは、より多くのストリング・レベルのロックを要求する特定のクライアント・タスクや、 ロックを要求しないほかのクライアント・タスクを定義できます。 あるいは、制約的ロックのより少ない別のアクセス・インテント・ポリシーを適用することもできます。 この構成変更を適用すると、スナップショット・モニターが示すロック動作の数が減少します。 ロックおよび競合をモニターする方法に関して、 使用しているデータベースの情報を参照してください。

アプリケーション・サーバー・ログをモニターすると、 パフォーマンスを低下させたり、アプリケーションの失敗の原因となったりする、 ロールバック、デッドロック、およびほかのデータ・アクセスまたはトランザクション特性についての情報が得られます。


トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rprf_appprofiletune
ファイル名:rprf_appprofiletune.html