OracleLogicalTransactionクラスは、論理トランザクション・ステータスに関する詳細な情報を提供します。アプリケーションは、前回のデータベース停止中に実行中だったトランザクションの結果を最終的に鑑定し、それに基づいてトランザクションのコミット、完了、ロールバックをいずれか実行します。
クラスの継承
System.Object
System.MarshalByRefObject
Oracle.DataAccess.Client.OracleLogicalTransaction
宣言
// C# public sealed class OracleLogicalTransaction
要件
| プロバイダ | ODP.NET管理対象外ドライバ |
| アセンブリ | Oracle.DataAccess.dll |
| ネームスペース | Oracle.DataAccess.Client |
| .NET Framework | 3.5, 4.0, 4.5 |
スレッド安全性
パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。
OracleLogicalTransactionメンバーは次の表にリスト表示されています。
OracleLogicalTransactionパブリック読取り専用プロパティ
OracleLoigcalTransactionパブリック読取り専用プロパティを、表6-87にリストします。
表6-87 OracleLogicalTransactionパブリック読取り専用プロパティ
| プロパティ | 説明 |
|---|---|
|
|
トランザクションがコミットされたかどうかを指定します |
|
|
トランザクションがコミットされたかどうかと、戻される情報が不完全であるか一部の操作が完了していない、またはその両方の可能性があることを示します。 |
|
|
このオブジェクトの取得元である接続に対応するユーザーIDを指定します。 |
|
|
このオブジェクトの取得元である接続に対応するデータ・ソース、たとえばTNS別名を指定します。 |
OracleLogicalTransactionプライベート・プロパティ
OracleLoigcalTransactionプライベート・プロパティを、表6-88にリストします。
表6-88 OracleLogicalTransactionプライベート・プロパティ
| プロパティ | 説明 |
|---|---|
|
|
|
OracleLogicalTransactionメソッド
OracleLoigcalTransactionプライベート・プロパティを、表6-89にリストします。
OracleLoigcalTransactionパブリック読取り専用プロパティを、表6-90にリストします。
表6-90 OracleLogicalTransactionパブリック読取り専用プロパティ
| プロパティ | 説明 |
|---|---|
|
|
トランザクションがコミットされたかどうかを指定します |
|
|
トランザクションがコミットされたかどうかと、戻される情報が不完全であるか一部の操作が完了していない、またはその両方の可能性があることを示します。 |
|
|
このオブジェクトの取得元である接続に対応するユーザーIDを指定します。 |
|
|
このオブジェクトの取得元である接続に対応するデータ・ソース、たとえばTNS別名を指定します。 |
このプロパティは、トランザクションがコミットされたかどうかを指定します。
宣言
// C#
public bool? Committed {get;}
プロパティ値
bool。
備考
GetOutcome()を呼び出さない場合、このプロパティはnull値を保持します。
GetOutcome()を呼び出すと、このプロパティはtrueまたはfalse値を保持します。
表6-91に、CommittedおよびUserCallCompletedの各プロパティで想定される結果を示します。
表6-91 コミットしたOracleLogicalTransactionの結果とUserCallCompletedプロパティ
| Committedの値 | UserCallCompletedの値 | 結果 |
|---|---|---|
|
|
|
このコールはコミットを実行していません。 |
|
|
|
このコールはコミットを実行しており、その他に戻される情報はなく、必要な操作もありません(このコールがPL/SQLプロシージャの場合)。 |
|
|
|
このトランザクションはコミットされましたが、戻される情報が不完全であるか、一部の操作が完了してない、またはその両方の可能性があります。たとえば、不完全な情報や未完了の操作には、成功時の自動コミットまたはコミットによって変更される行数、PL/SQLプロシージャをコールしたときのパラメータおよびファンクションの結果、コミット後に実行するPL/SQLプロシージャの操作などがあります。コミット後に戻されるデータを使用する場合、その.NETアプリケーションを正しく機能させるためには、 |
このプロパティは、トランザクションがコミットされたかどうかと、戻される情報が不完全であるか一部の操作が完了していない、またはその両方の可能性があることを示します。
宣言
// C#
public bool? UserCallCompleted {get;}
プロパティ値
bool
備考
GetOutcome()を呼び出さない場合、このプロパティはnull値を保持します。
GetOutcome()を呼び出すと、このプロパティはtrueまたはfalse値を保持します。
表6-91に、CommittedおよびUserCallCompletedの各プロパティで想定される結果を示します。
このプロパティは、このオブジェクトの取得元である接続に対応するユーザーIDを指定します。
宣言
// C#
public string UserId {get;}
プロパティ値
文字列としてのユーザーID。
OracleLoigcalTransactionプライベート・プロパティを、表6-92にリストします。
OracleLoigcalTransactionプライベート・プロパティを、表6-93にリストします。
表6-93 OracleLogicalTransactionメソッド
| プロパティ | 説明 |
|---|---|
|
|
このメソッドでは、オブジェクトにより割り当てられたリソースまたはメモリーを解除します |
|
|
このメソッドは、データベース・サーバーからトランザクション結果を取得します。このメソッドは、トランザクションがコミットおよび完了されたかどうかを判定します。 |
このメソッドでは、オブジェクトにより割り当てられたリソースまたはメモリーを解除します
宣言
// C# public void Dispose();
実装
IDisposable
備考
Disposeメソッドでは、OracleLogicalTransactionオブジェクトもクローズします。
GetOutcomeメソッドは、データベース・サーバーからトランザクション結果を取得します。このメソッドは、トランザクションがコミットおよび完了されたかどうかを判定します。
オーバーロード・リスト:
GetOutcome()
このメソッドは、OracleLogicalTransactionの取得元である、複製されたOracleConnection を使用します。
接続はpooling=falseでオープンされ、出力が強制的に実行されるとすぐに接続は切断/クローズ/解放のステータスを取得します。
繰り返して呼び出しても、サーバー・ラウンドトリップは実行されません。
GetOutcome(string userid, string password, string dataSource)
このメソッドは、OracleLogicalTransactionの取得元である、複製されたOracleConnection を使用します。
出力が強制的に実行されるとすぐに、接続は切断/クローズ/解放のステータスを取得します。
繰り返して呼び出しても、サーバー・ラウンドトリップは実行されません。
|
注意: GetOutcome() invpcatopmに対してサーバー・ラウンドトリップが1回実行されると、特定のOracleLogicalTransactionオブジェクトについてPL/SQLのForceOutcomeは再度サーバーに対して呼び出されなくなります。 |