High Performance Extensible Logging (HPEL)

High Performance Extensible Logging (HPEL) は、WebSphere® Application Server の一部として提供されるログおよびトレース機能です。

概要

サポートされる構成 サポートされる構成: 基本ログおよびトレース機能は、デフォルトで有効になっています。HPEL を使用する場合には、それを有効にする必要があります。sptcfg

[AIX Solaris HP-UX Linux Windows][IBM i]HPEL は、 アプリケーション・サーバーまたはアプリケーションが生成するログ、トレース、 System.err、および System.out の情報を保管およびアクセスする便利なメカニズムを提供します。 これは、一般的に SystemOut.log/SystemErr.log、trace.log、および activity.log という 名前の JVM ログ、診断トレース、およびサービス・ログのファイルを提供していた、基本ログおよびトレース機能 に代わるものです。

[z/OS]HPEL は、 アプリケーション・サーバーまたはアプリケーションが生成するログ、トレース、 System.err、および System.out の情報を保管およびアクセスする便利なメカニズムを提供します。 これは、JES、LogStreams、コンポーネント・トレース、階層ファイル・システム、またはその他の機能を活用する、z/OS® プラットフォーム上で提供される既存のログおよびトレース機能に代わるものです。

HPEL ログおよびトレースの保管

HPEL では、ログ・データ・リポジトリー、トレース・データ・リポジトリー、およびテキスト・ログ・ファイルが提供されます。 次の図で、アプリケーションとアプリケーション・サーバーがどのようにログおよびトレース情報を保管するかについて示します。

図 1. HPEL および基本ログにおけるログおよびトレースの保管HPEL および基本ログにおけるログおよびトレースの保管
HPEL ログ・データ・リポジトリー

ログ・データ・リポジトリーは、ログ・レコード用の保管機能です。 ログ・データは通常、管理者が検査するためのものです。これには、 アプリケーションまたはサーバーが System.out、System.err、 または java.util.logging に「詳細」レベル以上 (「詳細」、「構成」、「通知」、「監査」、「警告」、「重大」、「致命的」、および「詳細」レベル以上の任意のカスタム・レベルを含む) で書き込む情報が含まれます。

HPEL トレース・データ・リポジトリー

トレース・データ・リポジトリーは、トレース・レコード用の保管機能です。 トレース・データは通常、アプリケーション・プログラマーまたは WebSphere Application Server サポート・チームが使用するためのものです。 これには、アプリケーションまたはサーバーが java.util.logging に「詳細」より下のレベル (「詳細 - 中」、「詳細 - 高」、「詳細 - 最高」、および「詳細」レベルより下の任意のカスタム・レベルを含む) で書き込む情報が含まれます。

サポートされる構成 サポートされる構成: 推奨されない JRAS ロギング API に書き込まれるログおよびトレースの内容も、ログ・データ・リポジトリーおよびトレース・データ・リポジトリーに含まれます。 Jakarta 共通ロギングなど、一部のロギング API は、ログ・データとトレース・データを java.util.logging に送るように構成することも可能です。その出力も同様に、ログ・データ・リポジトリーおよびトレース・データ・リポジトリーに保管されます。sptcfg
HPEL テキスト・ログ

テキスト・ログ・ファイルは、 ログ・レコードおよびトレース・レコード用のプレーン・テキスト・ファイルです。 テキスト・ログ・ファイルは、 主に、LogViewer コマンド行ツールを実行してログ・データ・リポジトリーの内容をプレーン・テキストに変換しなくてもログの内容を判読できるようにする目的で、 利便性のために提供されているものです。

ログ・データ・リポジトリーにもトレース・データ・リポジトリーにも保管されていない内容は、 テキスト・ログ・ファイルに含まれません。 テキスト・ログを無効にして、サーバーのパフォーマンスを向上させることができます。 テキスト・ログは、デバッグの利便性のために、トレース内容を記録するように構成することができます。

