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