目前我被困在一个我没有(不够)专业知识的领域。我使用具有“异步处理 = true”的连接字符串在动态 sp 中调用 MSSQL 作业,这是特定于此任务的。
String connectionString = ConfigurationManager.ConnectionStrings["dbSSIS"].ConnectionString; SqlConnection jobConnection; SqlCommand jobCommand; SqlParameter jobReturnValue; SqlParameter jobParameter; int jobResult; jobConnection = new SqlConnection(connectionString); jobCommand = new SqlCommand("msdb.dbo.sp_start_job", jobConnection); jobCommand.CommandType = CommandType.StoredProcedure; jobReturnValue = new SqlParameter("@RETURN_VALUE", SqlDbType.Int); jobReturnValue.Direction = ParameterDirection.ReturnValue; jobCommand.Parameters.Add(jobReturnValue); jobParameter = new SqlParameter("@job_name", SqlDbType.VarChar); jobParameter.Direction = ParameterDirection.Input; jobCommand.Parameters.Add(jobParameter); jobParameter.Value = "Jobname"; jobConnection.Open(); jobCommand.ExecuteNonQuery(); jobResult = (Int32)jobCommand.Parameters["@RETURN_VALUE"].Value; jobConnection.Close();
该作业从带有“msdb.dbo.sp_start_job”的代码完美运行。但是当添加:
System.Threading.Thread.Sleep(5000);
作业在代理启动的作业中间停止。我想要睡眠的原因是因为我想对由 SSIS 填充的事件表进行选择调用。以便我知道它何时完成以及处于什么阶段。
睡眠哪里出了问题?