SQL Server 作业中的大型机作业依赖性

Posted

技术标签:

【中文标题】SQL Server 作业中的大型机作业依赖性【英文标题】:Mainframe job dependency in SQL Server job 【发布时间】:2019-10-18 20:50:10 【问题描述】:

我有一个 SQL Server 作业,它必须检查大型机 DB2 作业是否完成(针对数据),然后运行 ​​SSIS 包。我计划添加步骤 1 以检查作业是否完成。我不能直接在存储过程中添加作业名称,这是我们编写两个 SQL 作业依赖项的方法之一。有没有其他办法?

【问题讨论】:

【参考方案1】:

您可以发出 REST 调用吗?有可用于检查作业状态的 z/OSMF REST API。 GET /zosmf/restjobs/jobs/&jobname/&jobid

更多信息: https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.izua700/IZUHPINFO_API_GetJobStatus.htm

【讨论】:

【参考方案2】:

我不太喜欢 Patrick Bossman 的想法,主要是因为它是轮询,还因为可靠地确定与 Db2 相关的工作是否已成功完成的能力在于该机器本身。最好不要尝试第二次猜测是否成功完成并处理错误。大型机几乎肯定已经在做这一切了。

假设面向批处理的数据流甚至对最终用户及其需求有意义,如果 IBM Z 机器本身在完成其工作步骤后向下游推送某种通知会更好。我假设这台机器运行的是 z/OS 操作系统,但如果我的假设不正确,请发表后续文章。

z/OS 可以通过多种方式“轻拍”其他系统的肩膀,就像以前一样。一种相当直接的方法是使用作业调度程序来完成它。例如,如果您正在运行 IBM Z Workload Scheduler(可能是 z/OS 上最常见的作业调度程序),则可以发出各种各样的通知“点击”。它们在本文档中进行了解释(我撰写本文时的当前版本链接,可能会发生变化):

https://www.ibm.com/support/knowledgecenter/s-s-rULV_9.5.0/com.ibm.tivoli.itws.doc_9.5/eqqlwmst.pdf

作为一种模式,IBM Z Workload Scheduler 可以继续处理任何与 DB2 相关的作业步骤,然后当作业成功完成时,IBM Z Workload Scheduler 可以使用其 MSSQL 作业类型直接通知 Microsoft SQL Server 运行其作业.在上面链接的出版物中搜索“MSSQL”以找到这些参考。如果您出于某种原因不喜欢 MSSQL 类型,也可以使用其他“轻拍”,例如 Web 服务调用。

z/OS 上的其他作业调度程序可能具有类似的功能。处理作业调度的人(如果不是您)应该能够与您合作,为调度程序添加“轻拍”。

如果有更多关于数据流及其业务背景的信息,我可能还有其他一些建议。

【讨论】:

以上是关于SQL Server 作业中的大型机作业依赖性的主要内容,如果未能解决你的问题,请参考以下文章

Oracle大型数据库 作业9

无法为大型数据集运行 Spark 作业

调度多个相互依赖的 SQL Server 代理作业的做法是啥?

使用 FTP 和 C# 启动现有大型机作业

从 Windows 机器触发大型机作业

大型机批处理作业触发