ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド

5.6.5 ユーザログテーブルの定義

ユーザログテーブルの定義の詳細は、以下のマニュアルを参照してください。

ユーザログテーブルの構造

高信頼性ログを出力するユーザログテーブルは以下の構造です。

項目名

長さ

説明

データ設定

LOG_TYPE

CHAR

1

APIから出力するログはつねに“U”

Symfoware/RDBが自動設定

SEQUENCE_NO

CHAR

30

格納順番号を格納

Symfoware/RDBが自動設定

TRANSACTION_ID

CHAR

20

トランザクション識別子を格納

Symfoware/RDBが自動設定

SYSTEM_NAME

CHAR

8

定義されたRDBシステム名を格納

Symfoware/RDBが自動設定

CONTEXT_ID

VARCHAR

1024

Apcoordinatorが生成するコンテキストID

Apcoordinatorによって設定

分割キー(注)

任意

任意

ログの格納先をDSI単位に振り分けたい場合に、出力するDSI名を格納

ユーザアプリケーションによって設定

任意列(注)

任意

任意

データベースを使用してログを分析するための任意の情報を格納

ユーザアプリケーションによって設定

ユーザログ本文

BLOB/VARCHAR

不定

ログ本文

ユーザまたはApcoordinatorによって設定

注) 分割キー、および任意列の指定は任意です。分割キー、および任意列については、以下のマニュアルを参照してください。

ユーザログ本文は、BLOB:1キロバイト~10メガバイト、VARCHAR:1バイト~32キロバイトの範囲です。

ユーザログテーブルのレコード形式

ユーザログテーブルの生成は、以下のレコード形式で指定します。

CREATE TABLE スキーマ名.表名 (LOG_TYPE        CHAR(1)   DEFAULT  LOG_TYPE,
                              SEQUENCE_NO     CHAR(30)  DEFAULT  ULOG_SEQUENCE,
                              TRANSACTION_ID  CHAR(20)  DEFAULT  TRANSACTION_ID,
                              SYSTEM_NAME     CHAR(8)   DEFAULT  SYSTEM_NAME,
                              CONTEXT_ID      VARCHAR(1024),
                              分割キー        CHAR(10)  NOT NULL,
                              任意列1         DECIMAL(4,0),
                              任意列2         VARCHAR(5),
                              ユーザログ本文  BLOB または VARCHAR
                             )

ユーザログテーブルの作成

高信頼性ログを格納するユーザログテーブルは、論理構造、格納構造、物理構造から構成します。
ユーザログテーブルの作成には、rdbddlexコマンドを使用します。
定義の詳細については、以下のマニュアルを参照してください。

論理構造の作成

論理構造を作成する場合の定義例を以下に示します。
定義する列は、高信頼性ログへ格納する情報に応じ定義してください。ユーザログ本文を除き、以下のとおり、指定する必要があります。

CREATE TABLE スキーマ名.表名 (LOG_TYPE        CHAR(1)    DEFAULT  LOG_TYPE,
                              SEQUENCE_NO     CHAR(30)   DEFAULT  ULOG_SEQUENCE,
                              TRANSACTION_ID  CHAR(20)   DEFAULT  TRANSACTION_ID,
                              SYSTEM_NAME     CHAR(8)    DEFAULT  SYSTEM_NAME,
                              CONTEXT_ID      VARCHAR(1024),
                              分割キー        CHAR(10)  NOT NULL,
                              任意列1         DECIMAL(4,0),
                              任意列2         VARCHAR(5),
                              ユーザログ本文  VARCHAR(512)
                             )

LOG_TYPE、SEQUENCE_NO、TRANSACTION_ID、SYSTEM_NAME、CONTEXT_IDは、固定です。以下に利用者が決め、指定する必要のある項目を示します。

  • スキーマ名.表名
    作成する論理構造のスキーマ名と表名を指定します。

  • 分割キー(任意)
    DSI分割を行う場合のキー値を格納する列の、列名と列のデータ型、長さを指定します。

  • 任意列(任意)
    利用者が検索などの任意の目的で使用する列の、列名と列のデータ型、長さを指定します。

  • ユーザログ本文
    ログ本文の型、長さを指定します。

