第6章 トランザクション
Data Virtualization は、グローバルトランザクションに参加するために XA トランザクションを使用し、ローカルおよびコマンドスコープのトランザクションをデルメント化します。
Narayana コミュニティープロジェクトで Data Virtualization 用に提供される高度なトランザクション技術に関する情報は、Narayana の ドキュメント を参照し てください。
スコープ | 説明 |
---|---|
コマンド | user コマンドは、すべてのソースコマンドが同じトランザクションの範囲内で実行されるかのように処理します。AutoCommitTxn 実行プロパティーは、コマンドレベルのトランザクションの動作を制御します。 |
ローカル | トランザクション境界は、1 つのクライアントセッションによってローカルで定義されます。 |
グローバル | データ仮想化は、グローバルトランザクションに XA リソースとして参加します。 |
Data Virtualization のデフォルトのトランザクション分離レベルは READ_COMMITTED です。
6.1. AutoCommitTxn 実行プロパティー リンクのコピーリンクがクリップボードにコピーされました!
ユーザーレベルのコマンドは、複数のソースコマンドを実行できます。ローカルまたはグローバルトランザクションにない場合のユーザーコマンドのトランザクション動作を制御するには、AutoCommitTxn 実行プロパティーを指定できます。
設定 | 説明 |
---|---|
OFF | 各コマンドをトランザクションでラップしないでください。個々のソースコマンドは、全体的なコマンドの成功または失敗に関係なく、コミットまたはロールバックできます。 |
ON | 各コマンドをトランザクションでラップします。このモードは最も安全なものですが、パフォーマンスのオーバーヘッドが発生する場合があります。 |
検出 | これはデフォルト設定です。トランザクションでコマンドを自動的にラップしますが、コマンドがトランザクション安全でないように見える場合のみ、コマンドを自動的にラップします。 |
トランザクションに関するコマンド安全性の概念は、コマンドタイプ、トランザクション分離レベル、および利用可能なメタデータに基づいて Data Virtualization によって決定されます。以下の基準が当てはまる場合は、ラッピングトランザクションは必要ありません。
- user コマンドはソースに完全にプッシュされます。
- user コマンドは SELECT(XML を含む)で、トランザクション分離は REPEATABLE_READ や SERIALIABLE ではありません。
- user コマンドはストアドプロシージャーで、トランザクション分離は REPEATABLE_READ や SERIALIABLE ではなく、更新モデル数はゼロです。詳細は、「 モデル数の更新」を 参照してください。
更新数は、モデルの手順メタデータの一部としてすべての手順に設定できます。