Oracle.DataAccess ライブラリを使用して Oracle データベースに接続する C# で開発された .NET プロセスが 1 つあります。私のプロセスはいくつかの大規模な更新を行い、その後、Oracle でストアド プロシージャを呼び出して何らかの処理を行う必要があります。この手順が完了するまでに 1.5 時間かかりました (この手順に関連付けられたコントロール テーブルがあるため、完了したことがわかります) が、C# コードはデバッグ中に同じ行に残ります... 何らかのタイムアウトになる可能性がありますか? 昨日プロセスを実行したままにして、今日到着したとき、プロセスはまだ実行されており(14時間)、ストアドプロシージャは1.5時間で終了しました...)。
これを制御する方法はありますか?
プロシージャを呼び出すメソッド:
public bool PostCurrentJob()
{
Logger.Log.Debug(Logger.Direction.INPUT);
string jobName = ActiveJob;
bool result = true;
if (jobName == null)
{
result = false;
}
else
{
OracleCommand cmd = dbManager.GetOracleCommand("genesis_admin_pkg.post");
cmd.CommandType = CommandType.StoredProcedure;
try
{
OracleParameter pJobName = new OracleParameter("p_Name", OracleDbType.Varchar2, ParameterDirection.Input);
pJobName.Value = jobName;
cmd.Parameters.Add(pJobName);
cmd.ExecuteNonQuery();
cmd.Dispose();
}
catch (Exception e)
{
Logger.Log.Error(e);
throw e;
}
}
Logger.Log.Debug(Logger.Direction.OUTPUT);
return result;
}
コードの実行は cmd.ExecuteNonQuery(); で停止します。
ありがとう!