[z/OS]テキスト・ログ・ファイルには、 コントローラー・プロセスによって生成されるログ項目のみが含まれ、サーバントまたは付属プロセス からのログ項目は含まれません。そのため、z/OS では、アプリケーション・ログ・レコードはテキスト・ログに書き込まれません。すべてのアプリケーション・サーバー・プロセス のログ・データおよびトレース・データを表示するには、管理コンソールで LogViewer コマンド行ツール または HPEL ログ表示ツールを使用します。

トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): テキスト・ログへのトレース書き込みは、パフォーマンスの観点からコストが高くなります。gotcha

ログおよびトレースのパフォーマンス

[AIX Solaris HP-UX Linux Windows][IBM i]HPEL は、 既存の基本ログおよびトレース機能よりも格段に優れた機能を持つように設計され、テストされています。その成果の 1 つとして、 トレースを有効にしてアプリケーション・サーバーを実行する際にパフォーマンスに及ぼす影響は、 基本ロギングを使用して同じコンポーネントをトレースする場合よりも 少なくなっています。また、HPEL を使用すると、ログに頻繁に書き込みを行うアプリケーションをより高速に実行できる場合もあります。 多くの要因が、HPEL ログおよびトレースの全体的なパフォーマンスに寄与しています。

ログおよびトレースのイベントはそれぞれ 1 カ所のみに保管される

ログ・イベント、System.out、および System.err は、ログ・データ・リポジトリーに保管されます。 トレース・イベントは、トレース・データ・リポジトリーに保管されます。 テキスト・ログ・ファイルが無効であれば、HPEL は、これらのリポジトリーのみにログおよびトレースの内容を書き込みます。 各タイプのイベントを 1 カ所に保管することで、重複したデータ保管のためにパフォーマンスが損なわれることがなくなります。

テキスト・ログ・ファイルが有効の場合、ログ・イベント、およびオプションでトレース・イベントは、 テキスト・ログ・ファイルに書き込まれます。 このデータは常にログ・データ・リポジトリーとトレース・データ・リポジトリーにも保管されるため、 テキスト・ログ・ファイルの内容は重複します。 ログおよびトレースを表示するために LogViewer コマンド行ツールを実行したくないユーザーには、テキスト・ログが便利です。 一方、この利便性が不要であれば、テキスト・ログを無効にすることができます。

テキスト・ログが無効の場合、各イベントは、1 カ所のみに保管されます。

ログ・リポジトリーとトレース・リポジトリーはプロセス間で共有されない

プロセス間でアクティビティーを同期すると、 関連するすべてのプロセスでパフォーマンスが低下します。 HPEL では、各サーバー・プロセスごとに個別のログ・データ・リポジトリー、トレース・データ・リポジトリー、およびテキスト・ログ・ファイルがあります。 これらのファイルはプロセス間で共有されないため、 サーバーのランタイム環境は、これらの宛先に書き込む際に、他のプロセスと同期する必要がありません。

必要なければ、データをフォーマットしない

ユーザー向けにデータをフォーマットする処理は、 プロセッサー時間を消費します。HPEL ログおよびトレース・データは、実行時にログ・イベント・データおよびトレース・イベント・データをフォーマットせずに、 独自のバイナリー表現でより高速に保管されます。これにより、ログおよびトレース機能のパフォーマンスが向上します。 LogViewer の実行までログおよびトレースのフォーマットを見送ることで、ログまたはトレースの中で表示しない部分は、フォーマットされません。

判読可能なテキスト・フォーマットでログ・データとトレース・データを保管する、テキスト・ログ・ファイルを有効にすることができます。

ベスト・プラクティス ベスト・プラクティス: サーバーのパフォーマンスが重要な問題である場合や、テキスト・ログが必要ない場合には、テキスト・ログを無効にしてください。bprac
ログおよびトレース・データがディスク書き込みの前にバッファーに入る

大きなブロックのデータをディスクに書き込むと、同量のデータを小さなブロックで書き込む場合より、効率が高まります。 HPEL には、ログおよびトレース・データをディスクに書き込む前にバッファーに入れる機能があります。 デフォルトで、ログおよびトレース・データは、ディスクに書き込まれる前に 8 KB のバッファーに保管されます。 バッファーは、10 秒以内に満杯になると、ディスクに書き込まれます。 バッファーがその時間内に満杯にならない場合には、ログに最新情報が含まれるようにするために、自動的にディスクに書き込まれます。

