ユーザログテーブルの定義の詳細は、以下のマニュアルを参照してください。
“Interstage Business Application Server 運用ガイド(高信頼性ログ編)”の“ユーザログテーブルの作成”
ユーザログテーブルの構造
高信頼性ログを出力するユーザログテーブルは以下の構造です。
項目名 | 型 | 長さ | 説明 | データ設定 |
---|---|---|---|---|
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によって設定 |
注) 分割キー、および任意列の指定は任意です。分割キー、および任意列については、以下のマニュアルを参照してください。
“Interstage Business Application Server 運用ガイド(高信頼性ログ編)”の“表定義”
ユーザログ本文は、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コマンドを使用します。
定義の詳細については、以下のマニュアルを参照してください。
“Interstage Business Application Server 運用ガイド(高信頼性ログ編)”
論理構造を作成する場合の定義例を以下に示します。
定義する列は、高信頼性ログへ格納する情報に応じ定義してください。ユーザログ本文を除き、以下のとおり、指定する必要があります。
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;
ユーザログの退避
ユーザログテーブルに格納されたデータは、ユーザログ取得機能を使用して一般ファイルに退避できます。
ユーザログの退避の詳細は、以下のマニュアルを参照してください。
“Interstage Business Application Server 運用ガイド(高信頼性ログ編)”の“ユーザログテーブルからユーザログのエクスポート”