高信頼性ログ機能は、ログをデータベースに格納する機能です。ここでは、高信頼性ログの機能と運用パターンについて説明します。
機能
高信頼性ログ機能には、以下の特長があります。
エンドレスなファイル管理
ユーザーログのトランザクションの一貫性の保証
データベースと同等の堅牢な書込み保証
ユーザーログの書込み順番の保証
サイクリックな格納構造によって、エンドレスにファイル管理ができます。この格納構造には、以下の特長があります。
高速挿入、循環使用に特化した格納構造
容量満杯や障害発生の場合はエントリを自動切替え
エントリごとにI/O分散・危険分散が可能
高信頼性ログ機能は、以下の機能によって、トランザクションに一貫性のあるログ取得を実現します。
ユーザーログの取得
ユーザーログは、ロールバックした場合を含めてすべて取得します。これによってすべての業務処理結果の分析が可能になります。
ユーザーログの書込み確定
ユーザーログは、トランザクションのコミット、ロールバックなどのトランザクション終了時、またはSyncメソッドの使用によって書込みが確定します。
トランザクション結果の自動出力
トランザクション結果を示す制御ログを自動出力します。これによってトランザクション結果の分析が可能になります。
なお、システム構成(接続方法)によって、業務処理の結果情報を示すユーザーログの取得方法には、以下の違いがあります。
ユーザーログの取得 | ユーザーログの書込み確定 | トランザクション結果の自動出力 | |
---|---|---|---|
パターン1 | ○ | ○ | ○ |
パターン2 | |||
パターン3 | ○ | ○ | × |
上記のパターン1~3は、“運用操作のパターン”で説明しているパターン1~3を示しています。
[業務データベース処理があるデータベースサーバーでのユーザーログ取得]
データベースサーバーでのユーザーログの取得は、パターン1およびパターン2の形態です。
パターン1では、業務データベースのトランザクション処理結果に連動して、トランザクションの結果ログをシステムが自動的に出力します。
パターン2では、情報レコードログの自動出力は行いません。
なお、ユーザーログは業務トランザクションの結果に関わらず出力は保証されます。
パターン2の場合、XA制御を利用して、業務結果ログの自動取得やログの自動保証を行います。なお、本バージョンでは、業務データベースがOracleの場合、XA制御を利用した整合性保証機能はサポートしていません。
[業務データベース処理がないアプリケーションサーバーでのユーザーログ取得]
業務データベースがない場合は、本製品に含まれている高信頼性ログServer機能を利用してログを取得することができます。
高信頼性ログServer機能でのユーザーログの取得は、パターン3の形態です。
この形態では、アプリケーションのログをユーザーログとして採取していくもので、ログ確定によって採取したユーザーログを保証していくものです。
高信頼性ログの書込みは、データベース更新で培われた高い信頼性をベースとした技術で実装されています。
以下の場合も、トランザクションの完了またはログの書込み確定が行われたユーザーログの書込みは保証されます。
システムダウン、コネクション切断時は、テンポラリログより自動リカバリ
メディア障害時は、アーカイブログよりrdbrcvコマンドによってリカバリ
ユーザーログテーブルの論理定義で格納順番号を指定することによって、格納順番号をユーザーログレコードに自動付加します。これをもとにソート処理を行うことで、書込み順にログを参照することが可能となります。ソート処理はユーザーが行ってください。
運用操作のパターン
高信頼性ログ機能の運用には、システム構成によって、以下の3つのパターンが考えられます。
パターン1:業務データベースがSymfoware Serverのデータベースサーバーでのユーザーログの取得
パターン2:業務データベースが他社データベースのデータベースサーバーでのユーザーログの取得(Oracleのデータベースサーバーなど)
パターン3:業務データベース処理がないアプリケーションサーバーでのユーザーログの取得(HUBサーバー(注)など)
注) HUBサーバーとは、業務システムの統合や拡張性・柔軟性・高可用性を実現するために、送信送受信業務代行、複数HUB連携、各種フォーマット変換などを行うためのサーバーです。本章ではデータベースを配置しないサーバーで、ユーザーログの取得要件が高い代表的なサーバーという位置付けで例として記述しています。
以下に、それぞれの運用パターンのシステム構成図を示します。
[パターン1:業務データベースがSymfoware Serverのデータベースサーバーでのユーザーログ取得]
業務データベースがSymfoware Serverの場合は、Symfoware Serverの機能を利用して信頼性の高い高信頼性ログ機能の運用を行うことができます。
[パターン2:業務データベースが他社データベースのデータベースサーバーでのユーザーログ取得]
なお、本バージョンでは、業務データベースがOracleの場合、XA制御を利用した整合性保証機能はサポートしていません。
[パターン3:業務データベース処理がないHUBサーバーなどでのユーザーログ取得]