このスクリプトでは、e-docs マニュアルの検索に必要な Google 検索の URL を出力します。
このスクリプトでは、e-docs マニュアルに必要なバナーを出力します。
このスクリプトでは、e-docs マニュアルの検索に必要な Google 検索のパラメータを出力します。
このスクリプトでは、e-docs マニュアルに必要な製品のブレッドクラムを出力します。
>
管理ガイド > 監査情報およびログ情報の操作
管理ガイド
監査情報およびログ情報の操作
この章では、AquaLogic Data Services Platform が備える監査フレームワーク、パフォーマンス プロファイリング、およびロギング機能について説明します。内容は以下のとおりです。
監査
監査フレームワークは、ALDSP データスペースにおける通常の XQuery 演算によって補助的な実行時データを収集するのに使用されます。この情報は、セキュリティ監査、パフォーマンス プロファイリングなどの目的に使用できます。
監査データ構造
データ構造は、順序指定のない監査プロパティの集合を含む、監査レコードのシーケンスで構成されています。各監査レコードには、通常は階層的な名前を使用して識別される、特定タイプのプロパティが含まれます。各監査レコードは、ALDSP によって実行される処理に対応しています。たとえば、リレーショナル データ ソースへのアクセスにより、監査プロパティ sql、datasource、returnedRows、evaluationTime、parameters、message、および exception を含む「evaluation/wrappers/relational」タイプのレコードが生成される場合があります。
任意の個別プロパティを、収集対象としてコンフィグレーションできます。各プロパティには、どのプロパティを収集するかに関する全体的なしきい値のコンフィグレーションに使用できる、独立した固有の重大度が設定されます。例外発生時など、ある特定の場合には、一部のプロパティが、収集対象としてコンフィグレーションされていなくてもレコードに追加されることがあります。通常、この情報は、失敗したデータ ソースまたは更新処理のための識別子となります。
その一方で、収集対象としてコンフィグレーションされたプロパティを収集しない場合もあります。その理由としては、以下のいずれかが考えられます。
内部実装論理が原因で、データが使用できない。
プロパティが、外部解析のために内部条件を記録する必要性に基づく監査によって収集されている。
例外が発生した場合。この結果、代替的な実行経路が取られ、収集される情報に影響が生じます。
収集されるデータ構造の要素は、以下の処理のために個別にコンフィグレーションできます。
WebLogic Server 監査フレームワークに送信して監査プロパイダで処理。
アプリケーション サーバまたはシステム ロギング ストリームに書き込み。
クライアント アプリケーションに転送。
注意 :
監査は、エンジンが呼び出されて監査オプションが有効化されていると生じます。タイムスタンプなどの収集されたデータにより、特定のクエリ演算と監査情報を照合できます。
ALDSP Administration Console の [システム管理] カテゴリを使用して、グローバル監査の重大度の設定や、モニタ対象となる特定のプロパティの監査設定のオーバーライドなど、監査のコンフィグレーションを行います。
グローバルな監査プロパティの設定
本質的に監査プロセスのすべての局面に適用される、いくつかのグローバル監査オプションもあります。このプロパティを設定するには、次の手順に従います。
ロックを取得します。
このオプションをコンフィグレーションするには、図 9-1 に示すように、[システム管理] カテゴリを選択して [監査] タブを選択します。
デフォルトでは、監査レポート生成ユーティリティは無効化されています。監査レポートを生成する前には、監査を有効にする必要があります。
注意 :
監査が有効化されていると、監査レベルおよび監査されているプロパティの数に応じて、パフォーマンスに影響が及ぶことがあります。
表 9-1 で、使用可能なグローバル監査オプションについて説明します。ALDSP Console でそれぞれのチェック ボックスをクリックし、必要な監査オプションを実装します。
表 9-1 ALDSP グローバル監査オプション
注意 :
監査が有効化されていると、監査レベルおよび追跡されている項目の数に応じて、パフォーマンスにある程度の影響が及ぶことがある。
クエリ評価中に、監査をアクティブにするかどうかを決定する。
データスペースのデプロイメントおよびコンフィグレーション中に監査データを収集する。
更新操作中に、監査をアクティブにするかどうかを決定する。
監査プロセスによって取り込まれた情報のレベルを決定する。詳細については「
監査の重大度 」を参照。
イベントを同期的に処理するか、非同期的に処理するかを決定する。
監査情報を、アプリケーション サーバ ログ ファイルに含めるかどうかを決定する。
注意 :
このオプション (ロギング) を有効化する場合は、確実に [全般] タブの [ロギング] の値を、[Info] または [Debug] に設定する。それ以外の値にすると、ログ ファイルはまったく情報を受け付けなくなる。
各新レコードの場合、その監査レコードが部分的にディスパッチされるかまたは完全にディスパッチされるかを決定する。
監査の重大度
重大度ドロップ ダウン リストの [監査] タブ (図 9-1 ) を使用して重大度を設定します。重大度は、WebLogic Server セキュリティで提供されているものと類似しています。WebLogic Server の詳細については、「メッセージの重大度 」を参照してください。
表 9-2 ALDSP 監査の重大度
これは多くの場合、「詳細な」設定として言及される。監査レポートに追加できるすべての監査プロパティが収集される。
Information 以上の条件のプロパティが、監査レポート用に収集される。
Warning 以上の条件のプロパティが、監査レポート用に収集される。
Error 以上の条件のプロパティが、監査レポート用に収集される。
個別の監査プロパティの設定
このセクションは、監査できる個々の監査プロパティおよびどのプロパティをどのレベルまで監査するかについて説明します。この監査プロパティをコンフィグレーションするには、次の手順に従います。
ロックを取得します。
[システム管理] カテゴリを選択します。
図 9-2 に示すように、[監査プロパティ] タブをクリックします。
監査プロパティをコンフィグレーションした後、[保存|変更のアクティブ化] をクリックして監査設定を実装します。
注意 :
[デフォルト設定] をクリックして、監査プロパティをデフォルト値に再配置します。
監査プロパティがさまざまなレベルでコンフィグレーションできます。[監査あり] ドロップ ダウン リストを使用してレベルを選択できます。表 9-3 に、個々のプロパティのそれぞれに対して設定できる監査レベルを示します。この表に示すレベルはどれも、すべてのプロパティに適用できるわけではありません。通常、各プロパティには、選択できるレベルが 3 つしかありません。
注意 :
プロパティ固有の監査情報はクライアントに返される場合、[クライアントが使用できる] チェックボックスを選択します。
表 9-3 個々の監査プロパティの設定
この設定では、プロパティの監査情報は常に収集される。
この設定では、プロパティの監査情報は常に無視される。
この設定によって、プロパティがデフォルト レベルでコンフィグレーションされます。
注意 :
このオプションは、[すべてのプロパティを選択] 監査プロパティの場合のみ利用可能です。
この設定では、グローバルしきい値レベルが [
Information ] 以下の場合に、監査情報が収集される。
この設定では、グローバルしきい値レベルが [
Warning ] 以下の場合に、監査情報が収集される。
この設定では、グローバルしきい値レベルが [
Failure ] 以下の場合に、監査情報が収集される。
この設定では、グローバルしきい値レベルが [
Debug ] の場合に、監査情報が収集される。
注意 :
個々の監査プロパティ設定を指定および適用後は、個々のプロパティに対して加えるすべての変更が、そのプロパティのみに対する初期設定をオーバーライドする。
ALDSP Administration Console では、[すべてのプロパティを選択] ノードを使用して監査するすべての監査プロパティを選択できます。これらのプロパティが以下のレベルで設定できます。
[Always]
[At Default Level]
[Never]
個々のプロパティはすべて、対応する監査データを生成する処理に応じて、以下の全体的なタイプに分類されます。
admin 監査プロパティ
このセクションの監査情報は、コンフィグレーション、アプリケーションのデプロイメントなど、管理タスクを実行中に交換される情報に関するものです。監査中に収集されるのは、ALDSP Administration Console でアプリケーションに加えられた変更のみです。
表 9-4 admin プロパティ
デプロイされたアクセス制御リソースの通知を記録する。次に例を示す。
notification: jmx.attribute.change property: MAXNUMBEROFQUERYPLANCACHED value: 101
ALDSP Console で変更されたプロパティのすべてのインスタンスを記録する。次に例を示す。
notification: jmx.attribute.change
注意 :
この情報はデフォルトでは監査ログに表示されます。このプロパティに対する監査レベルは変更できません。
データスペースに対して行われた作成、変更および削除操作を記録する。
最後のコンフィグレーション更新以降の変更を記録する。
common 監査プロパティ
common 監査情報は、全般的なトランザクション関連情報を提供します。イベントの種類、アプリケーション名、ユーザ ID、ユーザ アクセス権、日付、時間など、イベントに関する全般的な情報を含みます。
表 9-5 common プロパティ
イベントまたは処理の種類を記録する。クエリ、更新などが考えられる。次に例を示す。
例外メッセージが発生した場合に、それを記録する。次に例を示す。
exception: ld:DataServices/ApparelDB/CUSTOMER_ORDER_LINE_ITEM.ds, line 77, column 7: {err}FORG0005: expected exactly one item, got 0 items
デプロイされたアプリケーションの名前を記録する。次に例を示す。
ユーザが所属するグループを記録する。次に例を示す。
principals: weblogic Administrators IntegrationAdministrators PortalSystemAdministrators
アプリケーション サーバのユニークな ID を記録する。次に例を示す。
イベントまたは操作についてのユニークなトランザクション ID を記録する。
データが格納されるテンポラリ ファイルの名前を記録する。
削除する前に、テンポラリ ファイルのサイズ (バイト単位で) を記録する。
データがあふれる元となった演算子の情報を記録する。
アプリケーションに対するセキュリティ アクセス設定を記録する。次に例を示す。
リソース識別子に対する要求を記録する。次に例を示す。
resource: <ld type="function"><app>RTLApp</app><ds>ld:DataServices/CustomerDB/ADDRESS.ds</ds><res>{ld:DataServices/CustomerDB/ADDRESS}ADDRESS:0</res></ld>
データ サービス、アプリケーション、送信など、使用されるリソースの種類を記録する。次に例を示す。
返されるシリアライズされたデータ ブロックのサイズを、バイト単位で記録する。
結果の次のブロックを計算するために必要な継続期間または時間をミリ秒単位で記録する。
次のデータ ブロックに対する呼び出しの時間を記録する。
JDBC ドライバのサーバ サイドの next () メソッドに対する呼び出しの日付と時間を記録する。
結果の次のブロックを計算するために必要な継続期間または時間をミリ秒単位で記録する。
返されるシリアライズされたデータ ブロックのサイズを、バイト単位で記録する。
監査イベントを完了させるのにかかる時間を、ミリ秒単位で記録する。監査の開始から完了までの時間差を計算する。次に例を示す。
監査イベントが開始された時間を記録する。次に例を示す。
timestamp: Tue Feb 14 09:21:02 IST 2006
query 監査プロパティ
このセクションの監査情報は、クエリ評価中に収集されるすべての情報に関するものです。この情報には、クエリ自体、クエリの結果、実行時間、および問い合わせを受けるデータ ソースの詳細が含まれます。
注意 :
ストリーミング API を使用している場合、または RequestConfig.OUTPUT_FILENAME
機能を使用している場合、クエリ結果は非常に大きくなると想定されるため、監査されません。つまり、監査プロバイダにディスパッチされる AuditEvent と、クライアントに返される DataServiceAudit には、管理プロパティのクエリ/サービス/結果に関する値が含まれません。
表 9-6 query プロパティ
クエリに渡された外部パラメータまたは変数を記録する。
ブール値で、
TRUE
はデータが現在のデータ ソースからのものであることを示し、
FALSE
はキャッシュからのものであることを示す。
クエリ キャッシュが更新されるまでの残り時間を秒単位で示す。
データがクエリ キャッシュから取得されたものであるかどうかを示す。
注意 :
queryplan 監査プロパティは、関数がテスト ビューから実行された場合には、収集されない。これは、関数キャッシュが、テスト ビューで実行された関数に対しては利用されないからである。
True でありクエリ プランがフラッシュされた場合設定される。
クエリ プラン キャッシュが見つかったかどうかを示す。
クエリ プラン キャッシュが挿入されたかどうかを示す。
XQUERY_PLAN_CACHE、SQL_PLAN_CACHE、または STORED_PROC_CACHE.などのクエリ プランの種類を示します。
フェイルオーバ発生時に、その原因となった例外を記録する。
fn:bea:timeout
、
fn:bea:fail-over
のいずれかであり得る関数名を記録する。例えば、次のように指定します。
function: {http://www.bea.com/xquery/xquery-fncts}timeout-with-lbl
ユーザ定義のラベルがある場合は、それを記録する。次に例を示す。
関数呼び出しのソース カラムを記録する。次に例を示す。
関数呼び出しのソース ファイルを記録する。次に例を示す。
超過されたタイムアウトが適用される場合は、それを記録する。次に例を示す。
注意 :
function 監査プロパティは、監査対象としてデータ サービスの個々の関数が選択されている場合にのみ収集される。詳細については、「関数レベルの監査 」を参照。
name: {ld:DataServices/CustomerDB/CUSTOMER}getCustomer
監査される関数を通じて渡されるパラメータを記録する。次に例を示す。
監査される関数を実行した後の結果を記録する。次に例を示す。
クエリのコンパイル時間を、ミリ秒単位で記録する。次に例を示す。
クエリの評価時間を、ミリ秒単位で記録する。次に例を示す。
dataservice: ld:DataServices/RTLServices/ApplOrder.ds
データ サービスの関数名を記録する。次に例を示す。
クエリを通じて渡されるパラメータを記録する。次に例を示す。
データ サービスに対して実行されるクエリのテキスト全文を記録する。次に例を示す。
query: import schema namespace t1 = "urn:retailerType" at "ld:DataServices/RTLServices/schemas/ApplOrder.xsd"; declare namespace ns0="ld:DataServices/RTLServices/ApplOrder";
ORDER_10_0 CUSTOMER0 2001-10-01 GROUND
SQL プロシージャに関連付けられるパラメータを記録する。
呼び出された関数が、File データ ソースを通じて作成されたデータ サービスに属するものである場合に、例外が発生したらそれを記録する。次に例を示す。
exception: com.bea.ld.wrappers.df.exceptions.DFException: {bea-err}DF0004: [ld:DataServices/Demo/Valuation.csv]: Expected end of line at (row:2, column:3).
name: ld:DataServices/Demo/Valuation.csv
クエリにかかる時間を、ミリ秒単位で記録する。次に例を示す。
呼び出された関数が、Java クラスを通じて作成されたデータ サービスに属するものである場合に、例外が発生したらそれを記録する。次に例を示す。
exception: {ld:DataServices/Demo/Java/Physical/PRODUCTS}getFirstProduct:0, line 4, column 5: {bea-err}JFW0401: Class or Method not found exception : {ld:DataServices/Demo/Java/Physical/PRODUCTS}getFirstProduct
サービスの名前を記録する。これは、例外プロパティが追加された場合には必ず記録される。次に例を示す。
name: public static int Demo.Java.JavaSource4West.echoInt(int)
サービスに渡される外部パラメータを記録する。次に例を示す。
クエリの実行にかかる時間を、ミリ秒単位で記録する。次に例を示す。
呼び出された関数が、ストアド プロシージャを通じて作成されたデータ サービスに属するものである場合に、例外が発生したらそれを記録する。次に例を示す。
exception: weblogic.xml.query.exceptions.XQueryDynException: {err}XP0021: "-ss": can not cast to {http://www.w3.org/2001/XMLSchema}decimal}
プロシージャ識別子を記録する。これは、例外プロパティが追加された場合には必ず記録される。次に例を示す。
name: WIRELESS.SIDEEFFECT_REG_PACKAGE.READ2
データ サービス メソッドに渡される外部パラメータを記録する。次に例を示す。
parameters: s 2.2 22.0 ss
プロシージャの実行後に返される行数を記録する。次に例を示す。
プロシージャの実行にかかる時間を、ミリ秒単位で記録する。次に例を示す。
リレーショナル データベースのクエリ例外が発生した場合は、それを記録する。次に例を示す。
exception: com.bea.ld.wrappers.rdb.exceptions.RDBWrapperException:
...
データ サービス メソッドに渡される外部パラメータを記録する。次に例を示す。
parameters: ORDER_10_0 ORDER_10_1
リレーショナル データベースから返される行数を記録する。次に例を示す。
データベース ソース名を記録する。これは、例外プロパティが追加された場合には必ず記録される。次に例を示す。
クエリに使用される SQL 文を記録する。次に例を示す。
sql: SELECT '1' AS c15, t2."LINE_ID" AS c16, t2. FROM "RTLAPPLOMS"."CUSTOMER_ORDER_LINE_ITEM" t2 WHERE ((? = t2."ORDER_ID") OR (? = t2."ORDER_ID")
置換される SQL が使用されている場合、名前を記録する。
クエリの実行に消費した時間を、ミリ秒単位で記録する。次に例を示す。
呼び出された関数が、Web サービスを通じて作成されたデータ サービスに属するものである場合に、例外が発生したらそれを記録する。次に例を示す。
exception: {bea-err}WSW0101: Unable to create Call : {ld:DataServices/ElectronicsWS/getCustomerOrderResponse}getCustomerOrder
実行されるデータ サービス メソッドを記録する。次に例を示す。
operation: getCustomerOrder
データ サービス メソッドに渡されるパラメータを記録する。次に例を示す。
parameters: <ns0:getCustomerOrder xmlns:ns0="http://www.openuri.org/">
クエリ実行後に返される結果を記録する。次に例を示す。
result: <ns:getCustomerOrderResponse xmlns:ns="http://www.openuri.org/"> <CustOrders xmlns="http://temp.openuri.org/SampleApp/CustOrder.xsd"> <ORDER> <ORDER_ID>ORDER_1_0</ORDER_ID> <CUSTOMER_ID>CUSTOMER1</CUSTOMER_ID>
クエリの実行に消費した時間を、ミリ秒単位で記録する。次に例を示す。
wsdl: http://localhost:7001/ElWS/cntrls/ElDBTest.jws?WSDL
update 監査プロパティ
このセクションの監査情報は、更新関数の実行に関するすべての情報についてのものです。ソースの更新にかかる時間、更新がいつ開始されたのか、ユニークなトランザクション ID などに関する情報を含みます。
表 9-7 update プロパティ
更新例外の tostring() の値を記録する。
データスペース監査の更新エラーの例外オブジェクトを記録する。
この更新によって実行されたプロシージャのステータス。
監査されるプロシージャに渡されるパラメータを記録する。
リレーショナル データベースの更新中に渡されたパラメータを記録する。
正常に完了した際に、リレーショナル データベース内の更新された行数を記録する。
データ ソース名を記録する。これは、例外プロパティが追加された場合には必ず記録される。
リレーショナル データベースの更新中に使用される SQL 文を記録する。
リレーショナル データベースの更新にかかった時間をミリ秒単位で記録する。
呼び出された関数に関連付けられる引数の数を記録する。
データ サービスの完全修飾プロシージャ名を記録する。
更新のために送信された最上位 SDO の数を記録する。
更新にかかった実行時間の合計をミリ秒単位で記録する。
関数レベルの監査
デフォルトでは、すべての直接呼び出された関数に対する監査は、[監査] タブを使用してデータスペースの /query/service レコードから有効化できます。しかし、監査を特定の関数のみに限定するために、/query/service レコードのすべてのプロパティを NEVER に設定し、その後、個々の関数に対する監査を有効化します。そのためには、次の手順に従います。
ロックを取得して、 [システム管理] カテゴリを選択します。
データ サービス レベルに移動します。
図 9-3 に示すように、[監査] タブを選択します。
ある関数に対する監査が有効になっていると、その関数に対するすべての外部呼出しが監査されます。[間接呼び出しの監査を有効化 ] チェック ボックスが選択されていると、他のデータ サービスから発生した呼び出しもまた、すべて監査されます。
注意 :
間接呼び出しの監査を有効化すると、その関数に対するクエリの最適化が無効になり、パフォーマンスが低下することがあります。
監査情報の取得
収集された監査情報は、次の方法で記録できます。
監査プロパティの値は、String、Integer、java.util.Date、Boolean、または String [ ] 型の Java オブジェクトとして表されます。
WebLogic Server セキュリティ フレームワーク
各監査イベントは、weblogic.security.spi.AuditEvent
インタフェースのインスタンスとして、WebLogic Server セキュリティ フレームワークに送信されます。表 9-8 で、各イベントについて説明します。
表 9-8 WebLogic Server の監査イベント
イベントの種類を返す。この場合は、
DSPaudit
。
コンフィグレーションに応じて、各イベントは WebLogic Server 監査 API に非同期に送信し、ALDSP アプリケーションによってバッファできます。
weblogic.security.spi.AuditEvent インタフェースは、ld.server.audit.DSPAuditEvent インタフェースにおいて実装され、この ld.server.audit.DSPAuditEvent インタフェースがリスト形式ですべての情報を収集します。このリストでは各エントリが com.bea.dsp.DSPAuditEvent のインスタンスです。
DSPAuditEvent は、表 9-9 で説明するインタフェースを追加します。
表 9-9 AquaLogic Data Services Platform AuditEvent API
com.bea.ld.DSPAuditRecord
のリストとしてすべてのレコードを返す。
getRecords(String recordType)
com.bea.ld.DSPAuditRecord
のリストとして特定の種類のレコードを返す。
getProperty(String propertyId)
複数のレコード間にわたる、特定プロパティのすべての値を返す。
アプリケーション サーバ ユーザのユーザ名を返す。
イベントの種類 (
EVALUATION_EVENT
、
CONFIGURATION_EVENT
、または
UPDATE_EVENT
) を返す。
イベントのバージョンを返す。たとえば、ALDSP 2.1 の場合は
2.1
。
com.bea.ld.DSPAuditRecord には、表 9-10 に示すインタフェースがあります。
表 9-10 DSP AuditRecord API
レコードの種類を返す。たとえば、common/time/duration。
レコード内のすべてのプロパティを返す。String 識別子から Object 値にマップする。
この API の使い方を示す、サンプル セキュリティ サービス監査プロバイダが用意されています。
ALDSP クライアント API
com.bea.ld.DataServiceAudit クライアント サイド インスタンスを、com.bea.dsp.RequestConfig クラスの一部として使用し、クライアント API から監査情報を収集できます。このクラスは、監査情報を収集し、処理が正常に行われた場合に、それを返します。何らかの理由で処理が失敗した場合には、com.bea.ld.QueryException クラスを使用して、送出された例外の一部として情報を収集できます。
注意 :
ストリーミング API を使用する場合、監査は返された XMLInputStream の close( ) メソッドが呼び出されるまで完了しません。つまり、close( ) メソッドが呼び出されるまでは、サーバによって AuditEvent が監査プロバイダにディスパッチされず、RequestConfig.getDataServiceAudit() メソッドは null を返します。
以下に、監査情報を取得するために実行する必要がある 4 つの手順を、コード例と共に示します。
RequestConfig クラスを初期化する
次のコード例に示すように、RequestConfig クラスを初期化する必要があります。
RequestConfig requestCfg = new RequestConfig(); requestCfg.enableFeature(RequestConfig.RETURN_DATA_SERVICE_AUDIT); requestCfg.enableFeature(RequestConfig.RETURN_AUDIT_PROPERTIES); requestCfg.setStringArrayAttribute(RequestConfig.RETURN_AUDIT_PROPERTIES, new String[] {"query/service/dataservice"});
RequestConfig オブジェクトを渡す
呼び出される処理に RequestConfig オブジェクトを渡す必要があります。次のコード例では、呼び出される処理として getCustomer を使用しています。
CUSTOMERDocument [] custDocRoot1 = (CUSTOMERDocument [])custDS.invoke("getCustomer", params, requestCfg);
監査データをフィルタ処理する
データをフィルタ処理して、安全でないアクセスがそのデータに対して行われないようにします。AquaLogic Data Services Platform Administration Console でのコンフィグレーションにおいて、クライアントに戻ることを許可されている監査プロパティのみが、クライアント アプリケーションに返されます。
データ サービスの監査を取得する
次のコード例に示すように、RequestConfig オブジェクトからデータ サービスの監査を取得する必要があります。
監査プロパティを取得する
RequestConfig.RETURN_AUDIT_PROPERTIES は、監査プロパティの文字列識別子の配列です。この要求属性を設定すると、指定されたプロパティは、Administration Console からは収集対象としてコンフィグレーションされていなくても、この特定の評価に関しては、収集されます。これらは、許可されている場合のみ返されます。RETURN_DATA_SERVICE_AUDIT 要求属性が有効化されていなければ、これらのプロパティのみが返されます。
RequestConfig.RETURN_DATA_SERVICE_AUDIT は、返されるすべての収集対象である監査情報 (クライアント アプリケーションに戻ることが許可されているもの) をコンフィグレーションします。
ALDSP のパフォーマンス プロファイリング
パフォーマンス プロファイリングにより、リレーショナル データベースに選択監査情報を格納できます。ALDSP 監査プロバイダでサポートされるリレーショナル データベースは、Oracle、DB2、PointBase、Sybase、および MS SQL です。
監査イベントに関する情報は、テーブル内のレコードとして格納されます。テーブルは、サーバ上で実行中の ALDSP データスペース、またはクラスタ内の共有サーバ上で実行中のデータスペースのための監査イベントの記録に使用できます。
WebLogic Administration Console を使用して、パフォーマンス プロファイリング用に ALDSP 監査プロバイダをデプロイし、ALDSP Profiler MBean を使用してそれをコンフィグレーションできます。デプロイメント時に設定する必要のあるコンフィグレーション パラメータについては、表 9-11 で説明します。
表 9-11 パフォーマンス プロファイリング用のコンフィグレーション パラメータ
クエリ実行情報をログに記録する、JDBC データ ソース内のテーブルの名前。
ソース アクセス情報をログに記録する、JDBC データ ソース内のテーブルの名前。
集約された情報 (概要) をログに記録する、JDBC データ ソース内のテーブルの名前。
内部イベント バッファのサイズ。プロファイラがイベントの処理を開始する前に、バッファに格納されるイベント数を決定する。
[Collect Execution Aggregate]
個々のクエリ実行の集約 (関数による) をメモリに格納する。最終的には、それをデータベースに書き込む。
集約がデータベースに書き込まれる前に、プロファイラによって処理されるイベント数。デフォルト値は 10。
[Collect Execution Detail]
クエリの実行ごとに、クエリ内のソース アクセスの集約を含む行を、データベースに書き込む。アプリケーション開発環境において有用である。
クエリ内のすべてのソース アクセスについて、データベースに行を書き込む。このパラメータを有効にするには、[Collect Execution Detail] をコンフィグレーションする必要がある。
パフォーマンス プロファイラを作成する
この節では、パフォーマンス プロファイラの作成に必要な手順を示します。
以下の監査プロパティを格納するテーブルを作成します。
JAR ファイルへのポインタを含むように CLASSPATH を変更します。
WebLogic Server を起動します。
監査ページで、必要に応じてデータベース テーブルをコンフィグレーションします。
WebLogic Administration Console の [セキュリティ プロバイダ] ページで、ALDSP 監査プロバイダをコンフィグレーションします。詳細については、「表 9-11 パフォーマンス プロファイリング用のコンフィグレーション パラメータ 」を参照してください。
WebLogic Server を再起動します。
データ サービス アプリケーションを実行し、適用可能なデータベース ビジュアライザを使用して結果を表示します。
サンプル パフォーマンス プロファイラを使用する
ALDSP のインストール先のルート ディレクトリに、ALDSP 監査プロバイダのサンプル ファイル profiler.zip
があります。この zip ファイルには、次のファイルが格納されています。
README.txt
- サンプル監査プロバイダの使用手順が記載されています。
dsp_profile.sql
ファイル - テーブル定義が含まれています。
build.xml
- ビルドのコンフィグレーションを定義します。
DSPProfilerMBean.xml
- ALDSP プロファイリング監査用の MBean 定義ファイルです。
DSPProfilerImpl.java
- weblogic.security.spi.AuditProvider インタフェースおよび weblogic.security.spi.AuditChannel インタフェースを実装するサンプル Java コードです。
サーバ ログのモニタ
サーバ ログ ファイルには、クエリをコンパイルおよび実行するのにかかった時間に関する情報が含まれます。ログは、下記の場所にあります。
WebLogic Server ログの詳細については、「WebLogic Server ログの表示 」を参照します。
[全般] アプリケーション コンフィグレーション ページを使用して、アプリケーションごとに、ログのレベルをコンフィグレーションできます。詳細については、「データスペースのキャッシュおよびログをコンフィグレーションする 」を参照してください。ログ レベルには、次のものがあります。
[Error]。 実行時例外。
[Notice]。 予想される、実行時操作に影響しないエラーおよびエラー レベル イベント。
[Information]。 開始/停止イベント、失敗したアクセス試行、クエリ実行時間などと、Error および Notice レベルのイベント。
開発モードのすべてのサーバに対して、デフォルトでデバッグ ロギングが発生します。クライアント アプリケーションは、WebLogic Logger 機能を通じて、サーバ ログに寄与することができます。詳細については、「WebLogic Server ロギング サービスの使い方 」を参照してください。
クエリ文字列は、ALDSP Console でログ レベルが Information に設定されており、WebLogic Administration Console がデバッグ メッセージを stdout にロギングするように設定されている場合に、サーバ ログ内に Debug レベルのログ メッセージとして反映されます。
WebLogic ドメインのモニタ
WebLogic Server Administration Console を使用すると、WebLogic (サーバ、JDBC 接続プール、JCA、HTTP、JTA サブシステム、JNDI、エンタープライズ Java Beans (EJB) などのリソース) がデプロイされているドメインの状態とパフォーマンスをモニタできます。
ドメイン ログは、次のディレクトリに格納されています。
詳細については、『WebLogic Server のコンフィグレーションと管理』の「WebLogic Server ドメインのモニタ 」を参照してください。
他のモニタ ツールの使用
OptimizeIt や JProbe プロファイラなどのパフォーマンス モニタ ツールを使用すると、高い CPU 使用率または共有リソース競合率を引き起こす ALDSP アプリケーション内の「ホット スポット」を発見できます。
詳細については、「WebLogic Server アプリケーションのチューニング 」を参照してください。パフォーマンス モニタ リソースのリストについては、『WebLogic Server パフォーマンス チューニング ガイド』の「関連情報 : パフォーマンス ツールと情報 」を参照してください。