GetOutcome
GetOutcomeメソッドは、データベース・サーバーからトランザクション結果を取得します。このメソッドは、トランザクションがコミットおよび完了されたかどうかを判定します。
オーバーロード・リスト:
-
GetOutcome(stringconstring、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は二度とサーバーに対して呼び出されなくなります。