1

我有 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();

谢谢!

4

0 回答 0