ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server診断フレームワークの構成と使用
12c (12.1.2)
E48027-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

7 診断アーカイブの構成

この章では、サーバー・インスタンスおよびそのサーバー・インスタンスで実行されているアプリケーションからWLDFによって収集されたすべてのデータ・イベント、ログ・レコードおよびメトリックをキャプチャし、永続化するWebLogic診断フレームワーク(WLDF)のアーカイブ・コンポーネントについて説明します。アーカイブされた診断データにはオンライン・モードで(つまり実行中のサーバーで)後からアクセスできます。また、オフライン・モードでも、WebLogic Scripting Tool (WLST)を使用して、アーカイブされたデータにアクセスできます。

この章で説明するように、ファイル・ストアまたはJava Database Connectivity (JDBC)データ・ソースに診断データをアーカイブするようにWLDFを構成できます。

この章には次の項が含まれます:

また、「アーカイブからのデータのリタイア」で説明しているように、アーカイブから古いデータを削除する時期や条件を指定することもできます。

アーカイブの構成

診断アーカイブをサーバーごとに構成します。構成はドメインのconfig.xmlファイルに保存されます(サーバーの<server-diagnostic-config>要素内)。ファイル・ベースのストアの構成例を例7-1、JDBCベースのストアの構成例を例7-5に示します。


注意:

診断データがアーカイブに書き込まれている際にシステム・クロックをリセットすると、予期しない結果が生じることがあります。詳細は、「システム・クロックのリセットによるデータのアーカイブおよび取得への影響」を参照してください。


ファイル・ベースのストアの構成

ファイル・ベースのストアの場合、WLDFではアーカイブされた情報を格納するためのファイルが作成されます。WLDFのファイル・ベースのアーカイブで指定可能な構成オプションは、このテキスト・ファイルを作成および保持するディレクトリのみです。デフォルト・ディレクトリはDOMAIN_HOME/servers/SERVER_NAME/data/store/diagnosticsです。

ファイルベースのストアに保存する場合、WLDFはWebLogic Server永続ストアを使用します。詳細は、Oracle WebLogic Serverサーバー環境の管理のWebLogic永続ストアの使用方法に関する項を参照してください。

例7-1に、ファイルベースのストアの構成の例を示します。

例7-1 ファイル・ベースの診断アーカイブの構成のサンプル(config.xml内)

<domain>
  <!-- Other domain configuration elements -->
  <server>
    <name>myserver</name>
    <server-diagnostic-config>
      <diagnostic-store-dir>data/store/diagnostics</diagnostic-store-dir>
      <diagnostic-data-archive-type>FileStoreArchive
      </diagnostic-data-archive-type>
    </server-diagnostic-config>
  </server>
  <!-- Other server configurations in this domain -->
</domain>

JDBCベースのストアの構成

JDBCストアを使用するには、データベースに適切な表があり、そのデータベースに接続するようにJDBCが構成されている必要があります。管理コンソールを使用してJDBCを構成する方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプデータベース接続の構成に関する項を参照してください。JDBC構成の詳細は、Oracle WebLogic Server JDBCデータ・ソースの管理を参照してください。

データベースでのWLDF表の作成

WLDFで使用するデータベース表がない場合は、JDBCベースのストアにデータを保存する表を作成する必要があります。2つの表が必要です。

  • wls_events表には、WLDFインストゥルメンテーション・イベントから生成されるデータが格納されます。

  • wls_hvst表には、WLDFハーベスタ・コンポーネントから生成されるデータが格納されます。

表の作成に使用するSQLのデータ定義言語(Data Definition Language: DDL)は、データベースでサポートされているSQLの種類によって、データベースごとに異なる可能性があります。例7-2では、Apache DerbyデータベースにWLDF表を作成する場合に使用可能なDDLを示します。

例7-2 Apache DerbyにWLDF表を作成するためのDDL

-- WLDF Instrumentation and Harvester archive DDLs using Derby
 
AUTOCOMMIT OFF;
 
-- DDL for creating wls_events table for instrumentation events
 
DROP TABLE wls_events;
 