格納構造の作成

以下は、格納構造を作成する場合の定義例です。格納構造の定義では、DSOとDSIをそれぞれ定義します。DSOとDSIの詳細はSymfoware Serverのマニュアルを参照してください。

CREATE DSO MY_DSO FROM ULOG.業務ログ表 TYPE CYCLIC(PAGESIZE(32),CYCLIC_MODE(0)); 
CREATE DSI MY_DSI DSO MY_DSO ALLOCATE DATA ON (DBSP1,DBSP2,DBSP3,DBSP4) ENTRYSIZE 10M;

DSOの定義

DSOとは、表(実表)に対してその格納構造を表現するものです。DSO定義では、DSO名、スキーマ名.表名を指定します。

CREATE DSO DSO名 FROM スキーマ名.表名 TYPE CYCLIC(PAGESIZE(32),CYCLIC_MODE(0));
  • DSO名
    任意のDSO名を指定します。

  • スキーマ名.表名
    論理構造で指定するスキーマ名、表名を指定します。

DSIの定義

DSIでは、DSOで表現する情報に加えてデータベーススペースとの対応関係も表現します。DSI定義では、DSI名、DSO名、データベーススペース、エントリの容量を指定します。

CREATE DSI DSI名 DSO DSO名 ALLOCATE DATA ON (データベーススペース) ENTRYSIZE 10M;
  • DSI名
    任意のDSI名を指定します。

  • DSO名
    DSOの定義で指定するDSO名を指定します。

  • データベーススペース
    エントリを作成するデータベーススペースを指定します。

    • 1つのデータベーススペースに複数のエントリを作成
      データベーススペース“DBSP1”に、3つのエントリを作成する場合の例です。

      CREATE DSI MY_DSI DSO MY_DSO ALLOCATE DATA ON (DBSP1,DBSP1,DBSP1) ENTRYSIZE 10M;
    • 複数のデータベーススペースに複数のエントリを作成
      データベーススペース“DBSP1”に2つのエントリ、“DBSP2”に2つのエントリを作成する場合の例です。

      CREATE DSI MY_DSI DSO MY_DSO ALLOCATE DATA ON (DBSP1,DBSP1,DBSP2,DBSP2) ENTRYSIZE 10M;
  • エントリの容量
    データベーススペースに作成するエントリの容量を指定します。10メガバイトのエントリを3つ作成する例を以下に示します。

    CREATE DSI MY_DSI DSO MY_DSO ALLOCATE DATA ON (DBSP1,DBSP1,DBSP1) ENTRYSIZE 10M;
物理構造の作成

ユーザログテーブルを格納する物理構造を指定します。以下は、データベーススペースをローデバイスへ作成する例です。

  • Solarisの場合
    データベーススペース“DBSP1”をローデバイス“/dev/rdsk/c1t0d1s1”へ作成する例です。

    CREATE DBSPACE DBSP1 ALLOCATE RAWDEVICE /dev/rdsk/c1t0d1s1;
  • Linuxの場合
    データベーススペース“DBSP1”をローデバイス“/dev/raw/raw10”へ作成する例です。

    CREATE DBSPACE DBSP1 ALLOCATE RAWDEVICE /dev/raw/raw10;
  • Windowsの場合
    データベーススペース“DBSP1”をローデバイス“\\.\RDB_DBS1”へ作成する例です。

    CREATE DBSPACE DBSP1 ALLOCATE RAWDEVICE \\.\RDB_DBS1;

ユーザログの退避

ユーザログテーブルに格納されたデータは、ユーザログ取得機能を使用して一般ファイルに退避できます。

ユーザログの退避の詳細は、以下のマニュアルを参照してください。