WebLogic 診断フレームワークのコンフィグレーションと使い方

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

WLDF クエリ言語

WebLogic 診断フレームワーク (WLDF) には、監視ルール式、データ アクセサ クエリ式、およびログ フィルタ式を作成するためのクエリ言語が含まれています。クエリ言語の構文は、SQL 構文の一部を簡略化したものです。

以下の節では、このクエリ言語について説明します。

 


クエリ式の構成要素

クエリ式には、以下のものを指定できます。

クエリ言語では、大文字と小文字は区別されます。

 


サポートされる演算子

クエリ言語では、表 A-1 に示す演算子がサポートされます。

表 A-1 WLDF クエリ言語の演算子
演算子
演算子の種類
サポートされるオペランドの種類
定義
AND
論理二項
ブール
両方の式が true のとき true と評価される。
OR
論理二項
ブール
どちらかの式が true のとき true と評価される。
NOT
論理単項
ブール
式が true でないとき true と評価される。
&
ビット二項
数値、
仕分けフラグ
各オペランドの同じ位置のビットのペアに対して、ビット単位の AND 関数を実行する。両方のオペランドのビットが 1 の場合、& 関数の演算結果として 1 が設定される。それ以外の場合、演算結果は 0 に設定される。
& 演算子と | 演算子の例を以下に示す。
  1010 & 0010 = 0010
  1010 | 0001 = 1011
  ( 1010 & ( 1100 | 1101 )) = 1000
|
ビット二項
数値、
仕分けフラグ
各オペランドの同じ位置のビットのペアに対して、ビット単位の OR 関数を実行する。どちらかのオペランドのビットが 1 の場合、| 関数の演算結果として 1 が設定される。それ以外の場合、演算結果は 0 に設定される。
この例については、上記のビット & 演算子の例を参照。
=
比較
数値、文字列
等しい
!=
比較
数値
等しくない
<
比較
数値
より小さい
>
比較
数値
より大きい
<=
比較
数値
以下
>=
比較
数値
以上
LIKE
一致
文字列
文字列が指定したパターン (ワイルドカード使用可) に一致するときに true と評価される。
LIKE では、以下の 2 つのワイルドカード文字がサポートされる。
パーセント記号 (%) は 0 文字以上の文字に一致する。
ピリオド (.) は単一の文字に一致する。
MATCHES
一致
文字列
対象の文字列がオペランド String の正規表現パターンに一致するときに true と評価される。
IN
検索
文字列
変数の値があらかじめ定義されたセット内に存在するときに true と評価される。次に例を示す。
SUBSYSTEM IN ('A','B')

 


演算子の優先順位

以下に、演算子間の優先順位のレベルを、高いものから順に示します。同じ行に示す演算子は、すべて同等の優先順位です。

  1. ( )
  2. NOT
  3. &|
  4. = != < > <= >= LIKE MATCHESIN
  5. AND
  6. OR

 


サポートされる数値定数と文字列リテラル

数値定数のルールは以下のとおりです。

文字列リテラルのルールは以下のとおりです。

 


式内の変数について

変数は、実行時に評価されるクエリ式の動的な部分を表します。以下の節の説明に従って、作成する式の種類に合った適切な変数を使用する必要があります。

 


監視ルール式の作成

監視は、ログ イベント、インスツルメンテーション イベント、および収集された属性に基づいて作成できます。式の作成でサポートされる変数は、監視の種類ごとに異なります。以下の節を参照してください。

WLDF 監視のコンフィグレーションおよび使い方の詳細については、以下を参照してください。

ログ イベントの監視ルール式の作成

ログ イベントの監視ルール式は、サーバ ログからのログ メッセージの属性に基づいています。

表 A-2 では、ログ メッセージ属性の変数名について説明します。

表 A-2 ログ イベントの監視ルール式の変数名
変数
説明
データ型
CONTEXTID
要求と一緒に伝播される要求 ID。
文字列
DATE
ログ メッセージが作成されたときの日付。
文字列
MACHINE
ログ メッセージを生成したマシンの名前。
文字列
MESSAGE
ログ メッセージのメッセージ コンテンツ。
文字列
MSGID
ログ メッセージの ID (通常、「BEA=」で始まる)。
文字列
RECORDID
ログ内のレコードの数。
Long
SERVER
ログ メッセージを生成したサーバの名前。
文字列
SEVERITY
ログ メッセージ属性の重大度。値は、ALERT、CRITICAL、DEBUG、EMERGENCY、ERROR、INFO、NOTICE、OFF、TRACE、および WARNING。
文字列
SUBSYTEM
ログ メッセージを送信するサブシステムの名前。
文字列
THREAD
ログ メッセージを生成したスレッドの名前。
文字列
TIMESTAMP
ログ メッセージが作成されたときのタイムスタンプ。
Long
TXID
ログ メッセージを生成したスレッドの JTA トランザクション ID。
文字列
USERID
ログ メッセージを生成したユーザの ID。
文字列