CREATE TABLE wls_events (
  RECORDID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
  TIMESTAMP BIGINT default NULL,
  CONTEXTID varchar(128) default NULL,
  TXID varchar(32) default NULL,
  USERID varchar(32) default NULL,
  TYPE varchar(64) default NULL,
  DOMAIN varchar(64) default NULL,
  SERVER varchar(64) default NULL,
  SCOPE varchar(64) default NULL,
  MODULE varchar(64) default NULL,
  MONITOR varchar(64) default NULL,
  FILENAME varchar(64) default NULL,
  LINENUM INTEGER default NULL,
  CLASSNAME varchar(250) default NULL,
  METHODNAME varchar(64) default NULL,
  METHODDSC varchar(4000) default NULL,
  ARGUMENTS clob(100000) default NULL,
  RETVAL varchar(4000) default NULL,
  PAYLOAD blob(100000),
  CTXPAYLOAD VARCHAR(4000),
  DYES BIGINT default NULL,
  THREADNAME varchar(250) default NULL
);
 
-- DDL for creating wls_events table for instrumentation events
 
DROP TABLE wls_hvst;
 
CREATE TABLE wls_hvst (
  RECORDID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
  TIMESTAMP BIGINT default NULL,
  DOMAIN varchar(64) default NULL,
  SERVER varchar(64) default NULL,
  TYPE varchar(64) default NULL,
  NAME varchar(250) default NULL,
  ATTRNAME varchar(64) default NULL,
  ATTRTYPE INTEGER default NULL,
  ATTRVALUE VARCHAR(4000),
  WLDFMODULE VARCHAR(250) default NULL
);
 
COMMIT;

実際に使用しているデータベース用にこれらの表を作成する具体的な手順については、データベースのドキュメントを参照するか、データベース管理者に問い合わせてください。

例7-3に、OracleデータベースでのWLDF表の作成に使用できるDDLを示します。

例7-3 Oracleデータベース用WLDF表のDDLの定義

SET SERVEROUTPUT ON;
 
DECLARE
 vCtr     Number;
 vSQL     VARCHAR2(2000);
 vcurrSchema VARCHAR2(256);
BEGIN
 
  SELECT sys_context( 'userenv', 'current_schema' ) into vcurrSchema from dual;

  SELECT COUNT(*)
  INTO vCtr
  FROM user_tables
  WHERE table_name = 'WLS_EVENTS';
 
  
    vSQL := 'CREATE TABLE "WLS_EVENTS" (
    "RECORDID" NUMBER(20,0) DEFAULT NULL, 
    "TIMESTAMP" NUMBER(20,0) DEFAULT NULL, 
    "CONTEXTID" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "TXID" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "USERID" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "TYPE" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "DOMAIN" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "SERVER" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "SCOPE" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "MODULE" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "MONITOR" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "FILENAME" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "LINENUM" NUMBER(10,0) DEFAULT NULL, 
    "CLASSNAME" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "METHODNAME" VARCHAR2(250 BYTE) DEFAULT NULL, 
    "METHODDSC" VARCHAR2(4000 BYTE) DEFAULT NULL, 
    "ARGUMENTS" CLOB DEFAULT NULL, 
    "RETVAL" VARCHAR2(4000 BYTE) DEFAULT NULL, 
    "PAYLOAD" BLOB DEFAULT NULL, 
    "CTXPAYLOAD" VARCHAR2(4000 BYTE) DEFAULT NULL, 
    "DYES" NUMBER(20,0) DEFAULT NULL, 
    "THREADNAME" VARCHAR2(250 BYTE) DEFAULT NULL
   )';
   EXECUTE IMMEDIATE vSQL;
   vSQL := 'CREATE UNIQUE INDEX WLS_EVENTS_RECORD_IDX ON WLS_EVENTS(RECORDID)';
   EXECUTE IMMEDIATE vSQL;
   vSQL := 'CREATE INDEX WLS_EVENTS_TS_IDX ON WLS_EVENTS(TIMESTAMP)';
   EXECUTE IMMEDIATE vSQL;

SELECT COUNT(*)  
    INTO vCtr  
    FROM user_tables  
    WHERE table_name = 'WLS_HVST';
 
  IF vCtr = 0 THEN
    vSQL := 'CREATE TABLE "WLS_HVST"
    ()
      "RECORDID" NUMBER(20,0) NOT NULL, 
      "TIMESTAMP" NUMBER(20,0) DEFAULT NULL, 
      "DOMAIN" VARCHAR2(250 BYTE) DEFAULT NULL, 
      "SERVER" VARCHAR2(250 BYTE) DEFAULT NULL, 
      "TYPE" VARCHAR2(250 BYTE) DEFAULT NULL, 
      "NAME" VARCHAR2(250 BYTE) DEFAULT NULL, 
      "ATTRNAME" VARCHAR2(250 BYTE) DEFAULT NULL, 
      "ATTRTYPE" NUMBER(10,0) DEFAULT NULL, 
      "ATTRVALUE" VARCHAR2(4000 BYTE) DEFAULT NULL, 
      "WLDFMODULE" VARCHAR2(250 BYTE) DEFAULT NULL
    )';  
   EXECUTE IMMEDIATE vSQL;   
   vSQL := 'CREATE UNIQUE INDEX WLS_HVST_RECORD_IDX ON WLS_HVST(RECORDID)';
   EXECUTE IMMEDIATE vSQL;
   vSQL := 'CREATE INDEX WLS_HVST_TS_IDX ON WLS_HVST(TIMESTAMP)';
   EXECUTE IMMEDIATE vSQL;

