public void UpdateJob(AscmJob ascmJob) { try { //int count = YnDaoHelper.GetInstance().nHibernateHelper.GetCountByList("select count(*) from AscmJob where jobName='" + ascmJob.jobName + "'"); //if (count == 0) // throw new Exception("作业【" + ascmJob.jobName + "】不存在!"); AscmJob _ascmJob = Get(ascmJob.jobName); if (_ascmJob == null) { throw new Exception("作业【" + ascmJob.jobName + "】不存在!"); } var commandParameters = GetCommandParameters(ascmJob); //放在事务中执行报异常 //ExecuteOracleProcedure("ascm_scheduler.sp_update_job", commandParameters); ISession session = YnDaoHelper.GetInstance().nHibernateHelper.GetCurrentSession(); IDbCommand command = session.Connection.CreateCommand(); command.CommandType = CommandType.StoredProcedure; command.CommandText = "ascm_scheduler.sp_update_job"; Array.ForEach <OracleParameter>(commandParameters, P => command.Parameters.Add(P)); command.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } }
public void RunJob(string jobName) { try { //int count = YnDaoHelper.GetInstance().nHibernateHelper.GetCountByList("select count(*) from AscmJob where jobName='" + jobName + "'"); //if (count == 0) // throw new Exception("作业【" + jobName + "】不存在!"); AscmJob _ascmJob = Get(jobName); if (_ascmJob == null) { throw new Exception("作业【" + jobName + "】不存在!"); } OracleParameter[] commandParameters = new OracleParameter[] { new OracleParameter { ParameterName = "i_job_name", OracleDbType = OracleDbType.Varchar2, Value = jobName, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_use_current_session", OracleDbType = OracleDbType.Varchar2, Value = "TRUE", Direction = ParameterDirection.Input } }; ExecuteOracleProcedure("ascm_scheduler.sp_run_job", commandParameters); } catch (Exception ex) { throw ex; } }
public AscmJob Get(string jobName) { AscmJob ascmJob = null; try { ascmJob = YnDaoHelper.GetInstance().nHibernateHelper.Get <AscmJob>(jobName.ToUpper()); } catch (Exception ex) { YnBaseClass2.Helper.LogHelper.GetLog().Error("查询失败(Get AscmJob)", ex); throw ex; } return(ascmJob); }
public void DropJob(string jobName) { try { //int count = YnDaoHelper.GetInstance().nHibernateHelper.GetCountByList("select count(*) from AscmJob where jobName='" + jobName + "'"); //if (count == 0) // throw new Exception("作业【" + jobName + "】不存在!"); AscmJob _ascmJob = Get(jobName); if (_ascmJob == null) { throw new Exception("作业【" + jobName + "】不存在!"); } OracleParameter[] commandParameters = new OracleParameter[] { new OracleParameter { ParameterName = "i_job_name", OracleDbType = OracleDbType.Varchar2, Value = jobName, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_force", OracleDbType = OracleDbType.Varchar2, Value = "FALSE", Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_defer", OracleDbType = OracleDbType.Varchar2, Value = "FALSE", Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_commit_semantics", OracleDbType = OracleDbType.Varchar2, Value = "STOP_ON_FIRST_ERROR", Direction = ParameterDirection.Input } }; ExecuteOracleProcedure("ascm_scheduler.sp_drop_job", commandParameters); } catch (Exception ex) { throw ex; } }
public void CreateJob(AscmJob ascmJob) { try { //int count = YnDaoHelper.GetInstance().nHibernateHelper.GetCountByList("select count(*) from AscmJob where jobName='" + ascmJob.jobName + "'"); //if (count > 0) // throw new Exception("作业【" + ascmJob.jobName + "】已存在!"); AscmJob _ascmJob = Get(ascmJob.jobName); if (_ascmJob != null) throw new Exception("作业【" + ascmJob.jobName + "】已存在!"); var commandParameters = GetCommandParameters(ascmJob); ExecuteOracleProcedure("ascm_scheduler.sp_create_job", commandParameters); } catch (Exception ex) { throw ex; } }
public void CreateJob(AscmJob ascmJob) { try { //int count = YnDaoHelper.GetInstance().nHibernateHelper.GetCountByList("select count(*) from AscmJob where jobName='" + ascmJob.jobName + "'"); //if (count > 0) // throw new Exception("作业【" + ascmJob.jobName + "】已存在!"); AscmJob _ascmJob = Get(ascmJob.jobName); if (_ascmJob != null) { throw new Exception("作业【" + ascmJob.jobName + "】已存在!"); } var commandParameters = GetCommandParameters(ascmJob); ExecuteOracleProcedure("ascm_scheduler.sp_create_job", commandParameters); } catch (Exception ex) { throw ex; } }
public ContentResult SaveJob(AscmJob ascmJob_Model, string id, string argumentJson) { JsonObjectResult jsonObjectResult = new JsonObjectResult(); try { if (ascmJob_Model == null) throw new Exception("传参错误!"); if (ascmJob_Model.jobName == null || ascmJob_Model.jobName.Trim() == "") throw new Exception("作业名称不能为空!"); //bool isAdd = (id == null || id.Trim() == ""); bool isAdd = false; string jobName = ascmJob_Model.jobName.Trim(); AscmJob ascmJob = AscmJobService.GetInstance().Get(jobName); if (ascmJob == null) { ascmJob = new AscmJob(); ascmJob.jobName = jobName; isAdd = true; } ascmJob.comments = ascmJob_Model.comments.Trim(); ascmJob.enabled = ascmJob_Model.enabled; ascmJob.autoDrop = ascmJob_Model.autoDrop; ascmJob.startDate = ascmJob_Model.startDate; JobRepeatInterval jobRepeatInterval = new JobRepeatInterval( ascmJob_Model.freq, ascmJob_Model.interval, ascmJob_Model.byMonthDay, ascmJob_Model.byDay, ascmJob_Model.byTime); ascmJob.repeatInterval = jobRepeatInterval.ToString(); ascmJob.jobAction = ascmJob_Model.jobAction; List<AscmProcedureArgument> listProcedureArgument = null; if (!string.IsNullOrEmpty(argumentJson)) listProcedureArgument = JsonConvert.DeserializeObject<List<AscmProcedureArgument>>(argumentJson); //if (!string.IsNullOrEmpty(argumentJson)) //{ // List<AscmProcedureArgument> listProcedureArgument_Model = JsonConvert.DeserializeObject<List<AscmProcedureArgument>>(argumentJson); // if (listProcedureArgument_Model != null) // { // listProcedureArgument = new List<AscmProcedureArgument>(); // foreach (AscmProcedureArgument ascmProcedureArgument in listProcedureArgument_Model) // { // if (!string.IsNullOrEmpty(ascmProcedureArgument.argumentName)) // listProcedureArgument.Add(ascmProcedureArgument); // } // } //} ascmJob.listProcedureArgument = listProcedureArgument; if (isAdd) AscmJobService.GetInstance().CreateJob(ascmJob); else AscmJobService.GetInstance().UpdateJob(ascmJob); jsonObjectResult.result = true; jsonObjectResult.id = jobName; jsonObjectResult.message = isAdd ? "作业创建成功!" : "作业修改成功!"; } catch (Exception ex) { jsonObjectResult.message = ex.Message; } string sReturn = JsonConvert.SerializeObject(jsonObjectResult); return Content(sReturn); }
public void UpdateJob(AscmJob ascmJob) { try { //int count = YnDaoHelper.GetInstance().nHibernateHelper.GetCountByList("select count(*) from AscmJob where jobName='" + ascmJob.jobName + "'"); //if (count == 0) // throw new Exception("作业【" + ascmJob.jobName + "】不存在!"); AscmJob _ascmJob = Get(ascmJob.jobName); if (_ascmJob == null) throw new Exception("作业【" + ascmJob.jobName + "】不存在!"); var commandParameters = GetCommandParameters(ascmJob); //放在事务中执行报异常 //ExecuteOracleProcedure("ascm_scheduler.sp_update_job", commandParameters); ISession session = YnDaoHelper.GetInstance().nHibernateHelper.GetCurrentSession(); IDbCommand command = session.Connection.CreateCommand(); command.CommandType = CommandType.StoredProcedure; command.CommandText = "ascm_scheduler.sp_update_job"; Array.ForEach<OracleParameter>(commandParameters, P => command.Parameters.Add(P)); command.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } }
public OracleParameter[] GetCommandParameters(AscmJob ascmJob) { string[] arguments = null; if (ascmJob.listProcedureArgument != null) arguments = ascmJob.listProcedureArgument.Select(P => P.value).ToArray(); return new OracleParameter[]{ new OracleParameter{ ParameterName = "i_job_name", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.jobName, Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_job_type", OracleDbType = OracleDbType.Varchar2, Value = "STORED_PROCEDURE", Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_job_action", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.jobAction, Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_number_of_arguments", OracleDbType = OracleDbType.Int32, Value = arguments == null ? 0 : arguments.Length, Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_start_date", OracleDbType = OracleDbType.Varchar2, //OracleDbType.TimestampWithTZ, Value = ascmJob.startDate, Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_repeat_interval", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.repeatInterval, Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_end_date", OracleDbType = OracleDbType.Varchar2, //OracleDbType.TimestampWithTZ, Value = ascmJob.endDate, Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_job_class", OracleDbType = OracleDbType.Varchar2, Value = "DEFAULT_JOB_CLASS", Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_enabled", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.enabled, Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_auto_drop", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.autoDrop, Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_comments", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.comments, Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_credential_name", OracleDbType = OracleDbType.Varchar2, Value = null, Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_destination_name", OracleDbType = OracleDbType.Varchar2, Value = null, Direction = ParameterDirection.Input }, new OracleParameter{ ParameterName = "i_arguments_array", OracleDbType = OracleDbType.Varchar2, Value = arguments, Direction = ParameterDirection.Input, CollectionType = OracleCollectionType.PLSQLAssociativeArray } }; }
public OracleParameter[] GetCommandParameters(AscmJob ascmJob) { string[] arguments = null; if (ascmJob.listProcedureArgument != null) { arguments = ascmJob.listProcedureArgument.Select(P => P.value).ToArray(); } return(new OracleParameter[] { new OracleParameter { ParameterName = "i_job_name", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.jobName, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_job_type", OracleDbType = OracleDbType.Varchar2, Value = "STORED_PROCEDURE", Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_job_action", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.jobAction, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_number_of_arguments", OracleDbType = OracleDbType.Int32, Value = arguments == null ? 0 : arguments.Length, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_start_date", OracleDbType = OracleDbType.Varchar2, //OracleDbType.TimestampWithTZ, Value = ascmJob.startDate, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_repeat_interval", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.repeatInterval, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_end_date", OracleDbType = OracleDbType.Varchar2, //OracleDbType.TimestampWithTZ, Value = ascmJob.endDate, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_job_class", OracleDbType = OracleDbType.Varchar2, Value = "DEFAULT_JOB_CLASS", Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_enabled", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.enabled, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_auto_drop", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.autoDrop, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_comments", OracleDbType = OracleDbType.Varchar2, Value = ascmJob.comments, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_credential_name", OracleDbType = OracleDbType.Varchar2, Value = null, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_destination_name", OracleDbType = OracleDbType.Varchar2, Value = null, Direction = ParameterDirection.Input }, new OracleParameter { ParameterName = "i_arguments_array", OracleDbType = OracleDbType.Varchar2, Value = arguments, Direction = ParameterDirection.Input, CollectionType = OracleCollectionType.PLSQLAssociativeArray } }); }