サポートされる構成 サポートされる構成: バッファーのサイズは、 HPEL.BUFFER.SIZE システム・プロパティーの設定により制御できます。 バッファーがディスクに書き込む頻度は、 HPEL.FLUSH.PERIOD.SECS システム・プロパティーの設定により制御可能です。sptcfg

ログおよびトレースの管理

HPEL は、構成しやすく、分かりやすく設計されています。 例えば、管理者は、ログまたはトレース専用のディスク・スペースの量や、ログおよびトレース・レコードの保存期間を簡単に構成したり、 ログおよびトレース内容の管理をサーバーに任せたりすることができます。 また、使いやすい 1 つのコマンド (LogViewer) で、ログ、トレース、System.out、および System.err のすべての内容にアクセスすることができるため、 特定の内容についてどのファイルにアクセスするか、迷うことがなくなります。

ログ・データ・リポジトリーおよびトレース・データ・リポジトリーの読み取り

ログ・データ・リポジトリーおよびトレース・データ・リポジトリーは、 WebSphere Application Server の独自フォーマットで保管されており、 ノートパッドまたは VI などのテキスト・ファイル・エディターで判読することはできません。 ログ・データ・リポジトリーおよびトレース・データ・リポジトリーは、LogViewer コマンドでプレーン・テキスト・フォーマットにコピーすることが可能です。

ログ・データ・リポジトリーおよびトレース・データ・リポジトリーは、LogViewer コマンド行ツールを使用して読み取ることができます。

HPEL LogViewer コマンド

HPEL LogViewer は、HPEL ユーザーがログ・データ・リポジトリーおよびトレース・データ・リポジトリーを処理するための、 使いやすいコマンド行ツールです。 LogViewer のフィルター・オプションとフォーマット・オプションを使用して、 ログ・データ・リポジトリーおよびトレース・データ・リポジトリーで重要な内容を簡単に検索することができます。 例えば、エラーまたは警告をフィルタリングしてから、 同一スレッドでキーのエラー・メッセージから 10 秒以内に発生したすべてのログおよびトレースの項目をフィルタリングすることができます。

ログおよびトレースのレコード拡張内容を使用したフィルター操作

LogViewer コマンド行ツール を使用して、ログおよびトレースのレコード拡張の内容に 基づいて、レコードをフィルターに掛けることができます。アプリケーション・サーバーは、Java™ Platform, Enterprise Edition (Java EE) アプリケーションに関連する各ログ・レコードおよびトレース・レコードに appName 拡張 (アプリケーション名を示す) を自動的に作成します。また、アプリケーション・サーバーは、特定のタイプの要求 (例えば、HTTP 要求または JMS 要求) の 処理中に作成された各ログ・レコードおよびトレース・レコードごとに、その 要求の固有 ID を示す requestID 拡張子も自動的に 作成します。

requestID 拡張子が ログ・レコードおよびトレース・レコードに追加されるのは、クロス・コンポーネント・トレースが有効になっている場合のみです。 HPEL では、ログ・レコード・コンテキスト API (com.ibm.websphere.logging.hpel.LogRecordContext) を使用して、 開発者がログ・レコードおよびトレース・レコードにカスタム拡張を追加することもできます。

管理コンソールの HPEL

管理コンソールには、 HPEL 管理者が以下を行えるページがあります。

  • HPEL ログ・データ・リポジトリーを構成します。
  • HPEL トレース・データ・リポジトリーを構成します。
  • HPEL テキスト・ログ・ファイルを構成します。
  • HPEL ログ・データ・リポジトリーおよびトレース・データ・リポジトリーの内容を表示します。
  • ログおよびトレースのログ詳細レベルを表示および設定します。

これらの機能を使用するには、 管理コンソールで「トラブルシューティング」 > 「ログおよびトレース」のリンクをクリックします。

開発リソース

