![]() |
![]() |
|
|
| |
用語集
ローカル トランザクション(local transaction)
単一のリソース マネージャにのみローカルなトランザクション。1 つのデータベースにのみ関連するトランザクションなど。
分散トランザクション(distributed transaction)
複数のリソース マネージャにわたる 2 フェース コミット プロトコルを介して、外部のトランザクション マネージャにより境界の設定と調整が行われるトランザクション。グローバル トランザクションとも呼ばれます。
グローバル トランザクション(global transaction)
「分散トランザクション」を参照してください。
トランザクション ブランチ(transaction branch)
グローバル トランザクションをサポートする、各リソース マネージャの内部処理ユニットは、厳密には 1 つのトランザクション ブランチの一部です。トランザクション マネージャがリソース マネージャに提供する各グローバル トランザクション識別子(GTRID または XID)によって、分散トランザクションと個々のブランチの両方が識別されます。
ヒューリスティックな決定(heuristic decision)
ヒューリスティックな決定(ヒューリスティックな終了)は、分散トランザクションの終了段階においてリソースが更新をコミットするかロールバックするかを一方的に決定することで発生します。これにより、分散されたデータは不確定な状態のままになります。ヒューリスティックな決定の原因としては、ネットワークの障害またはトランザクションのタイムアウトが考えられます。
HeuristicRollback
トランザクションに参加する 1 つのリソースが、準備してコミットの決定を待つことに同意しているにもかかわらず、処理のロールバックを自発的に決定した場合。トランザクション マネージャがトランザクションのコミットを決定すると、そのリソースによるヒューリスティックなロールバックの決定は不正になり、トランザクションの他のブランチはコミットされるため、矛盾した結果を招きます。
HeuristicCommit
トランザクションに参加する 1 つのリソースが、準備してコミットの決定を待つことに同意しているにもかかわらず、処理のコミットを自発的に決定した場合。トランザクション マネージャがトランザクションのロールバックを決定すると、そのリソースによるヒューリスティックなコミットの決定は不正になり、トランザクションの他のブランチはロールバックされるため、矛盾した結果を招きます。
HeuristicMixed
トランザクションが、参加リソースの一部がコミットし、一部がロールバックするという混合した結果になったことを、トランザクション マネージャで認識している場合。主に、1 つまたは複数の参加リソースが、ヒューリスティックなロールバックまたはヒューリスティックなコミットを決定したことが原因で発生します。
HeuristicHazard
トランザクションが、参加リソースの一部がコミットし、一部がロールバックするという混合した結果になったことを、トランザクション マネージャで認識している場合。ただし、システムまたはリソースに障害があるため、HeuristicMixed の結果が確かに発生したかどうかを確認できない場合。主に、1 つまたは複数の参加リソースが、ヒューリスティックなロールバックまたはヒューリスティックなコミットを決定したことが原因で発生します。
![]() |
![]() |