GetOutcome
GetOutcome
メソッドは、データベース・サーバーからトランザクション結果を取得します。このメソッドは、トランザクションがコミットおよび完了されたかどうかを判定します。
オーバーロード・リスト:
-
GetOutcome(string
constring
、byte[]
ltxid
、out bool?
bCommitted
、out bool?
bUserCallCompleted
)アプリケーションは、例外が発生したときに結果が不明の場合、この静的メソッドを使用できます。
アプリケーションは、このメソッドを呼び出す前に接続文字列および
logical transaction id
をOracleException.OracleLogicalTransaction
オブジェクトから取得する必要があります。指定された論理トランザクションIDの結果を判断するためにデータベースへの接続を確立するには、提供された接続文字列が使用されます。
ODP.NETは、次の条件で明示的に
GetOutcome
をコールします。-
トランザクション・ガードがサービス上で使用可能
-
OracleExceptionが発生
-
例外がリカバリ可能エラー
上記すべてがtrueの場合、
OracleException.OracleLogicalTransaction
プロパティはnull以外になります。接続が分散トランザクションに含まれている場合、
GetOutcome
は明示的にコールされず、OracleException.OracleLogicalTransaction.LogicalTransactionId
プロパティはnullを戻します。 -
注意:
GetOutcome()
invocation
に対してサーバー・ラウンドトリップが1回実行されると、指定したOracleLogicalTransaction
オブジェクトについてPL/SQLのForceOutcome
は二度とサーバーに対して呼び出されなくなります。