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