SQL エージェントでは、ユーザはカスタムの正規化を実行するための拡張を追加できます。 これを行うため、SQL エージェントによって実装されている正規化スキーマを含む DLL ファイルを作成します。
SQL ステートメントのノーマライザ拡張を適用する方法
SQL ノーマライザ拡張機能ファイルのエントリ ポイント クラスは、com.wily.introscope.agent.trace.ISqlNormalizer インターフェースを実装している必要があります。
DLL 拡張ファイルの作成には、SQL ノーマライザ拡張用の特定のキーを含むマニフェスト ファイルの作成が含まれます。これについては、以下の手順 2 で詳しく説明します。 ただし、拡張を動作させるためには、その他の一般キーも必要です。 これらのキーは、すべての拡張ファイルを作成するときに使用するタイプです。 作成する拡張ファイルは、データベース SQL ステートメント テキスト正規化、たとえば Backends|{backendName}|SQL|{sqlType}|{actualSQLStatement} ノードの下のメトリックと関連します。 {actualSQLStatement} は、SQL ノーマライザによって正規化されます。
com-wily-Extension-Plugins-List:testNormalizer1
注: このキーの値は任意です。 このインスタンスでは、例として testNormalizer1 が使用されています。 このキーの値として指定するものはすべて、以下のキーでも同様に使用してください。
com-wily-Extension-Plugin-testNormalizer1-Type: sqlnormalizer com-wily-Extension-Plugin-testNormalizer1-Version: 1 com-wily-Extension-Plugin-testNormalizer1-Name: normalizer1
注: 上記のキーには、一意のノーマライザ名(たとえば normalizer1)が含まれている必要があります。
com-wily-Extension-Plugin-testNormalizer1-Entry-Point-Class: <Thefully-qualified classname of your implementation of ISQLNormalizer>
introscope.agent.sqlagent.normalizer.extension
作成した拡張のマニフェスト ファイルからプロパティを com-wily-Extension-Plugin-{plugin}-Name に設定します。 このプロパティの値は大文字と小文字を区別しません。 例:
introscope.agent.sqlagent.normalizer.extension=normalizer1
注: これはホット プロパティです。 拡張名を変更すると、拡張を再登録する必要があります。
introscope.agent.sqlagent.normalizer.extension.errorCount
エラーおよび例外の詳細については、「例外」を参照してください。
注: カスタム ノーマライザ拡張によるエラーがエラー スロットル カウントの数を超えたとき、拡張は無効となります。
作成した拡張によって、あるクエリに対してエラーが発生した場合、デフォルトの SQL ステートメント ノーマライザはそのクエリに対してデフォルトの正規化スキーマを使用します。 このようなことが発生した場合は、拡張によって例外が発生したことを示す ERROR メッセージが記録され、スタック トレース情報と一緒に DEBUG メッセージも記録されます。 ただし、このようなエラーが 5 個発生すると、デフォルトの SQL ステートメント ノーマライザは作成した拡張を無効にし、ノーマライザが変更されるまで今後のクエリで作成した拡張が使用されるのを停止します。
クエリに対して、作成した拡張が Null 文字列または空の文字列を返す場合、StatementNormalizer はそのクエリに対してデフォルト正規化スキーマを使用し、拡張が Null 値を返したことを示す INFO メッセージが記録されます。 ただし、このような Null または空の文字列が 5 個返されると、StatementNormalizer はメッセージのログ記録を停止しますが、引き続き拡張の使用を試みます。
|
Copyright © 2013 CA.
All rights reserved.
|
|