クロス・コンポーネント・トレースの使用によるアプリケーションのトラブルシューティング

クロス・コンポーネント・トレース (XCT) を使用して、 WebSphere® Application Serverの問題の診断に役立てることができます。

このタスクの概要

WebSphere Application Server を使用する管理者は、ログ・ファイルとトレース・ファイルを使用して、アプリケーションとサーバーが正しく稼働しているかどうかを判別する必要があります。

アプリケーションの性質に応じて、アプリケーション・サーバー内の複数のスレッドを使用し、HTTP 要求や JMS 要求などの要求を処理できます。 要求によっては、1 つのアプリケーション・サーバーが Web サービス要求のために別のアプリケーション・サーバーに要求を作成する場合など、複数のアプリケーション・サーバーによって処理されることがあります。

XCT を使用して、相関情報のあるログ・ファイルやトレース・ファイルを拡張できます。 この相関情報は、各リクエストの処理にどのスレッドとどのアプリケーションサーバー プロセスが参加したかを明らかにする。

手順

  1. まだ使用可能にしていない場合は XCT を使用可能にします。
    1. 管理コンソールにログオンします。
    2. 管理エージェント・トポロジーを使用している場合、 管理するノードを選択し、そのノードまでナビゲートします。
    3. コンソールのナビゲーション・セクションから、 トラブルシューティング > 「ログおよびトレース」を選択します。
    4. XCT を使用可能にするサーバーを選択します。
    5. 「ログ詳細レベルの変更」を選択します。
    6. 静的構成変更を行う場合は 「構成」 タブを選択し、サーバーのランタイム状態を変更する場合は 「ランタイム」 タブを選択します。
    7. 「ログとトレースの相関を有効にする」 チェック・ボックスにチェック・マークを付けます。
    8. 必要に応じて、 「ログ・レコードおよびトレース・レコードに要求 ID を含める」「ログ・レコードおよびトレース・レコードおよび相関ログ・レコードに要求 ID を含める」、または 「ログ・レコードおよびトレース・レコードに要求 ID を含め、相関ログ・レコードを作成し、データ・スナップショットをキャプチャーする」 を選択します。
    9. 「OK」をクリックします。
    10. Configuration]タブで変更した場合は、それを保存してアプリケーション・サーバーを再起動します。
      ベスト・プラクティス:
      • すべてのスレッドおよびアプリケーション・サーバー・プロセス内の どのログ項目およびトレース項目が同じ要求に関連しているか確認する必要がある場合、XCT を有効にして、 要求 ID をログ・ファイルとトレース・ファイルに組み込みます。 要求 ID は、HPEL ログおよび トレース・モードを使用している場合にのみ記録され、logViewer コマンドを使用してフィルタリングするときに 表示したり使用したりできます。
      • 要求がスレッドやプロセス間でどのように 分岐しているかログに記録し、各要求についての詳細な情報を確認する必要がある場合、XCT を有効にして、 相関ログ・レコードを作成します。 XCT を有効にして相関ログ・レコードを作成すると、システムのパフォーマンスに大きく 影響する可能性があるため、このオプションはテスト環境や開発環境に最も適しています。
      • 要求および応答の本文全体をファイル・システムに 保管する必要がある場合、XCT を有効にして、データ・スナップショットを取り込みます。 XCT を有効にして データ・スナップショットを取り込むと、システムのパフォーマンスに大きく 影響する可能性があるため、このオプションはテスト環境や開発環境に最も適しています。 XCT は、SIBus によって 処理されるメッセージ要求および応答のデータ・スナップショットを取り込みます。
      • $WSXCTCONTEXTID プライベート・ヘッダーは、XCT コンテキスト ID を含み、複数のコンポーネント間で要求を関連付けるために使用されます。 アプリケーション・サーバーからのアウトバウンド HTTP 要求を XCT コンテキストに関連付けるには、このヘッダーに、アプリケーション・サーバーへのインバウンド要求の XCT コンテキスト ID の値を設定します。
      問題の回避: データ・スナップショットが取り込まれ、 $SERVER_LOG_ROOT/snapdata ディレクトリーに書き込まれます。 アプリケーション・サーバーは、このディレクトリのファイルを自動的にクリーンアップしない。 データ・スナップショットの取り込みを有効に している場合は、ユーザーがこのディレクトリーからファイルを定期的に削除する必要があります。 データ・スナップショットは、要求と応答の 内容全体を保管するため、機密情報を含んでいる場合があります。 このオプションは、実稼働環境での使用には適さないことがあります。
  2. XCT 要求 ID 情報を使用して、要求を追跡します。
    1. 基本モードのログおよびトレースでは、要求 ID は保管されないため、High Performance Extensible Logging (HPEL) ログおよびトレース・モードを使用していることを確認します。 詳しくは、基本モードから HPEL ロギングおよびトレースへの変更に関するトピックを参照してください。
    2. まだ使用可能にしていない場合は XCT を使用可能にします。
    3. HPEL LogViewer コマンド行ツールを使用して、重要情報 (エラーや警告など) を探すようにログをフィルタリングします。 ログで要求 ID 情報を参照できるようにするために、拡張フォーマットを使用してログを出力します。
      例えば、以下のようなコマンドを使用します。[Windows]
      logViewer -minLevel WARNING -format advanced
      [ AIX HP-UX ソラリス][Linux][IBM i]
       logViewer.sh -minLevel WARNING -format advanced
    4. 関心のあるログ項目が見つかったときは、それらの項目に関連付けられている要求 ID をメモします。

    5. HPEL LogViewer コマンド行ツール、および前のステップでメモした要求 ID を使用して、以下のようにログを要求 ID でフィルタリングします。[Windows]
      logViewer -includeExtensions requestID=<requestID>
      [ AIX HP-UX ソラリス][Linux][IBM i]
      logViewer.sh -includeExtensions requestID=<requestID>
      詳しくは、LogViewer コマンド行ツールのトピックを参照してください。
  3. XCT 相関ログ・レコードを使用して、呼び出しチェーンの階層を確認します。
    1. まだ使用可能にしていない場合は XCT を使用可能にします。 「要求 ID をログ・レコードとトレース・レコードに組み込み、相関ログ・レコードを作成する」を選択し、XCT で相関ログ・レコードが確実に作成されるようにします。
    2. HPEL を使用している場合は、LogViewer コマンド行ツールを使用して、ログをテキストに変換します。
      例えば、以下のようなコマンドを使用します。[Windows]
      logViewer -outLog myLog.txt
      [ AIX HP-UX ソラリス][Linux][IBM i]
      logViewer.sh -outLog myLog.txt
      詳しくは、LogViewer コマンド行ツールのトピックを参照してください。
    3. IBM Support Assistant で使用可能な IBM® WebSphere Cross Component Trace Logviewer ツールを使用して、要求の処理に関係するすべてのアプリケーション・サーバーからログ・ファイルおよびトレース・ファイルをロードし、要求呼び出しチェーンの階層を確認します。 詳しくは、「 IBM Support Assistant の使用」トピックを参照してください。

結果

これでサーバーはXCTを使用するように設定された。