WebSphere Application Server for z/OS, Version 6.0.x   
             オペレーティング・システム: z/OS

             目次と検索結果のパーソナライズ化

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

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

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

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

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

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

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

アプリケーション・プロファイルは、以下の階層を定義する機能を備え ています。「Container-Managed タスク」>「アプリケーション・ プロファイル」>「アクセス・インテント・ポリシー」>「Access Intent Overrides」。Container-Managed タスクは、作業単位 (UOW) を識別し、1 つのメソッドまたは一連のメソッドと関連付けられます。 タスクに関連付けられたメソッドが呼び出されると、そのタスク名は、要求によって伝搬されます。 例えば、UOW は、トランザクションまたは ActivitySession に対応するアプリケーション内の固有のパスを指します。 タスクの名前は、J2EE クライアント、サーブレット、 または Enterprise 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 メトリックを高度なレベルで説明します。
  • コレクション有効範囲

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

  • コレクション増分

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

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

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

  • 先読みヒント

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

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

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

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




関連タスク
WebSphere アプリケーションのチューニング
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 10:52:11 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.zseries.doc/info/zseries/ae/rprf_appprofiletune.html