IsolationLevel

このプロパティにより、ローカル・トランザクションの分離レベルを指定します。

宣言

// C#
public IsolationLevel IsolationLevel {get; set;}

プロパティ値

IsolationLevel

例外

InvalidOperationException - 接続に既存のトランザクションがある場合や、接続がすでにローカル/分散トランザクションに参加している場合は、このプロパティを設定できません。

InvalidArgumentException - このプロパティをIsolationLevel.ReadCommittedまたはIsolationLevel.Serializable以外のIsolationLevelsに設定することはできません。

System.ObjectDisposedException - OracleConnectionオブジェクトがすでに破棄されている場合は、このプロパティにアクセスできません。

備考

デフォルトでは、このプロパティはIsolationLevel.ReadCommittedに設定されます。IsolationLevel.Serializableに設定することもできます。

アプリケーションで、接続がオープンされる前または後にこのプロパティ値を設定できます。アクティブなトランザクションの間にこのプロパティを設定すると、例外がスローされます。

すべての暗黙的トランザクションは、OracleConnectionオブジェクトでその分離レベルが指定されています。

明示的なトランザクションの場合、BeginTransaction()メソッドでは、OracleConnectionオブジェクトで指定されたIsolationLevelが使用されます。オーバーロードされたBeginTransaction(Isolation Level)メソッドを使用すると、そのパラメータで、OracleConnectionオブジェクトでのIsolationLevel設定がオーバーライドされます。トランザクションがコミットまたはロールバックされると、接続の分離レベルが、OracleConnectionIsolationLevelで設定されている値に戻ります。

TransactionScopeを使用して作成された分散トランザクションには、このプロパティで設定された分離レベルは適用されません。

IsolationLevelプロパティを設定した後は、IsolationLevel値が変更されるまで、その特定のOracleConnectionオブジェクトでの後続のすべてのOpen()コールにその設定が適用されます。