次に、ログ イベントの監視ルール式の例を示します。

  (SEVERITY = 'WARNING') AND (MSGID = 'BEA-320012')

インスツルメンテーション イベントの監視ルール式の作成

インスツルメンテーション イベントの監視ルール式は、診断モニタ アクションによって作成されたデータ レコードの属性に基づきます。

表 A-3 では、インスツルメンテーション データ レコード属性の変数名について説明します。

表 A-3 インスツルメンテーション イベントのルール式の変数名
変数
説明
データ型
ARGUMENTS
呼び出されたメソッドに渡される引数。
文字列
CLASSNAME
ジョインポイントのクラス名。
文字列
CONTEXTID
インスツルメンテーション イベントの診断コンテキスト ID。
文字列
CTXPAYLOAD
この要求に関連付けられたコンテキスト ペイロード。
文字列
DOMAIN
ドメインの名前。
文字列
DYES
この要求に関連付けられた仕分け。
Long
FILENAME
ソース ファイル名。
文字列
LINENUM
ソース ファイルの行番号。
整数
METHODNAME
ジョインポイントのメソッド名。
文字列
METHODDSC
ジョインポイントのメソッドの引数。
文字列
MODULE
診断モジュールの名前。
文字列
MONITOR
モニタの名前。
文字列
PAYLOAD
インスツルメンテーション イベントのペイロード。
文字列
RECORDID
ログ内のレコードの数。
Long
RETVAL
ジョインポイントの戻り値。
文字列
SCOPE
インスツルメンテーション スコープの名前。
文字列
SERVER
インスツルメンテーション イベントを作成したサーバの名前。
文字列
TIMESTAMP
インスツルメンテーション イベントが作成されたときのタイムスタンプ。
Long
TXID
インスツルメンテーション イベントを作成したスレッドの JTA トランザクション ID。
文字列
TYPE
モニタの種類。
文字列
USERID
インスツルメンテーション イベントを作成したユーザの ID。
文字列

次に、インスツルメンテーション イベント データのルール式の例を示します。

  (USERID = 'weblogic')

ハーベスタの監視ルール式の作成

ハーベスタの監視ルール式は、収集可能な 1 つまたは複数の MBean 属性に基づきます。式では、MBean 型、インスタンス、および属性を指定できます。

ハーベスタの監視ルール式を作成するための構文は次のとおりです。

式には、次の例に示すように、MBean オブジェクトの完全な名前を指定する必要があります。

