我有 1 个用 C# 开发的 .NET 进程,它使用 Oracle.DataAccess 库连接到我们的 Oracle 数据库。我的进程进行了一些大规模更新,之后必须调用 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();
谢谢!