実際に使用しているデータベース用にこれらの表を作成する具体的な手順については、データベースのドキュメントを参照するか、データベース管理者に問い合わせてください。

例7-4に、OracleデータベースでのWLDF表の作成に使用できるDDLを示します。

例7-4 MySqlデータベース用WLDF表のDDLの定義

DROP PROCEDURE if exists create_alter_wls_events
/ 

CREATE PROCEDURE create_alter_wls_events() 
language sql
BEGIN
  CREATE TABLE WLS_EVENTS
  (
    RECORDID BIGINT AUTO_INCREMENT PRIMARY KEY,
    TIMESTAMP BIGINT NOT NULL,
    CONTEXTID VARCHAR(250) default NULL,
    TXID VARCHAR(250) default NULL,
    USERID VARCHAR(250) default NULL,
    TYPE VARCHAR(250) default NULL,
    DOMAIN VARCHAR(250) default NULL,
    SERVER VARCHAR(250) default NULL,
    SCOPE VARCHAR(250) default NULL,
    MODULE VARCHAR(250) default NULL,
    MONITOR VARCHAR(250) default NULL,
    FILENAME VARCHAR(250) default NULL,
    LINENUM INT UNSIGNED default NULL,
    CLASSNAME VARCHAR(250) default NULL,
    METHODNAME VARCHAR(250) default NULL,
    METHODDSC VARCHAR(4000) default NULL,
    ARGUMENTS TEXT(100000) default NULL,
    RETVAL VARCHAR(4000) default NULL,
    PAYLOAD BLOB(100000),
    CTXPAYLOAD VARCHAR(4000),
    DYES BIGINT UNSIGNED default NULL,
    THREADNAME VARCHAR(250) default NULL,
    INDEX(TIMESTAMP)
  );

END
/
 
CALL create_alter_wls_events()
/
 
DROP PROCEDURE if exists create_alter_wls_events

DROP PROCEDURE if exists create_alter_wls_hvst
/
 
CREATE PROCEDURE create_alter_wls_hvst() 
language sql
BEGIN
  CREATE TABLE WLS_HVST
  (
    RECORDID BIGINT AUTO_INCREMENT PRIMARY KEY,
    TIMESTAMP BIGINT NOT NULL,
    DOMAIN VARCHAR(250) default NULL,
    SERVER VARCHAR(250) default NULL,
    TYPE VARCHAR(250) default NULL,
    NAME VARCHAR(250) default NULL,
    SCOPE VARCHAR(250) default NULL,
    ATTRNAME VARCHAR(250) default NULL,
    ATTRTYPE INT default NULL,
    ATTRVALUE VARCHAR(4000) default NULL,
    WLDFMODULE VARCHAR(250) default NULL,
    INDEX(TIMESTAMP)
  );

END
/
 
CALL create_alter_wls_hvst()
/
 
DROP PROCEDURE if exists create_alter_wls_hvst
/

実際に使用しているデータベース用にこれらの表を作成する具体的な手順については、データベースのドキュメントを参照するか、データベース管理者に問い合わせてください。

WLDF用のJDBCリソースの構成

データベースに表を作成したら、その表にアクセスするようにJDBCを構成する必要があります(Oracle WebLogic Server JDBCデータ・ソースの管理を参照。)次に、サーバー構成の中で、サーバーのアーカイブに使用するデータ・ストアとしてそのJDBCリソースを指定します。

例7-5に、JDBCベースのストアの構成の例を示します。

例7-5 JDBCベースの診断アーカイブの構成のサンプル(config.xml内)

<domain>
  <!-- Other domain configuration elements -->
  <server>
    <name>myserver</name>
    <server-diagnostic-config>
      <diagnostic-data-archive-type>JDBCArchive
      </diagnostic-data-archive-type>
      <diagnostic-jdbc-resource>JDBCResource</diagnostic-jdbc-resource>
    <server-diagnostic-config>
  </server>
  <!-- Other server configurations in this domain -->
</domain>