${com.bea:Name=HarvesterRuntime,Location=myserver,Type=HarvesterRuntime,
      ServerRuntime=myserver//TotalSamplingCycles} > 10

 


データ アクセサ クエリの作成

データ アクセサ コンポーネントで WLDF クエリ言語を使用すると、サーバ ログ、HTTP ログ、収集されたメトリックなどのデータをデータ ストアから取得できます。データ アクセサ クエリの作成に使用する変数は、データの抽出元となるデータ ストアのカラム名に基づいています。

データ アクセサ クエリには以下が含まれます。

一致するデータがあると、一致した行のすべてのカラムが返されます。

データ ストアの論理名

データ ストアの論理名は、ユニークなものである必要があります。論理名によって示されるのは、サーバ上で利用可能な特定のデータ ストアです。論理名は、ログの種類を表すキーワードと、フォワード スラッシュ (/) で区切られた 0 個以上の識別子で構成されます。たとえば、サーバ ログ データ ストアの論理名は単純に ServerLog となります。しかし、他の種類のログの場合は、表 A-4 に示すように追加の識別子が必要になることがあります。

表 A-4 ログの種類の命名規約
ログの種類
省略可能な識別子
ConnectorLog
接続ファクトリの JNDI 名
ConnectorLog/eis/
900eisaBlackBoxXATxConnectorJNDINAME
ここで
eis/900eisaBlackBoxXATxConnectorJNDINAME
は、weblogic-ra.xml デプロイメント記述子で指定された接続ファクトリの JNDI 名。
DomainLog
なし
DomainLog
EventsDataArchive
なし
EventsDataArchive
HarvestedDataArchive
なし
HarvestedDataArchive
HTTPAccessLog
仮想ホスト名
HTTPAccessLog - デフォルトの Web サーバのアクセス ログ
HTTPAccessLog/MyVirtualHost - 現在のサーバにデプロイされている MyVirtualHost という仮想ホスト
注意 : HTTPAccessLog の拡張フォーマットでは、カラム数をユーザが定義できる。
JMSMessageLog
JMS サーバの名前
JMSMessageLog/MyJMSServer
ServerLog
なし
ServerLog
WebAppLog
Web サーバ名 +
ルート サーブレットのコンテキスト名
WebAppLog/MyWebServer/MyRootServletContext

データ ストアのカラム名

クエリに含まれるカラム名は、データの行ごとに解決されます。結果セットに行が追加されるのは、指定したすべてのカラムについてその行がクエリ条件を満たしたときだけです。クエリでカラム名を省略した場合、ログのすべてのエントリが返されます。

表 A-5 に、WebLogic Server の全種類のログのカラム名をすべて示します。

表 A-5 ログの種類のカラム名
ログの種類
カラム名
ConnectorLog
LINE、RECORDID
DomainLog
CONTEXTID、DATE、MACHINE、MESSAGE、MSGID、RECORDID、SERVER、SEVERITY、SUBSYSTEM、THREAD、TIMESTAMP、TXID、USERID
EventsDataArchive
ARGUMENTS、CLASSNAME、CONTEXTID、CTXPAYLOAD、DOMAIN、DYES、FILENAME、LINENUM、METHODNAME、METHODDSC、MODULE、MONITOR、PAYLOAD、RECORDID、RETVAL、SCOPE、SERVER、TIMESTAMP、TXID、TYPE、USERID
HarvestedDataArchive
ATTRNAME、ATTRTYPE、ATTRVALUE、DOMAIN、NAME、RECORDID、SERVER、TIMESTAMP、TYPE
HTTPAccessLog
AUTHUSER、BYTECOUNT、HOST、RECORDID、REMOTEUSER、REQUEST、STATUS、TIMESTAMP
JDBCLog
DomainLog と同じ
JMSMessageLog
CONTEXTID、DATE、DESTINATION、EVENT、JMSCORRELATIONID、JMSMESSAGEID、MESSAGE、MESSAGECONSUMER、NANOTIMESTAMP、RECORDID、SELECTOR、TIMESTAMP、TXID、USERID
ServerLog
DomainLog と同じ
WebAppLog
DomainLog と同じ

次に、データ アクセサ クエリの例を示します。

SUBSYSTEM = 'Deployer' AND MESSAGE LIKE '%Failed%'

この例の場合、アクセサは Deployer サブシステムから「Failed」という文字列を含むすべてのメッセージを取得します。

次の例では、API メソッドの呼び出しを示します。この例には、timeStampFrom (その時間を含む) から timeStampTo (その時間を含まない) の間隔内での、MyPool という JDBC 接続プールの収集された属性のクエリが含まれています。

  WLDFDataAccessRuntimeMBean.retrieveDataRecords(timeStampFrom, 
    timeStampTo, "TYPE='JDBCConnectionPoolRuntime' AND NAME='MyPool'")

WLDF データ アクセサの詳細については、「データ アクセサを使用した診断データへのアクセス」を参照してください。

 


ログ フィルタ式の作成

クエリ言語を使用すると、サーバ ログに書き込まれたログをフィルタ処理できます。ログ フィルタ式の作成に使用する変数は、ログのカラムを表します。

注意 : これらの変数は、既存のサーバ ログから診断データの履歴を取得するデータ アクセサ クエリの作成に使用する変数と同じです。

WebLogic Server のロギング サービスの詳細については、『ログ ファイルのコンフィグレーションとログ メッセージのフィルタ処理』の「WebLogic Server ログ メッセージのフィルタ処理」を参照してください。

 


複雑な式の作成

変数、バイナリ比較、その他の複雑なサブ式を含む、サブ式を使用した複雑なクエリ式を作成できます。ネストのレベルに制限はありません。次のルールが適用されます。


  ページの先頭       前  次