CommandTimeout

このプロパティは、特定のOracleConnectionオブジェクトで例外が発生して終了するまでコマンドの実行が許可される最小秒数を指定します。

宣言

// C#
public int CommandTimeout { get; set;}

プロパティ・タイプ

System.Int32

例外

InvalidArgument - 指定された値が0未満であるか、System.Int32.MaxValueを超えています。

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

備考

デフォルトは0 (秒)で、時間の制限は適用されません。

コマンドの実行が終了する前に、指定したタイムアウト値を超えると、ODP.NETはコマンドの取消しプロセスを開始します。正しく取り消された場合は、「ORA-01013: ユーザーによって現行の操作の取消しがリクエストされました」というメッセージの例外がスローされます。コマンドのタイムアウトの期限切れが発生した後にスローされる可能性があるその他の例外には、ORA-00936およびORA-00604があります。コマンドが時間内にエラーなしで実行された場合、例外はスローされません。

ODP.NETでは、タイムアウト値に達した正確なタイミングでコマンドが取り消される保証はありません。タイムアウト値は、取消しプロセスが開始するまでにコマンドが完了できる最小時間です。タイムアウト値が期限切れになった後でコマンドが完了する可能性があります。

複数のOracleCommandオブジェクトで同じ接続を使用している場合、いずれかのOracleCommandオブジェクトでタイムアウトが発生すると、その単一接続上の他の実行が終了する可能性があります。OracleCommandCommandTimeoutプロパティの値が0より大きく設定されている場合、OracleCommandのタイムアウトの際に、該当するコマンド実行のみが取り消されるようにするには、各接続でOracleCommandを1つのみ使用するようにします。

CommandTimeoutプロパティは、OracleCommandOracleConnectionおよびOracleConfigurationオブジェクトで構成できます。デフォルトでは、OracleConnection CommandTimeoutプロパティ値は構成時にOracleConfiguration CommandTimeoutプロパティ値を継承し、OracleCommand CommandTimeoutプロパティ値は構成時にOracleConnection CommandTimeoutプロパティ値を継承します。OracleCommand CommandTimeoutの値は、コマンドの実行時に使用されます。