JDBCリソースを指定していて、その構成が正しくない場合、または、必要な表がデータベースに存在しない場合、WLDFはデフォルトのファイル・ベースの永続ストアを使用します。

アーカイブからのデータのリタイア

WLDFにはデータ・リタイアメント機能があります。構成を行うことによって、アーカイブから古い診断データを定期的に削除できます。以下の節で説明するように、サーバー・レベルではサイズに基づいたデータ・リタイアメントを、個々のアーカイブ・レベルでは期間に基づいたデータ・リタイアメントを構成できます。

サーバー・レベルでのデータ・リタイアメントの構成

サーバー・インスタンスに対して、以下のデータ・リタイアメント・オプションを設定できます。

  • サーバー・インスタンスのデータ・ストアの望ましい最大サイズ(<preferred-store-size-limit>)と、そのサイズを超過しているかどうかを正時にチェックする間隔(<store-size-check-period>)。

    ストア・サイズが最大サイズを超過していることが検出されると、適切な数のレコードが古いものから削除され、指定されたしきい値を下回るようにサイズが縮小されます。これを「サイズに基づいたデータ・リタイアメント」と呼びます。


    注意:

    サイズに基づいたデータ・リタイアメントは、ファイル・ベースのストアに対してのみ使用できます。上記のオプションは、データベース・ベースのストアでは無視されます。


  • サーバー・インスタンスでのデータ・リタイアメントの有効化または無効化。

    ファイル・ベースの診断ストアの場合は、この設定により、前述のサイズに基づいたデータ・リタイアメントのオプションが有効化または無効化されます。ファイル・ベースのストアとデータベース・ベースのストアが混在している場合は、この設定により、ストア内の個々のアーカイブに対する期間に基づいたデータ・リタイアメント・ポリシーも有効化または無効化されます。「診断アーカイブに対する期間に基づいたデータ・リタイアメント・ポリシーの構成」を参照してください。

診断アーカイブに対する期間に基づいたデータ・リタイアメント・ポリシーの構成

サーバー・インスタンスのデータ・ストアには、以下のタイプの診断データ・アーカイブを格納できます(それらのアーカイブのレコードはデータ・リタイアメント機能を使用して廃棄できます)。

  • 収集された メトリック・データ(論理名: HarvestedDataArchive)

  • インストゥルメンテーション・イベント・データ(論理名: EventsDataArchive)

  • カスタム・データ(ユーザー定義の名前)


    注意:

    WebLogic Serverログ・ファイルは、サーバー・レベルとドメイン・レベルの両方で保持されます。データは、ログ・ローテーション機能に基づく現在のログからリタイアされます。詳細は、『Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタ処理』のWebLogicロギング・サービスの構成に関する項を参照してください。


期間に基づいたポリシーは、個々のアーカイブに適用されます。サーバー・インスタンスのデータ・ストアでは、期間に基づいたポリシーを、HarvestedDataArchive、EventsDataArchive、および各カスタム・アーカイブに対して1つずつ指定できます。

指定された期間が経過すると、アーカイブのレコードは削除されます。

サンプル構成

データ・リタイアメントの構成設定は、サーバーのドメインのconfig.xml構成ファイルに保持されます。例7-6を参照してください。

例7-6 config.xmlのデータ・リタイアメントの構成設定

<domain>
<!-- other domain configuration settings -->
   <server>
   <name>MedRecServer</name>
   <!-- other server configuration settings -->
   <server-diagnostic-config>
      <diagnostic-store-dir>data/store/diagnostics</diagnostic-store-dir>
      <diagnostic-data-archive-type>FileStoreArchive
         </diagnostic-data-archive-type>
      <data-retirement-enabled>true</data-retirement-enabled>
      <preferred-store-size-limit>120</preferred-store-size-limit>
      <store-size-check-period>1</store-size-check-period>
      <wldf-data-retirement-by-age>
         <name>HarvestedDataRetirementPolicy</name>
         <enabled>true</enabled>
         <archive-name>HarvestedDataArchive</archive-name>
         <retirement-time>1</retirement-time>
         <retirement-period>24</retirement-period>
         <retirement-age>45</retirement-age>
      </wldf-data-retirement-by-age>
      <wldf-data-retirement-by-age>
         <name>EventsDataRetirementPolicy</name>
         <enabled>true</enabled>
         <archive-name>EventsDataArchive</archive-name>
         <retirement-time>10</retirement-time>
         <retirement-period>24</retirement-period>
         <retirement-age>72</retirement-age>
      </wldf-data-retirement-by-age>
   </server-diagnostic-config>
   </server>
</domain>