トランザクションは、別のコンポーネントによるレコード・ストア内のアクセス操作です。トランザクションは、ある操作を別の操作と分離して、それぞれの操作が個別に行われるようにする手段を提供します。
つまり、あるトランザクションは読取りを行い、別のトランザクションは書込みを行います。各トランザクションは、
READ_WRITEトランザクションまたは
READトランザクションのいずれかになります。
- READトランザクションは、読取り操作のみをサポートします。いくつかの数のREADトランザクションが同時に実行される場合があります。読取り操作の例として、Integrator ETLがベースライン更新のレコード生成を読み取る場合や、管理者がレコード・ストア・コマンドライン・ユーティリティを使用して-cフラグでレコード・ストア・インスタンスのカウント(レコード数)を取得する場合などがあります。
- READ_WRITEトランザクションは、読取りと書込みの両方の操作をサポートします。実行するREAD_WRITEトランザクションは常に1つのみです。書込み操作の例として、クローラが完全クロールを実行して、レコード・ストア・インスタンスに出力を書き込む場合があります。
各トランザクションには、トランザクションIDが割り当てられます。トランザクションが開始すると、レコード・ストア・サービスは、トランザクションのタイプとIDを含むINFOメッセージのログを記録します。次の例では、ベースライン更新の
READトランザクション(IDは2)を実行します。
Started transaction 2 of type READ
書込みトランザクション・メッセージの例を次に示します。
Started transaction 3 of type READ_WRITE
各トランザクションにはステータスがあり、次のいずれかになります。
- ACTIVE: トランザクションは現在アクティブです。トランザクションが書込み操作の途中の場合などです。
- COMMITTED: トランザクションは正常に完了しています。このステータスを示すINFOメッセージ、コミット済トランザクションのログが記録されます。
- COMMIT_FAILED: トランザクションのコミットが失敗しました。トランザクションに対して許可される操作はロールバックのみです。
- ROLLED_BACK: トランザクションは正常にロールバックされています。トランザクションに対してこれ以上の操作は許可されません。
トランザクションのルールは次のとおりです。
- トランザクションがコミットまたはロールバックされると、その後トランザクションにアクセスしようとする操作は失敗します。
- 読取り操作が終了すると、その後読取りカーソルにアクセスしようとする操作は失敗します。
- トランザクションにつき一度に実行できる操作は1回のみです。
- トランザクションがロールバックされた場合、進行中の操作は取り消されます。