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

5.6 高信頼性ログ

高信頼性ログ機能は、ログをデータベースに格納する機能です。ここでは、高信頼性ログの機能と運用パターンについて説明します。

機能

高信頼性ログ機能には、以下の特長があります。

エンドレスなファイル管理

サイクリックな格納構造によって、エンドレスにファイル管理ができます。この格納構造には、以下の特長があります。

  • 高速挿入、循環使用に特化した格納構造

  • 容量満杯や障害発生の場合はエントリを自動切替え

  • エントリごとにI/O分散・危険分散が可能

ユーザログのトランザクションの一貫性の保証

高信頼性ログ機能は、以下の機能によって、トランザクションに一貫性のあるログ取得を実現します。

  • ユーザログの取得
    ユーザログは、ロールバックした場合を含めてすべて取得します。これによってすべての業務処理結果の分析が可能になります。

  • ユーザログの書込み確定
    ユーザログは、トランザクションのコミット、ロールバックなどのトランザクション終了時、またはSyncメソッドの使用によって書込みが確定します。

  • トランザクション結果の自動出力
    トランザクション結果を示す制御ログを自動出力します。これによってトランザクション結果の分析が可能になります。

なお、システム構成(接続方法)によって、業務処理の結果情報を示すユーザログの取得方法には、以下の違いがあります。

ユーザログの取得

ユーザログの書込み確定

トランザクション結果の自動出力

パターン1


コミットまたはロールバックが完了したタイミング

パターン2

パターン3


Syncメソッドなどを利用してログを確定したタイミング

×

上記のパターン1~3は、“運用操作のパターン”で説明しているパターン1~3を示しています。

[業務データベース処理があるデータベースサーバでのユーザログ取得]

データベースサーバでのユーザログの取得は、パターン1およびパターン2の形態です。
パターン1では、業務データベースのトランザクション処理結果に連動して、トランザクションの結果ログをシステムが自動的に出力します。
パターン2では、情報レコードログの自動出力は行いません。

なお、ユーザログは業務トランザクションの結果に関わらず出力は保証されます。

パターン2の場合、XA制御を利用して、業務結果ログの自動取得やログの自動保証を行います。なお、本バージョンでは、業務データベースがOracleの場合、XA制御を利用した整合性保証機能はサポートしていません。

[業務データベース処理がないアプリケーションサーバでのユーザログ取得]

業務データベースがない場合は、本製品に含まれている高信頼性ログServer機能を利用してログを取得することができます。
高信頼性ログServer機能でのユーザログの取得は、パターン3の形態です。
この形態では、アプリケーションのログをユーザログとして採取していくもので、ログ確定によって採取したユーザログを保証していくものです。

データベースと同等の堅牢な書き込み保証

高信頼性ログの書込みは、データベース更新で培われた高い信頼性をベースとした技術で実装されています。
以下の場合も、トランザクションの完了またはログの書込み確定が行われたユーザログの書込みは保証されます。

  • システムダウン、コネクション切断時は、テンポラリログより自動リカバリ

  • メディア障害時は、アーカイブログよりrdbrcvコマンドによってリカバリ

ユーザログの書込み順番の保証

ユーザログテーブルの論理定義で格納順番号を指定することによって、格納順番号をユーザログレコードに自動付加します。これをもとにソート処理を行うことで、書込み順にログを参照することが可能となります。ソート処理はユーザが行ってください。

運用操作のパターン

高信頼性ログ機能の運用には、システム構成によって、以下の3つのパターンが考えられます。

以下に、それぞれの運用パターンのシステム構成図を示します。

[パターン1:業務データベースがSymfoware Serverのデータベースサーバでのユーザログ取得]

業務データベースがSymfoware Serverの場合は、Symfoware Serverの機能を利用して信頼性の高い高信頼性ログ機能の運用を行うことができます。

[パターン2:業務データベースが他社データベースのデータベースサーバでのユーザログ取得]

なお、本バージョンでは、業務データベースがOracleの場合、XA制御を利用した整合性保証機能はサポートしていません。

[パターン3:業務データベース処理がないHUBサーバなどでのユーザログ取得]