0

目前我被困在一个我没有(不够)专业知识的领域。我使用具有“异步处理 = 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 填充的事件表进行选择调用。以便我知道它何时完成以及处于什么阶段。

睡眠哪里出了问题?

4

0 回答 0