HPEL は、 基本ロギング機能に比べて、より柔軟かつ効率的にログおよびトレースの内容を 処理できるように設計されています。関心があるレコードのみを表示するために、ログおよびトレースの内容を簡単にフィルタリングすることができます。 ユーザーがコマンド行を使用する (HPEL LogViewer コマンドの説明を参照) ことも、 開発者が HPEL API を使用して強力なログ処理プログラムを作成することも可能です。

スクリプトおよび Java プログラムによるログ・データ・リポジトリーおよびトレース・データ・リポジトリーの読み取り
ログ・データ・リポジトリーおよびトレース・データ・リポジトリーを読み取る方法について、開発者およびスクリプト実行者には数多くのオプションがあります。
  • HPELControlService JMX MBean を使用して、wsadmin スクリプトからローカルまたはリモートで読み取る
  • HPELControlService JMX MBean を使用して、Java プログラムからローカルまたはリモートで読み取る
  • com.ibm.websphere.logging.hpel API を使用して、Java プログラムからローカルで読み取る

HPEL API および MBean インターフェースを使用して、ログ・データ・リポジトリーおよびトレース・データ・リポジトリーの内容にアクセスします。

HPEL 関連の JMX MBean

HPEL リポジトリー内容へのリモート・アクセスを簡単にする MBean インターフェースが提供されています。 例えば、開発者が、WebSphere Application Server セルからログ内容を読み取る JMX クライアント・プログラムを作成できます。 このインターフェースは、 HPELControlService MBean の一部です。 HPEL リモート・ログ読み取りインターフェースの詳細については、MBean インターフェースの資料を参照してください。

表 1. HPEL に関連する JMX MBean. HPEL の操作に関連する JMX MBean を以下に示します。
JMX MBean 説明
HPELControlService サーバーのログまたはトレースの詳細レベルの構成、ログ・コンポーネント・レジストリーの表示、 ログ・リポジトリーおよびトレース・リポジトリーの照会に関連する操作を提供します。
HPELLogDataService サーバーのログ・データ・リポジトリーの構成に関連する操作を提供します。
HPELTraceDataService サーバーのトレース・データ・リポジトリーの構成に関連する操作を提供します。
HPELTextLogService サーバーのテキスト・ログ・ファイルの構成に関連する操作を提供します。
RasLoggingService ログ・イベントの JMX 通知にのみ使用

ログおよびトレースに基本ロギングではなく HPEL を使用した場合、 ログおよびトレースの JMX MBean である TraceService は使用されません。

HPEL API

HPEL ログ・リポジトリーおよびトレース・リポジトリーの内容を取り込むツールの開発を簡単にする API が提供されています。 例えば、開発者が、ログおよびトレースの内容の中で、重要メッセージ ID の既知リストに一致するメッセージ ID を持つメッセージを検索する Java プログラムを作成できます。 この API は、com.ibm.websphere.logging.hpel パッケージです。 HPEL ログ読み取り API の詳細については、API の資料を参照してください。

ログ・レコードおよびトレース・レコードの拡張性

開発者は、HPEL を使用して、 ログ・レコード・コンテキスト API (com.ibm.websphere.logging.hpel.LogRecordContext) を 通してログ・レコードおよびトレース・レコードにカスタム拡張を追加できます。 HPEL は、ログ・レコードおよびトレース・レコードを保管するとき、 同じスレッドのログ・レコード・コンテキストにあるすべての拡張を組み込みます。例えば、 開発者は、重要な HTTP 要求パラメーターをログ・レコード・コンテキスト に追加するためのサーブレット・フィルターを作成できます。そのサーブレットが実行している間、HPEL は、 それらの拡張を、同じスレッドで作成されるすべてのログ・レコードおよびトレース・レコード に追加します。

ログ・レコードおよびトレース・レコードの他のフィールドと同様に、 開発者はレコード拡張に HPEL API を使用してアクセスできます。これは、 ログ・リポジトリーおよびトレース・リポジトリーからの読み取りを行うツールを開発する際に役立ちます。また、 開発者は、ログ・レコード・コンテキスト API を利用して、実行時に、 カスタム・ログ・ハンドラー、フィルター、およびフォーマッターで拡張にアクセスできます。


トピックのタイプを示すアイコン 概念トピック



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