Oracle Fusion Middlewareコンポーネントは、起動および停止情報、エラー、警告メッセージ、HTTPリクエスト時のアクセス情報など、すべての種類のイベントを記録するメッセージが格納されたログ・ファイルを生成します。この章では、エラー原因と修正アクションに関する情報の検索方法、システム・アクティビティのモニタリングおよび問題の診断に役立つログ・ファイルの表示と管理の方法について説明します。
内容は次のとおりです。
次の各項目ではHTTPアクセス・ロギングおよび診断ロギングについて説明します。
デフォルトで、Oracle WebLogic ServerはHTTPアクセス・ログについて共通のログ・フォーマットを使用するように構成されます。Oracle WebLogic Serverは、World Wide Web Consortium (W3C)のドラフト仕様で定義された新たな標準である、拡張ログ・フォーマットもサポートしています。
Oracle WebLogic ServerをOracle JRFとともにインストールした場合、HTTPアクセス・ログにはデフォルトでこの拡張ログ・フォーマットが使用されます。拡張ログ・フォーマットを使用すると、各HTTP通信について記録される情報のタイプと順序を指定できます。
Oracle Fusion Middlewareでは次のフィールド識別子がサポートされています。
date: トランザクションが完了した日付。このフィールドの形式はYYYY-MM-DDです。すべての日付はGMTで指定します。
time: トランザクションが完了した時刻。このフィールドの形式はHH:MM、HH:MM:SSまたはHH:MM:SS.Sが可能です(HHは24時間表示の時、MMは分、SSは秒)。すべての時刻はGMTで指定します。
cs-method: リクエスト・メソッド(GETやPOSTなど)。このフィールドにはW3C仕様で定義された入力値<name>が入ります。
cs-url: リクエストされたURIの絶対パス。このフィールドにはW3C仕様で定義された入力値<uri>が入ります。
ctx-ecid: 実行コンテキストID (ECID)。ECIDは、特定のリクエストの実行に関連付けられたグローバルに一意の識別子です。
ctx-rid: 関係ID (RID)。RIDは、1つのリクエストにおいて、特定のプロセス上の特定スレッドで実行された作業と、同じプロセス上の別スレッドおよび別プロセス上で実行された作業を区別します。
sc-status: レスポンスのステータス・コード。たとえば(404)は「ファイルが見つかりません」というステータスを示します。このフィールドにはW3C仕様で定義された入力値<integer>が入ります。
拡張ログ・フォーマットの詳細は、次の場所を参照してください。
http://www.w3.org/TR/WD-logfile.html
大部分のOracle Fusion Middlewareコンポーネントでは、Oracle Diagnostic Logging (ODL)形式で診断ログ・ファイルが作成されます。ログ・ファイルの名前とログ・ファイルの内容の形式は、Oracle標準に準拠します。デフォルトでは、診断メッセージはテキスト形式で書き込まれます。
ODLには次の利点があります。
保存される診断情報の合計サイズを制限します。保存される情報のレベルを設定したり、ログ・ファイルおよびログ・ファイル・ディレクトリの最大サイズを指定できます。
指定サイズに達すると、古いセグメント・ファイルが削除され、新しいセグメント・ファイルが時系列で保存されます。
コンポーネントがアクティブな状態で古い診断ログ・ファイルを削除でき、停止する必要がありません。
ログ・ファイルは、Fusion Middleware ControlまたはWLST displayLogs
コマンドを使用して表示できます。また、ログ・ファイルをローカル・クライアントにダウンロードして、他のツール(テキスト・エディタおよびその他のファイル表示ユーティリティ)を使用して表示することもできます。
注意: Oracle WebLogic Serverは、ODL形式を使用しません。Oracle WebLogic Serverのログ・フォーマットについては、『Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタ処理』を参照してください。 |
ODLを使用すると、診断メッセージがログ・ファイルに書き込まれ、メッセージのそれぞれに、時間、コンポーネントID、ユーザーなどの情報が組み込まれます。
次の例は、Oracle HTTP ServerからのODL形式のエラー・メッセージを示しています。
[2013-05-13T12:31:29.0584-07:00] [OHS] [NOTIFICATION:16] [OHS-9999]
[mod_weblogic.c] [host_id: example] [host_addr: nn.nnn.nn.nn] [pid: 12789]
[tid: 46919953675776] [user: username VirtualHost: main
WebLogic Server Plugin version 12.1.2 <WLSPLUGINS_MAIN_LINUX.X64_130502.1731>
このメッセージでは、フィールドが次の属性にマップされています。これらについては表12-1で説明します。
タイムスタンプ、開始: 2013-05-13T12:31:29.0584-07:00
組織ID: OHS
メッセージ・タイプ: NOTIFICATION:16
コンポーネントID: mod_weblogic.c
ホストID: host_id: example
ホスト・アドレス: host_addr: nn.nnn.nn.nn
プロセスID: pid: 12789
スレッドID: tid: 46919953675776
ユーザーID: userId: username
仮想ホスト: VirtualHost: main
メッセージ・テキスト: "WebLogic Server Plugin version 12.1.2 <WLSPLUGINS_MAIN_LINUX.X64_130502.1731>"
デフォルトでは、情報はログ・ファイルにODLテキスト形式で書き込まれます。この形式は、第12.4.4項で説明するように、ODL XML形式に変更できます。
表12-1で、ODLメッセージの内容を説明します。コンポーネントによっては、生成された診断メッセージにオプションの属性が存在しない場合があります。
表12-1 ODL形式メッセージのフィールド
属性名 | 説明 | 必須 |
---|---|---|
タイムスタンプ、開始(TIME) |
メッセージが生成された日時。ローカル・タイムゾーンが反映されます。 |
はい |
タイムスタンプ、正規化済(time_norm) |
ホスト間のクロックのずれの調整用に標準化されたタイムスタンプ。診断メッセージが別のホスト上のリポジトリにコピーされる場合に使用します。 |
いいえ |
組織ID (org_id) |
作成元のコンポーネントの組織ID。 |
いいえ |
INSTANCE_ID |
メッセージを生成したコンポーネントが属するインスタンスの名前。 |
いいえ |
COMPONENT ID (COMP_ID) |
メッセージを生成したコンポーネントのID。 |
はい |
MESSAGE_ID (MSG_ID) |
コンポーネント内でメッセージを一意に識別するID。IDは、コンポーネントを示す接頭辞、およびそれに続くダッシュと5桁の数値で構成されます。次に例を示します。 OHS-51009 |
はい |
MESSAGE_TYPE |
メッセージのタイプ。使用可能な値は、INCIDENT_ERROR、ERROR、WARNING、NOTIFICATION、TRACEおよびUNKNOWNです。メッセージ・タイプの詳細は、表12-3を参照してください。 |
はい |
MESSAGE_LEVEL (MSG_LEVEL) |
メッセージ・レベル。メッセージ・タイプを限定する整数値で示されます。使用可能な値は1(最高重大度)から32(最低重大度)です。メッセージ・レベルの詳細は、表12-3を参照してください。 |
はい |
HOST_ID (HOST_ID) |
メッセージを生成したホストの名前。 |
いいえ |
HOST_NW_ADDR (HOST_ADDR) |
メッセージを生成したホストのネットワーク・アドレス。 |
いいえ |
MODULE_ID (MODULE) |
メッセージを生成したモジュールのID。コンポーネントが単独のモジュールの場合は、この属性にコンポーネントIDが表示されます。 |
はい |
PROCESS_ID (PID) |
メッセージに関連付けられたプロセスまたは実行単位のプロセスID。 |
いいえ |
THREAD_ID (TID) |
メッセージを生成したスレッドのID。 |
いいえ |
USER_ID (USER) |
メッセージを生成した実行コンテキストを所有するユーザーの名前。 |
いいえ |
ECID |
実行コンテキストID (ECID)。生成コンポーネントが関与する特定のリクエストの実行のグローバル一意識別子。ECIDは、別のコンポーネントで発生したエラー・メッセージの関連付けに使用できます。ECIDの詳細は、第12.5項を参照してください。 |
はい |
RID |
関係ID (RID)。1つのリクエストにおいて、特定のプロセス上の特定スレッドで実行された作業と、同じプロセスの別のスレッドおよび別プロセス上で実行された作業を区別します。RIDの詳細は、第12.5項を参照してください。 |
いいえ |
SUPPL_ATTRS |
イベントに関するコンポーネント固有の属性を格納する名前/値のペアが記載された追加リスト。 Oracle Fusion Middlewareでは、サプリメンタル属性DSID(診断セッションID)が提供されています。DSIDはユーザー・セッションのIDであり、一連のログ・メッセージ、インシデントおよびその他の診断データをユーザー・セッションにマップするために使用されます。たとえば、ユーザー・セッションで生成された特定のインシデントの前に同じセッション内で別のインシデントが生成されていたかどうか、またそれらが後に続いたインシデントの原因であったかどうかを確認できます。 |
いいえ |
MESSAGE TEXT (TEXT) |
メッセージのテキスト。 |
はい |
メッセージ引数(arg) |
メッセージ・テキストにバインドされた引数のリスト。 |
いいえ |
追加詳細 |
イベントの追加情報で、メッセージ・テキストより詳細な情報が含まれます。 |
いいえ |
ログ・ファイルの場所は、コンポーネントのタイプによって異なります。
ほとんどのJavaコンポーネントのログ・ファイルは、次の場所にあります。
(UNIX) DOMAIN_HOME/servers/server_name/logs (Windows) DOMAIN_HOME\servers\server_name\logs
ログ・ファイルのデフォルト名は、server-name-diagnostic.logです。
システム・コンポーネントのログ・ファイルは、デフォルトでは次の場所にあります。
(UNIX) DOMAIN_HOME/servers/component_name/logs (Windows) DOMAIN_HOME\servers\component_name\logs
表12-2に、Oracle Fusion Middlewareのコンポーネントのログ・ファイルの場所を示します。
この表では、DOMAIN_HOMEはドメイン・ホームを表しています。
表12-2 ログ・ファイルの場所
コンポーネント | ログ・ファイルの場所 |
---|---|
Fusion Middleware Control |
DOMAIN_HOME/sysman/log/emoms.log DOMAIN_HOME/sysman/log/emoms.trc |
Oracle Application Development Framework |
DOMAIN_HOME/servers/server_name/logs/server-name-diagnostic.log |
Oracle HTTP Server |
DOMAIN_HOME/servers/component_name/logs/*.log |
Oracle Web Services Manager |
DOMAIN_HOME/servers/server_name/logs/owsm/msglogging DOMAIN_HOME/servers/server_name/logs/owsm-diagnostic.log |
Oracle WebLogic Server |
DOMAIN_HOME/servers/server_name/logs/server-name-diagnostic.log |
リポジトリ作成ユーティリティ |
デフォルトでは、RCU_LOG_LOCATIONで指定されたファイルに書き込みます。指定されていない場合は、次の場所に書き込もうとします。
|
Oracle Fusion Middlewareコンポーネントをまたがって、ログ・ファイルの表示、リスト表示、および検索ができます。Fusion Middleware Controlを使用してログ・ファイルの表示や検索を行い、ログ・ファイルをローカル・クライアントにダウンロードし、別のツールを使用して表示することができます。また、WLSTコマンドライン・ツールを使用してログ・ファイルをリスト表示、表示および検索することもできます。
この項の項目は次のとおりです。
WLSTコマンドを使用してログ・ファイルを表示する場合は、次の点に注意してください。
カスタムWLSTロギング・コマンドを使用するには、Oracle共通ホームからWLSTスクリプトを起動する必要があります。詳細は、第2.4.2項を参照してください。
ログ表示コマンドは、Weblogic Serverに接続していても接続していなくても機能します。接続していない場合は、oracleInstanceパラメータでパスを指定する必要があります。ドメイン・ホームを指定します。
WLSTロギング・コマンドは、多くの場合、domainRuntimeツリーで実行する必要があります。たとえば、domainRuntimeツリーに接続して実行する場合は、次のWLSTコマンドを使用します。
connect('username', 'password', 'localhost:port_number') domainRuntime()
コマンドの詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のロギングのカスタムWLSTコマンドに関する項を参照してください。
次の各項で説明するように、Fusion Middleware ControlまたはWLSTコマンドを使用して、ログ・ファイルを表示できます。
特定のドメイン、Oracle WebLogic Server、コンポーネントまたはアプリケーションのすべてのエンティティのメッセージを表示できます。
たとえば、管理対象サーバーのログ・ファイルおよびメッセージを表示する手順は次のとおりです。
ナビゲーション・ペインからドメインを展開します。管理対象サーバーの名前を右クリックし、「ログ」→「ログ・メッセージの表示」を選択します。
「ログ・メッセージ」ページが表示されます。
「選択したターゲット」を開き、特定のコンポーネントまたはアプリケーションの行で「ターゲット・ログ・ファイル」をクリックします。
「ログ・ファイル」ページが表示されます。このページには、次の図に示すように管理対象サーバーに関連するログ・ファイルのリストが表示されます。
ファイルを選択して、「ログ・ファイルの表示」をクリックします。
「ログ・ファイルの表示」ページが表示されます。このページに、メッセージのリストが表示されます。
メッセージの詳細を表示するには、該当するメッセージを選択します。
次の図のように、リストの下のペインに詳細が表示されます。
デフォルトでは、メッセージは時間を基準として昇順でソートされます。メッセージは、列名をクリックすることにより、メッセージ・タイプなどの任意の列を基準としてソートできます。
時間またはECIDを基準にして関連メッセージを表示するには、「関連メッセージの表示」をクリックして、「時間ごと」または「ECID(実行コンテキストID)ごと」を選択します。
「関連メッセージ」ページが表示されます。
WLSTのlistLogs
コマンドを使用して、Oracle WebLogic Serverドメイン、サーバーまたはコンポーネントのログ・ファイルをリスト表示できます。
このコマンドは、接続中も切断中も使用できます。接続時のデフォルトのターゲットは、Oracle WebLogic Serverドメインです。
ログ・ファイルをリスト表示するには、第12.3項の説明に従って、まずdomainRuntime
コマンドを使用します。次に、ログ・ファイルのリスト表示方法および表示方法について説明します。
Oracle WebLogic Server wls_server_1のすべてのログ・ファイルをリスト表示するには、次のコマンドを使用します。
listLogs(target='wls_server_1') file://slc01fkr/scratch/oracle1/Oracle/domains/base_domain/servers/wls_server_1/logs/wls_server_1.log 2013-05-21 06:55:37 500.1K wls_server_1.log00026 2013-05-21 07:49:08 500.1K wls_server_1.log00027 2013-05-21 08:46:29 500.4K wls_server_1.log00028 2013-05-21 09:45:29 500.4K wls_server_1.log00029 2013-05-21 10:43:00 500.3K wls_server_1.log00030 2013-05-21 11:39:56 500.3K wls_server_1.log00031 2013-05-21 12:38:56 500.4K wls_server_1.log00032 2013-05-21 13:18:06 358.1K wls_server_1.log file://slc01fkr/scratch/oracle1/Oracle/domains/base_domain/servers/wls_server_1/logs/wls_server_1.out 2013-05-13 11:00:05 4M wls_server_1.out00001 2013-05-21 13:18:06 12.1M wls_server_1.out ...
システム・コンポーネントのログをリスト表示するには、次のいずれかの形式を使用します。
listLogs(target='component_name
') listLogs(target='sc:component_name
')
たとえば、Oracle HTTP Server ohs1のログをリスト表示するには、次のコマンドを使用します。
listLogs(target='ohs1')
未接続時にログをリスト表示するには、oracleInstance
パラメータを指定し、それをドメインのパスに渡す必要があります。たとえば、Managed Server wls_server_1のログ・ファイルをリスト表示するには、次のコマンドを実行します。
listLogs(oracleInstance='/scratch/Oracle/config/domains/WLS_domain', target='wls_server_1')
ログ・ファイルの診断メッセージを表示するには、WLST displayLogs
コマンドを使用します。このコマンドは、接続時も切断時も機能します。
たとえば、Oracle WebLogic Serverドメインで直前の10分以内にログ・ファイルに生成されたメッセージを表示するには、次のコマンドを使用します。
displayLogs(last=10) [2013-05-21T13:30:11.892-07:00] [wls_server_1] [WARNING] [WSM-09004] [oracle.wsm.resources.common] [host: slc01fkr] [nwaddr: 10.240.82.231] [tid: [ACTIVE].ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: OracleSystemUser] [ecid: 66217af9-247f-4344-94a9-14f90e75a586-00070b85,0] [APP: wsm-pm] [TARGET: /base_domain/wls_server_1/wsm-pm] [LOG_FILE: /scratch/oracle1/Oracle/domains/base_domain/servers/wls_server_1/logs/wls_server_1-diagnostic.log] Component auditing cannot be initialized. [2013-05-21T13:30:11.895-07:00] [wls_server_1] [NOTIFICATION] [BEA-010227] [EJB] [host: slc01fkr] [nwaddr: 10.240.82.231] [tid: [ACTIVE].ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: OracleSystemUser] [ecid: 66217af9-247f-4344-94a9-14f90e75a586-00070b85,0] [TXN_ID: BEA1-7438ECB7CDFCAF163A9A] [TARGET: /base_domain/wls_server_1] [LOG_FILE: /scratch/oracle1/Oracle/domains/base_domain/servers/wls_server_1/logs/wls_server_1.log] EJB exception occurred during invocation from home or business: weblogic.ejb.container.internal.StatelessEJBHomeImpl@314c2224 generated exception: java.lang.reflect.UndeclaredThrowableException
このコマンドでは、時間を基準に昇順でソートされたメッセージが返されます。
システム・コンポーネントのログを表示するには、次のいずれかの形式を使用します。
listLogs(target='component_name
') listLogs(target='sc:component_name
')
たとえば、Oracle HTTP Server ohs_1のログを表示するには、次のコマンドを使用します。
displayLogs(target='sc:ohs_1')
メッセージは、第12.3.2項で説明されているように、特定の基準を指定して検索し、出力をソートできます。
listLogs
およびdisplayLogs
コマンドの詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のロギングのカスタムWLSTに関する説明を参照してください。
次の各項で説明するように、Fusion Middleware ControlまたはWLSTコマンドを使用すると、時間、メッセージのタイプおよび特定のログ・ファイル属性を基準にして診断メッセージを検索できます。
Fusion Middleware Controlの「ログ・メッセージ」ページでは、標準および追加のODL属性を使用して診断メッセージを検索できます。デフォルトで、このページには、直前1時間にログに記録された問題のサマリーが表示されます。
検索基準は、適合度の高いメッセージが特定されるように変更できます。検索結果を別のモードで表示すると、大量のデータを簡単にナビゲーションできます。
次の各項では、ログ・ファイルの検索方法を説明します。
この項では、ログ・メッセージの基本検索の方法について説明します。
特定のドメイン、Oracle WebLogic Server、コンポーネントまたはアプリケーションのすべてのエンティティのすべてのメッセージを検索できます。
たとえば、特定のドメインのメッセージを検索する手順は次のとおりです。
「WebLogicドメイン」メニューで、「ログ」→「ログ・メッセージの表示」を選択します。
特定のコンポーネントまたはアプリケーションのメッセージを検索するには、目的のコンポーネントまたはアプリケーションを選択します。そのターゲットのメニューで、「ログ」→「ログ・メッセージの表示」を選択します。
「ログ・メッセージ」ページに、次の図のように「検索」セクションと直前1時間のメッセージのサマリーが記載された表が表示されます。
「日付範囲」セクションでは、次のいずれかを選択できます。
最新: このオプションを選択した場合は、3時間などの時間を選択します。デフォルトは1時間です。
時間間隔: このオプションを選択した場合は、「開始日」のカレンダ・アイコンを選択します。日付および時刻を選択します。次に、「終了日」のカレンダ・アイコンを選択します。日付および時刻を選択します。
「メッセージ・タイプ」セクションで、1つ以上のメッセージ・タイプを選択します。タイプについては、表12-3を参照してください。
第12.3.2.1.2項の説明に従って、詳細な検索条件を指定できます。
「検索」をクリックします。
適合性の高いメッセージを特定しやすくするため、表内の「表示」で次のモードのいずれかを選択します。
メッセージ: 一致するメッセージを表示します。
特定のメッセージの詳細を表示するには、該当するメッセージをクリックします。メッセージの表の下に詳細が表示されます。
関連するメッセージを表示するには、メッセージを選択して「関連メッセージの表示」をクリックし、「時間ごと」または「ECID(実行コンテキストID)ごと」を選択します。
グループ化: いずれかの選択基準によるグループ化を選択できます。このオプションは、メッセージ・タイプやECIDなどの選択した基準に基づいて、メッセージをグループ化します。
メッセージを表示するには、いずれかのメッセージ・タイプの列の件数をクリックします。「メッセージ、タイプ別」ページが表示されます。特定のメッセージの詳細を表示するには、該当するメッセージをクリックします。メッセージの表の下に詳細が表示されます。
検索基準は、「ログ・メッセージ」ページの次のコントロールを使用して絞り込むことができます。
メッセージ: 「次を含む」などの演算子を選択し、比較する値を入力できます。
フィールドの追加: クリックすると、ホストなどの追加の基準を指定して、検索範囲を特定のホストに絞り込むことができます。次に、「追加」をクリックします。
追加したフィールドのそれぞれに、「次を含む」などの演算子を選択し、比較する値を入力します。
広範囲のターゲット・スコープ: クリックすると、ターゲットの親のすべてのメンバーに関連付けられたログに検索範囲が拡張されます。たとえば、特定のアプリケーションのログを検索する際に、アプリケーションのデプロイ先の管理対象サーバーも含まれるように検索範囲を拡張できます。
選択したターゲット: これを開くと、検索に関与するターゲットが表示されます。ターゲットを追加するには、「追加」をクリックして、ダイアログ・ボックスに情報を入力します。ターゲットを削除するには、ターゲットを選択して「削除」をクリックします。
WLST displayLogs
コマンドを使用してログ・ファイルを検索できます。時間、コンポーネントID、メッセージ・タイプ、ECIDなどの基準を指定して検索範囲を絞り込むことができます。次に例を示します。
Oracle HTTP Server ohs1などのシステム・コンポーネントで直前の5分以内に生成されたエラー・メッセージを検索するには、次のコマンドを使用します。
displayLogs(target='sc:ohs1', last=5)
管理対象サーバーwls_server_1で直前の10分以内に生成されたエラー・メッセージを検索するには、次のコマンドを使用します。
displayLogs(oracleInstance='/scratch/Oracle/config/domains/WLS_domain', target='wls_server_1', last=10)
query
パラメータを使用してコンポーネントID、メッセージ・タイプ、ECIDなどの基準を指定して、検索範囲を絞り込むことができます。query
句では、表12-1にある任意の属性を使用して問合せ式を指定できます。次のような基準を使用できます。
メッセージのタイプ。たとえば、管理対象サーバーwls_server_1のERRORおよびINCIDENT_ERRORのメッセージを検索するには、次のコマンドを使用します。
displayLogs(oracleInstance='/scratch/Oracle/config/domains/wls_domain', target='wls_server_1', query='MSG_TYPE eq ERROR or MSG_TYPE eq INCIDENT_ERROR')
特定のECID。たとえば、管理対象サーバーwls_server_1の特定のECID (0000I3K7DCnAhKB5JZ4Eyf19wAgN000001,0')のエラー・メッセージを検索するには、次のコマンドを使用します。
displayLogs(oracleInstance='/scratch/Oracle/config/domains/wls_domain', target='wls_server_1', query='ecid eq 0000I3K7DCnAhKB5JZ4Eyf19wAgN000001,0')
コンポーネント・タイプ。たとえば、Oracle HTTP Serverインスタンスのメッセージを検索するには、次の問合せを使用します。
displayLogs(query='COMPONENT_ID eq ohs')
時間範囲。特定の時間範囲内に発生したエラー・メッセージを検索するには、次の形式で属性TSTZ_ORIGINATINGを、from
とto
の両演算子とともに指定します。
displayLogs(query='TSTZ_ORIGINATING from start_time and TSTZ_ORIGINATING to end_time')
日付は次のISO 8601時間形式で指定します。
YYYY-MM-DDThh:mm:ss-hh:mm_offset_from_UTC
次に例を示します。
2013-04-30T12:00:00:0000-08:00
たとえば、2013年4月17日の午前8時から11時のエラー・メッセージを表示するには、次のコマンドを使用します。
displayLogs(query='TSTZ_ORIGINATING from 2013-04-17T08:00:00-07:00 and TSTZ_ORIGINATING to 2013-04-17T11:00:00-07:00')
グループ・メッセージ。特定の属性でグループ化したメッセージの件数を表示するには、WLSTコマンドdisplayLogs
で、groupBy
パラメータを使用します。たとえば、コンポーネント別にWARNINGメッセージの件数を表示する場合は、次のコマンドを使用します。
displayLogs(groupBy=['COMPONENT_ID'], query='MSG_TYPE eq WARNING')
次の各項で説明するように、Fusion Middleware ControlまたはWLSTコマンドを使用して、メッセージをダウンロードできます。
ログ・メッセージをファイルにダウンロードできます。検索で一致したメッセージまたは特定のログ・ファイル内のメッセージをダウンロードできます。
Fusion Middleware Controlを使用して、検索で一致したメッセージをダウンロードする手順は次のとおりです。
ナビゲーション・ペインからドメインを開き、ドメインをクリックするなどしてターゲットを選択します。
「WebLogicドメイン」メニューなどの動的ターゲット・メニューから、「ログ」→「ログ・メッセージの表示」を選択します。
「ログ・メッセージ」ページが表示されます。
第12.3.2.1項の説明に従って、特定のタイプのメッセージを検索します。
「メッセージをファイルにエクスポート」をクリックしてファイル・タイプを選択し、次のいずれかを選択します。
Oracle診断ログ・テキスト(.txt)として
Oracle診断ログXML (.xml)として
カンマ区切りリスト(.csv)として
「オープン中」ダイアログ・ボックスが表示されます。
次を使用してオープンまたはディスクに保存を選択します。「OK」をクリックします。
特定のタイプのメッセージ、または特定のメッセージIDのメッセージをファイルにエクスポートする手順は次のとおりです。
ナビゲーション・ペインからドメインを展開します。管理対象サーバーを選択します。
動的ターゲット・メニューで、「ログ」→「ログ・メッセージの表示」を選択します。
「ログ・メッセージ」ページが表示されます。
第12.3.2.1項の説明に従って、特定のタイプのメッセージを検索します。
「表示」で「メッセージ・タイプ別グループ」または「メッセージID別グループ」を選択します。
メッセージをファイルにダウンロードするには、「メッセージ・タイプ別グループ」を選択した場合、列のいずれか(「エラー」列など)で、メッセージ数をリスト表示するリンクを選択します。「メッセージID別グループ」を選択した場合、「発生」列のリンクのいずれかを選択します。
「メッセージ、タイプ別」ページまたはメッセージID別のメッセージが表示されます。
「すべてをファイルにエクスポート」の近くの矢印をクリックしてファイル・タイプを選択します。
次のいずれかを選択できます。
Oracle診断ログ・テキスト(.txt)として
Oracle診断ログXML (.xml)として
カンマ区切りリスト(.csv)として
「オープン中」ダイアログ・ボックスが表示されます。
次を使用してオープンまたはディスクに保存を選択します。「OK」をクリックします。
Fusion Middleware Controlを使用して、特定のコンポーネントのログ・ファイルをダウンロードする手順は次のとおりです。
システム・コンポーネントの場合は、ナビゲーション・ペインからインストール・タイプ(Web層など)を展開し、コンポーネントを選択します。Javaコンポーネントの場合は、ナビゲーション・ペインからコンポーネント・タイプを展開した後、コンポーネントを選択します。
動的ターゲット・メニューで、「ログ」→「ログ・メッセージの表示」を選択します。
「ログ・メッセージ」ページが表示されます。
「ターゲット・ログ・ファイル」をクリックします。
「ログ・ファイル」ページが表示されます。このページに、コンポーネントまたはアプリケーションに関連するログ・ファイルのリストが表示されます。
ログ・ファイルを選択して、「ダウンロード」をクリックします。
「オープン中」ダイアログ・ボックスが表示されます。
次を使用してオープンまたはディスクに保存を選択します。「OK」をクリックします。
WLST displayLogs
コマンドを使用し、出力をファイルにリダイレクトすることによって、ログ・ファイルをダウンロードできます。次に例を示します。
displayLogs(type=['ERROR','INCIDENT_ERROR'], exportFile='/scratch/tmp/download_log.txt')
メッセージは、指定されたディレクトリのファイルdownload_log.txtに書き込まれます。デフォルトでは、標準出力に書き込まれます。
Fusion Middleware ControlまたはWLSTを使用して、管理対象サーバーおよびJavaコンポーネントのログ設定を変更できます。
Javaコンポーネントの場合、次の各項で説明するように、ログ・ファイルの名前と場所、ログ・ファイルのサイズ、ログ・ファイルに書き込まれる情報レベル、形式、ロケール・エンコーディングを構成できます。
WLSTコマンドを使用してログ設定を構成する場合は、次の点に注意してください。
カスタムWLSTロギング・コマンドを使用するには、Oracle共通ホームからWLSTスクリプトを起動する必要があります。詳細は、第2.4.2項を参照してください。
setLogLevel
などの構成コマンドは、接続モードでのみ機能します。このため、コマンドを起動する際は、あらかじめ実行中のWebLogic Serverインスタンスに接続しておく必要があります。
構成コマンドは、WebLogic Server内で稼働するJavaコンポーネントではサポートされますが、Oracle WebLogic Serverではサポートされません。構成コマンドは、システム・コンポーネントではサポートされません。
WLSTロギング・コマンドは、多くの場合、domainRuntimeツリーで実行する必要があります。たとえば、domainRuntimeツリーに接続して実行する場合は、次のコマンドを使用します。
connect('username', 'password', 'localhost:port_number') domainRuntime()
listLoggers
、getLogLevel
およびsetLogLevel
の各コマンドは、config
およびruntime
モードで機能します。config
モードの場合、コマンドは構成ファイルで定義されたロガーに作用します。runtime
モードの場合、コマンドはサーバーJVMで定義されたロガーと直接連動します。デフォルトの場合、setLogLevel
コマンドで、ランタイム・ロガーのレベルが設定され、構成ファイルのロガー定義が更新されます。デフォルトの場合、listLoggers
およびgetLogLevel
コマンドではランタイム・ロガーが返されます。
コマンドの詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のロギングのカスタムWLSTコマンドに関する項を参照してください。
次の各項で説明するように、Fusion Middleware ControlまたはWLSTコマンドを使用して、ログ・ファイルの名前および場所を変更できます。
Fusion Middleware Controlを使用してコンポーネント・ログ・ファイルの名前および場所を変更するには:
ナビゲーション・ペインからコンポーネントを選択します。
動的ターゲット・メニューで、「ログ」→「ログ構成」を選択します。
「ログ構成」ページが表示されます。
いくつかのコンポーネントでは、ナビゲーションが異なる場合があります。たとえば、Oracle HTTP Serverでは、「管理」→「ログ構成」を選択します。
「ログ・ファイル」タブを選択します。
表内で、ログ・ハンドラを選択して「構成の編集」をクリックします。
次の図のように「ログ・ファイルの編集」ダイアログ・ボックスが表示されます。
「ログ・パス」に新しいパスを入力します。
「OK」をクリックします。
確認ウィンドウで、「閉じる」をクリックします。
Oracle HTTP Serverログ・ファイルの場所を変更すると、access_logとohsn.logのファイルの場所は変更されますが、console~OHS~1.logの場所は変更されません。
WLSTを使用してログ・ファイルの場所を変更するには、configureLogHandler
コマンドを使用します。たとえば、odl-handlerという名前のロガーのパスを変更するには、次のコマンドを使用します。
configureLogHandler(name='odl-handler', path='/scratch/Oracle/logs')
ODLログは、現在のODLログ・ファイルと、古いメッセージが格納された0個以上のODLアーカイブ(セグメント・ファイル)を含むログ・ファイルのセットです。ログ・ファイルが拡大すると、新しい情報がログ・ファイルserver_name
-diagnostic.log
の最後に追加されます。ログ・ファイルがローテーション・ポイントに達すると、名前が変更されて、新しいログ・ファイルserver_name
-diagnostic.log
が作成されます。ローテーション・ポイントを指定するには、最大ODLセグメント・サイズまたはローテーション時間およびローテーション頻度を指定します。
ODLログ・ファイルserver_name
-diagnostic.log
がローテーション・ポイントに達すると、セグメント・ファイルが作成されます。このため、ファイル名server_name
-diagnostic.log
がserver_name
-diagnostic-
n
.log
に変更され(n
は整数)、コンポーネントで新たな診断メッセージが生成されると、server_name
-diagnostic.log
ファイルが新たに作成されます。
ODLログのサイズは、次の指定によって制限できます。
ロギング・ディレクトリの最大サイズ。ディレクトリ内の全ファイルの合計サイズが最大値に達すると、合計サイズが指定された制限を超えないように一番古いアーカイブが削除されます。
デフォルトでは、10MBに達するとログ・ファイルはローテーションされます。特定のコンポーネントの全ログ・ファイルの最大サイズは100MBです。
ログ・ファイルの最大サイズ。特定の時点または頻度に達したときに新しいログ・ファイルが作成されるように指定します。
注意: ログ・ファイルのローテーションを変更すると、構成が動的にリロードされます。構成のリロードには1から2秒かかります。 |
次の各項目で、ローテーションを変更する方法を説明します。
Fusion Middleware Controlを使用してログ・ファイルのローテーションを構成する手順は次のとおりです。
ナビゲーション・ペインからコンポーネントを選択します。
動的ターゲット・メニューで、「ログ」→「ログ構成」を選択します。
「ログ構成」ページが表示されます。
いくつかのコンポーネントでは、ナビゲーションが異なる場合があります。たとえば、Oracle HTTP Serverでは、「管理」→「ログ構成」を選択します。
「ログ・ファイル」タブを選択します。
表内で、ロガーを選択して「構成の編集」をクリックします。
「ログ・ファイルの編集」ダイアログ・ボックスが表示されます。
「ローテーション・ポリシー」セクションで、次のいずれかを選択します。
サイズ・ベース: これを選択した場合は、次を入力します。
「最大ログ・ファイル・サイズ」に、MB単位でサイズを入力します(例: 15)。
「すべてのログ・ファイルの最大サイズ」に、MB単位でサイズを入力します(例: 150)。
時間ベース: これを選択した場合は、次を入力します。
「開始時間」では、「カレンダ」をクリックし、ローテーションを開始する「日付と時間」を選択します。たとえば、September 8, 2010 6:00 AMを選択します。
「頻度」では、「分」を選択して何分かを入力できます。また、「時間」「日次」または「週」を選択することもできます。
「保存期間」では、ログ・ファイルの保存期間を指定できます。「分」を選択して何分かを入力できます。また、「日」「週」、「月」または「年」を選択することもできます。
指定する期間が短いと、使用ディスク領域が少なくなりますが、古い情報を取得できなくなります。
「OK」をクリックします。
確認ウィンドウで、「閉じる」をクリックします。
WLSTを使用してログ・ファイル・ローテーションを指定するには、configureLogHandler
コマンドを使用します。サイズベース、または時間ベースのローテーションを指定できます。
たとえば、ログ・ファイルのローテーションを毎日実行し、1週間保存する場合は、次のコマンドを使用します。
configureLogHandler(name='odl-handler', rotationFrequency='daily', retentionPeriod='week')
ログ・ファイルのサイズが5 MBを超えないこと、およびこのサイズに達するとローテーションすることを指定するには、次のコマンドを使用します。
configureLogHandler(name='odl-handler', maxFileSize='5M')
メッセージのタイプおよびレベルを指定して、ログ・ファイルに書き込まれる情報の量とタイプを構成できます。各メッセージ・タイプで、メッセージ・レベルに使用可能な値は1(最低重大度)から32(最高重大度)です。コンポーネントによっては、各メッセージ・タイプ別にサポートされるレベルが一部に限定されています。詳細は、ご使用のコンポーネント用の管理ガイドを参照してください。一般的には、指定が必要なのはタイプのみで、レベルの指定は必要ありません。
タイプを指定すると、Oracle Fusion Middlewareではそのタイプのすべてのメッセージと、指定したタイプ以上の重大度のメッセージが返されます。たとえば、メッセージ・タイプをWARNINGに設定した場合、Oracle Fusion MiddlewareからINCIDENT_ERRORおよびERRORのタイプのメッセージも返されます。
表12-3は、メッセージ・タイプと各タイプで最も一般的なレベルを説明しています。
表12-3 診断メッセージのタイプとレベル
メッセージ・タイプ | レベル | 説明 |
---|---|---|
INCIDENT_ERROR |
1 |
製品のバグが原因の可能性があり、Oracleサポートに報告する必要がある重大な問題。 この例としては、回復不能なエラーや重大な問題があります。 |
ERROR |
1 |
管理者がただちに対処する必要があり、製品のバグ以外が原因の重大な問題。 この例としては、Oracle Fusion Middlewareがログ・ファイルを処理できないものの、ドキュメントに対する権限の調整によって問題の修正が可能な場合などがあります。 |
WARNING |
1 |
管理者による確認を要する、潜在的な問題。 この例としては、パラメータ値が無効な場合や指定したファイルが存在しない場合などがあります。 |
NOTIFICATION |
1 |
プライマリ・サブコンポーネントや機能のアクティブ化や非アクティブ化などの主要なライフサイクル・イベント。 これはNOTIFICATIONのデフォルト・レベルです。 |
NOTIFICATION |
16 |
通常のイベントをレポートする粒度の詳細なレベル。 |
TRACE |
1 |
パブリックAPIエントリや終了ポイントなど、管理者に重要なイベントに関するトレースまたはデバッグ情報。 |
TRACE |
16 |
詳細なトレースまたはデバッグ情報で、Oracleサポートによる特定のサブシステムの問題診断に有益なもの。 |
TRACE |
32 |
非常に詳細なトレースまたはデバッグ情報で、Oracleサポートによる特定のサブシステムの問題診断に有益なもの。 |
デフォルトは、NOTIFICATION、レベル1です。
レベル1のINCIDENT_ERROR、ERROR、WARNINGおよびNOTIFICATIONは、パフォーマンスに影響しません。その他のタイプおよびレベルについては、次の点に注意してください。
NOTIFICATION、レベル16: パフォーマンスに対する影響は最小。
TRACE、レベル1: パフォーマンスに対する影響は小。このレベルは、ときどき本番環境で有効化して、問題のデバッグに利用できます。
TRACE、レベル16: パフォーマンスに対する影響は大。このレベルは、問題のデバッグなどの特殊な状況を除いて本番環境では有効にしないでください。
TRACE、レベル32: パフォーマンスに対する影響は特大。このレベルは、本番環境で有効にしないでください。これは、テストまたは開発環境における製品のデバッグでの使用を目的としています。
表12-4は、ODL形式、Oracle WebLogic ServerおよびJava間のログ・レベルのマッピングを示しています。
表12-4 ODL、Oracle WebLogic ServerおよびJava間のログ・レベルのマッピング
ODL | WebLogic Server | Java |
---|---|---|
OFF |
OFF |
2147483647 - OFF |
INCIDENT_ERROR:1 |
(EMERGENCY) |
1100 |
INCIDENT_ERROR:4 |
EMERGENCY |
1090 |
INCIDENT_ERROR:14 |
ALERT |
1060 |
INCIDENT_ERROR:24 |
CRITICAL |
1030 |
ERROR:1 |
(ERROR) |
1000 - SEVERE |
ERROR:7 |
ERROR |
980 |
WARNING:1 |
WARNING |
900 - WARNING |
WARNING:7 |
NOTICE |
880 |
NOTIFICATION:1 |
INFO |
800 - INFO |
NOTIFICATION:16 |
(DEBUG) |
700 - CONFIG |
TRACE:1 |
(DEBUG) |
500 - FINE |
TRACE:1 |
DEBUG |
495 |
TRACE:16 |
(TRACE) |
400 - FINER |
TRACE:32 |
(TRACE) |
300 - FINEST |
TRACE:32 |
TRACE |
295 |
次の各項で説明するように、Fusion Middleware ControlまたはWLSTコマンドを使用して、メッセージ・レベルを構成できます。
特定のログ・ファイルまたはロガーのメッセージ・レベルを設定できます。
コンポーネント・ログ・ファイルのメッセージ・レベルを設定する手順は次のとおりです。
ナビゲーション・ペインからコンポーネントを選択します。
動的ターゲット・メニューで、「ログ」→「ログ構成」を選択します。
「ログ構成」ページが表示されます。
いくつかのコンポーネントでは、ナビゲーションが異なる場合があります。たとえば、Oracle HTTP Serverでは、「管理」→「ログ構成」を選択します。
「ログ・ファイル」タブを選択します。
表内で、ログ・ファイルを選択して「構成の編集」をクリックします。
次の図のように「ログ・ファイルの編集」ダイアログ・ボックスが表示されます。
「ログ・レベル」でロギング・レベルを選択します。たとえば、「WARNING:1 (WARNING)」を選択します。
「OK」をクリックします。
確認ウィンドウで、「閉じる」をクリックします。
特定のコンポーネントの1つ以上のロガーにメッセージ・レベルを設定する手順は次のとおりです。
ナビゲーション・ペインからコンポーネントを選択します。
動的ターゲット・メニューで、「ログ」→「ログ構成」を選択します。
「ログ構成」ページが表示されます。
いくつかのコンポーネントでは、ナビゲーションが異なる場合があります。たとえば、Oracle HTTP Serverでは、「管理」→「ログ構成」を選択します。
「ログ・レベル」タブを選択します。
「表示」で「ランタイム・ロガー」または「永続ログ・レベル状態のロガー」を選択します。
ランタイム・ロガーとは、現在アクティブなロガーです。永続ロガーとは、構成ファイルに保存されたロガーで、このロガーのログ・レベルはコンポーネントを再起動しても持続されます。ランタイム・ロガーは永続ロガーでもある場合がありますが、すべてのランタイム・ロガーが永続ロガーであるとはかぎりません。
表内で、すべてのロガーに同一のレベルを指定するには、トップレベル・ロガーにこのロギング・レベルを選択します。次に、ロギング・レベルを親から継承しないことを指定する子ロガーに、「親から継承」を指定します。多くの場合は、これで十分です。
ただし、特定のロガーのレベルを指定する必要がある場合は、ロガーを開き、変更するロガーにロギング・レベルを選択します。たとえば、ロガーoracle.wsm.management.loggingに、「WARNING:1 (WARNING)」を選択します。
「適用」をクリックします。
WLSTを使用してメッセージ・レベルを設定するには、setLoglevel
コマンドを使用します。現在のメッセージ・レベルを確認するには、getLogLevel
コマンドを使用します。構成コマンドを使用する際は、あらかじめWebLogic Serverに接続しておく必要があります。
Oracle WebLogic Serverのロガーのログ・レベルを表示できます。たとえば、Oracle WebLogic Server wls_server_1のログ・レベルを表示する場合は、次のコマンドを使用します。
getLogLevel(logger='oracle', target='wls_server_1') NOTIFICATION:1
特定のロガーのログ・レベルを設定できます。次の例では、ロガーoracle.wsm.msg.loggingのメッセージ・タイプをWARNINGに設定しています。
setLogLevel(target='wls_server_1', logger='oracle.wsm.msg.logging', level='WARNING')
Oracle WebLogic Server wls_server_1のロガーのリストを表示するには、listLoggersコマンドを使用します。
listLoggers(target='wls_server_1') . . . oracle.wsm.msg.logging | NOTIFICATION:1 oracle.wsm.nobehavior.model.NoBehaviorAssertion | <Inherited> oracle.wsm.policy.advertisement.AdvertisementContext | <Inherited> oracle.wsm.policy.model.impl.AndCompositeAssertion | <Inherited> . . .
また、パターン・パラメータと正規表現を使用して、ロガー名をフィルタ処理することもできます。たとえば、Oracle WebLogic Server wls_server_1内で名前がoracle
で始まるすべてのロガーを取得するには、次のコマンドを使用します。
listLoggers(target='wls_server_1', pattern='oracle.*') ------------------------------------------------------------------------------- Logger | Level ------------------------------------------------------------------------------- oracle NOTIFICATION:1 oracle.adf <Inherited> oracle.adf.controller <Inherited> oracle.adf.desktopintegration <Inherited> oracle.adf.faces <Inherited>
デフォルトでは、情報はログ・ファイルにODLテキスト形式で書き込まれます。この形式は、次の各項で説明するように、Fusion Middleware ControlまたはWLSTコマンドを使用してODL XML形式に変更できます。
Fusion Middleware Controlを使用して形式を変更する手順は次のとおりです。
ナビゲーション・ペインからコンポーネントを選択します。
動的ターゲット・メニューで、「ログ」→「ログ構成」を選択します。
「ログ構成」ページが表示されます。
いくつかのコンポーネントでは、ナビゲーションが異なる場合があります。たとえば、Oracle HTTP Serverでは、「管理」→「ログ構成」を選択します。
「ログ・ファイル」タブを選択します。
表内で、ログ・ファイルを選択して「構成の編集」をクリックします。
「ログ・ファイルの編集」ダイアログ・ボックスが表示されます。
「ログ・ファイル形式」で、「Oracle Diagnostics Logging - テキスト」または「Oracle Diagnostics Logging - XML」を選択します。
「OK」をクリックします。
確認ウィンドウで、「閉じる」をクリックします。
WLSTを使用してログ・ファイル形式を指定するには、configureLogHandler
コマンドを使用します(format
パラメータを使用し、ODL-TextまたはODL-XMLを指定します)。デフォルトはODL-Textです。
たとえば、ODL-XML形式を指定するには、次のコマンドを使用します。
configureLogHandler(name='odl-handler', format='ODL-XML')
ログ・ファイルで使用される言語形式およびデータ形式は、サーバーJava仮想マシン(JVM)のデフォルトのロケールで決定されます。これを変更するには、Windowsの場合は「コントロール パネル」の「言語と地域のオプション」を使用し、UNIXプラットフォームの場合は環境変数のLANGおよびLC_ALLを使用します。
ログ・ファイルの文字エンコーディングは、サーバーJVMのデフォルトの文字エンコーディングまたはオプションの構成設定によって決定されます。ユーザーが使用するすべての言語をサポートするエンコーディングを選択する必要があります。選択しないと、ログ・ファイルが破損する可能性があります。デフォルトでは、ログはサーバーJVMのデフォルトのキャラクタ・エンコーディングを使用します。エンコーディングを変更する場合、別のエンコーディングで追加された新しいログによって破損しないように、古いログを削除するか、またはその名前を変更します。
どのような言語でもサポートできるようにするには、Unicode UTF-8エンコーディングを使用することをお薦めします。UNIXオペレーティング・システムでは、環境変数LANGおよびLC_AllをUTF-8キャラクタ・セットのロケールに設定すると、UTF-8ロギングが可能になります(たとえば、UTF-8エンコーディングのUSロケールは、en_US.UTF-8
)。
次の各項で説明するように、ログ・ファイルのロケールを指定するには、WLSTコマンドを使用するか、またはファイルを編集します。
WLSTを使用してログ・ファイルのエンコーディングを指定するには、configureLogHandler
コマンドを使用します。エンコーディング・パラメータを使用して、キャラクタ・セットのエンコーディングを指定できます。
たとえば、UTF-8を指定するには、次のコマンドを使用します。
configureLogHandler(name="odl-handler", encoding="UTF-8")
logging.xmlファイルでログ・ファイルのエンコーディングを指定するには、オプションのエンコーディング・プロパティを使用して、キャラクタ・セットのエンコーディングを指定します。
logging.xmlファイルは、次のディレクトリにあります。
DOMAIN_HOME/config/fmwconfig/servers/server_name/
たとえば、UTF-8を指定するには、log_handler要素に次のエンコーディング・プロパティを追加します。
<property name='encoding' value='UTF-8'/>
Oracle Fusion Middlewareコンポーネントは、診断メッセージにメッセージ相関情報を提供します。メッセージ相関情報は、診断メッセージを表示したユーザーがコンポーネント間のメッセージの関係を判定する際に役立ちます。診断メッセージのそれぞれに、実行コンテキストID (ECID)と関係ID (RID)が組み込まれています。
ECIDは、特定リクエストの実行に関連付けられたグローバル一意識別子です。ECIDは、リクエストを最初に処理したときに生成されます。
RIDは、1つのリクエストにおいて、特定のプロセス上の特定スレッドで実行された作業と、同じプロセス上の別スレッドおよび別プロセス上で実行された作業を区別します。
ECIDとRIDを利用すると、ログ・ファイル・エントリを使用して、特定のアプリケーションとOracle Fusion Middlewareコンポーネント間のメッセージを関連付けることができます。メッセージ相関情報を使用して関連メッセージを検索すると、複数のメッセージを調べることができ、最初に問題が発生したコンポーネントを特定できます(この方法は、最初に障害が発生したコンポーネントの切分けと呼ばれます)。メッセージ相関データを使用すると、コンポーネント全体における診断メッセージのパスが明確になり、エラーや関連する動作を把握できます。
ECIDおよびRIDを使用して、Oracle Fusion Middleware内を移動するリクエストをトラッキングできます。
次に、ECIDの例を示します。
0000I3K7DCnAhKB5JZ4Eyf19wAgN000001,0
RIDはコロン(:)で区切られた1つ以上の数字で示されます。特定のリクエストに対して最初に作成されるRIDは0です。ECIDが関連付けられているスレッドから別のスレッドまたはプロセスに作業が渡されるたびに、作成者との関係をエンコードする新たなRIDが生成されます。つまり、新しい世代が生成されます。世代が推移するたびに、コロンと数値が追加されます。たとえば、リクエストの作成者の3番目の子の7番目の子は、次のように示されます。
0:3:7
WLSTのdisplayLogs
コマンドを使用して、同一のECIDのメッセージをすべて表示できます。次の例は、ドメインでECIDを検索します。
displayLogs(ecid='0000Hl9TwKUCslT6uBi8UH18lkWX000002')
ターゲット・オプションで指定することにより、WebLogic Serverインスタンスやシステム・コンポーネントでECIDを検索することも可能です。
Fusion Middleware Controlの「ログ・メッセージ」ページで特定のECIDを持つメッセージを検索できます。
「WebLogicドメイン」メニューで、「ログ」→「ログ・メッセージの表示」を選択します。
特定のコンポーネントまたはアプリケーションのメッセージを検索する際は、該当するコンポーネントまたはアプリケーションを選択し、そのターゲットのメニューから「ログ」→「ログ・メッセージの表示」を選択します。
第12.3.2.1.2項の説明に従って、検索条件を指定します。
「検索」をクリックします。
メッセージを選択して「関連メッセージの表示」をクリックし、「ECID(実行コンテキストID)ごと」を選択します。
次の図のように、ECIDが同じメッセージが表示されます。
最も古いメッセージまでECIDをトレースします。(必要に応じて、そのECIDを持つ最初のメッセージが表示されるまで範囲を拡大します。)
場合によっては、問題を解決するために、通常のログに記録されるよりも多くの情報が必要になることがあります。これを実現する方法の一つは、1つまたは複数のコンポーネントで記録されるログのメッセージ・レベルを上げることです。たとえば、第12.4.3項で説明されているように、ロギング・レベルをTRACE:1やTRACE:32に設定できます。これにより、より詳細なメッセージがログ・ファイルに書き込まれるようになります。これをトレースと呼びます。
ただし、多くの場合、これによってログ・ファイルに大量のログ・メッセージが書き込まれるようになります。Oracle Fusion Middlewareでは、トレース対象のメッセージを細かく調整するために次のメカニズムを使用できます。
QuickTrace。メモリーに対してきめ細かなロギングを行います。
選択的トレース。リクエスト内の特定のユーザーまたは他のプロパティについて、きめ細かなロギングを行います。
次の各項では、これらのメカニズムの使用方法について説明します。
QuickTraceを使用すると、特定のロガーのメッセージをトレースして、そのメッセージをメモリーに格納できます。QuickTraceではメッセージがメモリーに記録されるため、フォーマット設定、文字列操作および入出力操作に伴うコストが回避されます。そのため、パフォーマンスのオーバーヘッドを気にすることなく、特定のロガーに対して詳細レベルでのアプリケーション・ロギングを有効化できます。
デフォルトでは、QuickTraceは1つの共通バッファにメッセージを書き込みます。一方で、特定のユーザーのメッセージが個別のバッファに書き込まれるように指定できます。
メモリーに格納されたメッセージは、Fusion Middleware ControlでQuickTraceダンプを起動する(第12.6.1.1.2項を参照)か、WLSTを使用する(第12.6.1.2.2項を参照)ことによってファイルに保存できます。
QuickTraceを有効にするには、QuickTraceハンドラを作成してロガーに関連付けます。ハンドラには、バッファ・サイズなどの属性を指定できます。続いて、ロガーがメモリーに書き込む情報の量およびタイプのレベルを設定します。
次の各項では、QuickTraceの有効化と使用方法について説明します。
次の各項で説明するように、Fusion Middleware Controlを使用して、QuickTraceを構成および使用できます。
Fusion Middleware Controlを使用してQuickTraceを構成する手順は次のとおりです。
ナビゲーション・ペインからドメインを展開します。管理対象サーバー名を右クリックして、「ログ」→「ログ構成」を選択します。
「ログ構成」ページが表示されます。
「QuickTrace」タブを選択します。
「作成」をクリックします。
次の図に示すように、「QuickTraceハンドラの作成」ダイアログ・ボックスが表示されます。
「名前」に、ハンドラの名前を入力します。
「バッファ・サイズ」に、ログ・メッセージをメモリーに格納するためのバッファ・サイズ(バイト)を入力します。デフォルトは5242880です。
「最大フィールド長」に、メッセージの各フィールドの長さ(バイト)を入力します。フィールドには、メッセージ・テキスト、サプリメンタル属性およびスレッド名を含めることができます。デフォルトは240です。
各メッセージのフィールドが長すぎると、バッファ内に格納できるログ・レコードの量が少なくなります。
「ハンドラ・レベル」で、ハンドラのログ・レベルを選択します。レベルについては、第12.4.3項を参照してください。
「関連付けるロガー」で、このQuickTraceハンドラに関連付けるロガーを選択します。これらのハンドラに指定されたレベルのメッセージはすべて、メモリーに書き込まれます。
様々なロガーが他のハンドラに関連付けられています。たとえば、oracle.adfロガーは、ハンドラodl-handler、wls-domainおよびconsole-handlerに関連付けられています。ロガーのレベルを設定すると、これらのハンドラはロガー(oracle.adfなど)に対して同一のレベル(TRACE:1など)を使用します。そのため、ログ・ファイルに大量の情報が書き込まれ、リソースが消費されます。リソースの消費を回避するには、ハンドラのレベルを低いレベル(WARNINGやINFORMATIONなど)に設定します。
ユーザー・バッファを有効にする場合は、「ユーザー・バッファを有効化しますか。」を選択します。これを有効にすると、ハンドラは、指定された各ユーザーに対して個別のバッファを保持します。
続いて、「予備バッファのユーザー名」に、カンマ区切りのユーザー名を入力します。
残りのオプションについては、デフォルト値を受け入れます。オプションの詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のConfigureLogHandlerに関する説明を参照してください。
「OK」をクリックします。
構成処理が完了したら、「OK」をクリックします。
これで、指定したロガーの指定したレベルのメッセージが、メモリーに書き込まれるようになりました。
Fusion Middleware ControlでQuickTraceダンプを起動して、メモリーに格納されたメッセージをファイルに保存できます。
「ログ構成」ページの「QuickTrace」タブで、ハンドラを選択し、「QuickTraceダンプの起動」をクリックします。
「QuickTraceダンプの起動」ダイアログ・ボックスが表示されます。
QuickTraceハンドラの構成時にユーザー・バッファを指定した場合は、「バッファ名」でユーザーを選択するか、指定しなかったユーザーに対して「共通バッファ」を選択します。いずれのユーザー・バッファも選択しなかった場合には、「共通バッファ」のみを選択できます。
「OK」をクリックします。
処理が完了すると、「ログ・メッセージの表示」ページが表示されます。
第12.3.2項の説明に従って、メッセージを検索できます。また、第12.5項の説明に従って、メッセージを関連付けることができます。
さらに、第12.3.3.1項.の説明に従って、メッセージをファイルにダウンロードすることもできます。
次の各項で説明するように、WLSTを使用して、QuickTraceを構成および使用できます。
WLSTを使用してQuickTraceを構成するには、configureLogHandlerコマンドを使用して、ロガーをQuickTraceハンドラに関連付けます。
たとえば、oracle.adfロガーをQuickTraceハンドラに関連付けて、TRACE:1のメッセージをすべてメモリーに書き込む手順は次のとおりです。
configureLogHandlerコマンドを使用して、ロガーをQuickTraceハンドラに関連付けます。
configureLogHandler(name="quicktrace-handler", addToLogger="oracle.adf") Handler Name: quicktrace-handler type: oracle.core.ojdl.logging.QuickTraceHandlerFactory encoding: UTF-8 maxFieldLength: 240 mode: objRef useThreadName: false useSourceClassandMethod: false useLoggingContext: false bufferSize: 5242880
ハンドラのメッセージが共通バッファに書き込まれます。
QuickTraceハンドラに追加のプロパティを設定できます。たとえば、user1およびuser2のユーザー・バッファを有効にするには次のようにします。
configureLogHandler(name="quicktrace-handler", addToLogger="oracle.adf.faces", propertyName="enableUserBuffer", propertyValue="true", propertyName="enableUserBuffer", propertyValue="user1, user2") ... Handler Name: quicktrace-handler type: oracle.core.ojdl.logging.QuickTraceHandlerFactory useLoggingContext: false bufferSize: 5242880 . . . reserveBufferUserID: user1, user2 enableUserBuffer: true
user1およびuser2のメッセージは別々のバッファに書き込まれます。また、他のユーザーに関連するメッセージは共通バッファに書き込まれます。
ハンドラの設定を確認するには、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のlistLogHandlersに関する説明に従って、listLogHandlersコマンドを使用します。
setLogLevelコマンドを使用して、ロガーのレベルを設定します。
setLogLevel(logger='oracle.adf', level='TRACE:1')
ロガーの設定を確認するには、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のlistLoggersに関する説明に従って、listLoggersコマンドを使用します。
様々なロガーが他のハンドラに関連付けられています。たとえば、oracle.adfロガーは、ハンドラodl-handler、wls-domainおよびconsole-handlerに関連付けられています。ロガーのレベルを設定すると、これらのハンドラはロガーoracle.adfに対して同一のレベル(TRACE:1)を使用します。そのため、ログ・ファイルに大量の情報が書き込まれ、リソースが消費されます。リソースの消費を回避するには、ハンドラのレベルを低いレベル(WARNINGやINFORMATIONなど)に設定します。
次の例では、3つのハンドラのレベルをWARNING:1に設定します。
configureLogHandler(name="odl-handler", level="WARNING:1") configureLogHandler(name="wls-domain", level="WARNING:1") configureLogHandler(name="console-handler", level="WARNING:1")
QuickTraceハンドラのレベルは、ALL(デフォルト)のままにしておいてください。
詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のconfigureLogHandlerに関する説明を参照してください。
このハンドラのレベルを確認するには、第12.4.3.2項の説明に従ってgetLogLevelコマンドを使用します。
メッセージをファイルに保存するには、executeDumpコマンドを使用します。
次に例を示します。
executeDump(name="odl.quicktrace", outputFile="/scratch/oracle1/qt1.dmp")
コマンドにより、指定したファイルにダンプが書き込まれます。
executeDumpコマンドの詳細は、第13.4.4.3項.を参照してください。
また、インシデントが(自動または手動で)作成されると、インシデント・ディレクトリのダンプ・ファイルにQuickTraceメッセージが書き込まれます。ユーザー・バッファを有効にしている場合、各ユーザーは1つのファイルを使用します。また、共通バッファでも1つのファイルを使用します。
ファイル名のフォーマットは次のとおりです。
odl_quicktraceN_iincident_number.username.dmp
次に例を示します。
odl_quicktrace6_i1.weblogic.dmp
インシデントの作成については、第13.4.6.1項を参照してください。
QuickTraceを無効化するには、configureLogHandlerコマンドを使用して、levelにOFFを指定します。
configureLogHandler(name="quicktrace-handler", level="OFF") Handler Name: quicktrace-handler type: oracle.core.ojdl.logging.QuickraceHandlerFactory . . . reserveBufferUserID: user1, user2 enableUserBuffer: true
QuickTraceハンドラの関連付けから特定のロガーを削除するには、configureLogHandlerコマンドを使用してremoveFromLoggerパラメータを指定します。
configureLogHandler(name="quicktrace-handler", removeFromLogger="oracle.adf.faces") Handler Name: quicktrace-handler type: oracle.core.ojdl.logging.QuickraceHandlerFactory reserveBufferUserID: user1, user2 enableUserBuffer: true
詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のconfigureLogHandlerに関する説明を参照してください。
選択的トレースは、リクエスト内の指定したユーザーまたは他の属性について、きめ細かなロギングを行います。
たとえば、セキュリティ権限が原因で、あるユーザーが一部の機能を実行できない場合に、どの操作に問題があるのか、あるいはどの操作の権限が不足しているのか、わからないことがあります。
このような場合、システム全体を通じてトレースを有効にすることもできますが、そうすることで問題のあるユーザーのみならず、システム内のすべてのユーザーに対してログ・メッセージが大量に生成されることになります。選択的トレースを使用すると、問題のあるユーザーのみに対してトレースを有効化できます。また、機能を再試行するかどうか、そのユーザーに尋ねることができます。そして、そのユーザーが行った特定のリクエストに該当するトレース・メッセージを調べることができます。
ロガーを指定して、ログに記録されるメッセージの範囲を絞り込むこともできます。
次の各項で説明するように、Fusion Middleware ControlまたはWLSTコマンドを使用して、選択的トレースを使用できます。
次の各項で説明するように、Fusion Middleware Controlを使用して、選択的トレースの構成、トレースの表示および選択的トレースの無効化を行うことができます。
Fusion Middleware Controlを使用して選択的トレースを構成する手順は次のとおりです。
ナビゲーション・ペインからドメイン名を右クリックして、「ログ」、「選択的トレース」の順に選択します。
次の図に示すように、「選択的トレース」ページが表示されます。
「アプリケーション名」で、アプリケーションを選択します。
さらにフィールドを追加するには、「フィールドの追加」をクリックし、いずれかのオプション(「クライアント・ホスト」や「ユーザー名」など)を選択します。
「レベル」で、ロギング・レベルを選択します。表12-3にロギング・レベルを示します。
「説明」に、説明を入力します。
「期間」に、選択的トレースの実行時間を分単位で入力します。
指定した時間を過ぎると、選択的トレースは無効化されます。
「トレースID」で、「一意の新規トレースIDの生成」または「カスタム・トレースIDの使用」のいずれかを選択します。「カスタム・トレースIDの使用」を選択する場合は、任意の選択IDを入力しますが、それが一意のIDであることを確認してください。Fusion Middleware Controlは、IDの一意性を検証しません。
「ODL」セクションで、「有効化」を選択します。
デフォルトでは、「ロガー」セクションで、すべてのロガーが選択されています。
トレースする特定のロガーを選択できます。特定のロガーを検索するには、表の上部にあるフィールドに文字列を入力して、[Return]キーを押します。たとえば、「oracle.security」で始まるロガーをすべて検索するには、「oracle.security」と入力します。
続いて、表の「すべてのサーバーで有効化しますか。」列でロガーを選択します。
ロガーを選択すると、それらのロガーは、現在アクティブなすべてのトレースに適用されます。また、ロガーを無効にした場合でも、すべてのロガーで一般的なロギング・レベル(Notificationなど)が使用されているため、メッセージが表示される場合があります。これらのメッセージは、引き続き書き込まれます。
「トレースを開始」をクリックします。
これで、トレースが開始されました。第12.6.2.1.2項の説明に従って、アクティブなトレースと以前のトレースを表示できます。
現在アクティブな選択的トレースおよび選択的トレースの履歴を表示できます。
選択的トレースを表示する手順は次のとおりです。
「選択的トレース」ページで、「アクティブなトレースとトレース履歴」タブを選択します。
次の図に示すように、アクティブなトレースの表とトレース履歴の表がタブに表示されます。
トレースを表示するには、該当する表からトレースを選択します。
「ログ・メッセージ」ページが表示され、選択的トレースで収集されたメッセージが表示されます。第12.3.2項の説明に従って、メッセージを検索できます。また、第12.5項の説明に従って、メッセージを関連付けることができます。
さらに、第12.3.3.1項.の説明に従って、メッセージをファイルにダウンロードすることもできます。
Fusion Middleware Controlを使用して選択的トレースを無効化する手順は次のとおりです。
ナビゲーション・ペインからドメイン名を右クリックして、「ログ」、「選択的トレース」の順に選択します。
「アクティブなトレースとトレース履歴」タブを選択します。
「アクティブなトレース」表で、トレースを選択して「無効化」をクリックします。
次の各項で説明するように、WLSTを使用して、選択的トレースの構成、トレースの表示および選択的トレースの無効化を行うことができます。
WLSTのconfigureTracingLoggersコマンドとstartTracingコマンドを使用して、選択的トレースのロガーを構成し、トレースを開始できます。
最も簡単に行うには、startTracingコマンドを使用してトレースを構成および開始します。これを行うと、選択的トレースが有効化されているすべてのロガーが選択的トレースに含まれます。
たとえば、user1は特定の操作を実行しようとするとエラーを受け取ります。user1に関連するメッセージのトレースを開始して、ロギング・レベルをFINEに設定するには、次のコマンドを使用します。
startTracing(user="user1",level="FINE") Started tracing with ID: 885649f7-8efd-4a7a-9898-accbfc0bbba3
startTracingコマンドには、特定のロガーを含めるまたは除外するためのオプションはありません。そのような場合には、configureTracingLoggersコマンドを使用します。このコマンドを使用すると、特定のロガーと特定のOracle WebLogic Serverインスタンスのみを含むように選択的トレースを構成できます。指定するオプションは、現在アクティブなすべてのトレースに適用されます。
たとえば、セキュリティ関連のロガーのみを含むように選択的トレースを構成する手順は次のとおりです。
次の例に示すように、トレースに関するすべてのロガーが無効化されるように指定します。
configureTracingLoggers(action="disable") Configured 1244 loggers
正規表現でパターン・オプションを指定して、セキュリティ関連のロガーを有効化します。
configureTracingLoggers(pattern='oracle.security.*', action="enable") Configured 62 loggers
選択的トレースをサポートするロガーのリストを表示するには、次の例に示すように、WLSTのlistTracingLoggersコマンドを使用します。
listTracingLoggers(pattern="oracle.security.*") ------------------------------------------------------------------+-------- Logger | Status ------------------------------------------------------------------+-------- oracle.security | enabled oracle.security.audit.logger | enabled oracle.security.jps.az.common.util.JpsLock | enabled . . .
startTracingコマンドを使用して、ユーザーとレベルを指定します。次に例を示します。
startTracing(user="user1",level="FINE") Started tracing with ID: a9580e65-13c4-420b-977e-5ba7dd88ca7f
関連項目: 完全な構文については、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』の次のコマンドに関する説明を参照してください。
|
トレースを開始した後で、次の例に示すように、listActiveTracesコマンドを使用してアクティブなトレースを表示できます。
listActiveTraces() -------------------------------------+----------+-----------+------+-----------+----------- Trace ID |Attr. Name|Attr. Value| Level| Exp. Time |Description -------------------------------------+----------+-----------+------+-----------+----------- b73b351c-9a9b-47df-b05a-356a336d5780 | USER_ID | user1 | FINE | 5/22/13 11:17 AM | a9580e65-13c4-420b-977e-5ba7dd88ca7f |USER_ID |user1 | FINE | 5/22/13 11:19 AM |
トレースの内容を表示するには、displayLogsコマンドを使用してトレースIDを渡します。停止されたトレースを表示することもできます。次に例を示します。
displayLogs("a9580e65-13c4-420b-977e-5ba7dd88ca7f")
完全な構文については、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のlistActiveTracesに関する説明を参照してください。
システムで過度のロギングが行われないようにするには、必要な情報を取得した後で選択的トレースを無効化します。選択的トレースを無効化するには、WLSTのstopTracingコマンドを使用して、トレースIDまたはユーザーを渡します。次に例を示します。
stopTracing(traceId="885649f7-8efd-4a7a-9898-accbfc0bbba3") Stopped 1 traces
stopAllオプションを使用して、すべてのトレースを無効化することもできます。次に例を示します。
stopTracing(stopAll=1)
完全な構文については、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のstopTracingに関する説明を参照してください。