2013-02-12 60 views
0

我想检查大型机CICS区域的状态,无论它是使用JCL处于活动状态还是非活动状态,或者如果使用JCL可以为我提供一种通过shell脚本检查CICS区域状态的方法。该脚本/ JCL将用于向组发送邮件,表示该地区在预定时间处于活动状态或非活动状态。如何通过JCL/Shell脚本(unix框)检查CICS区域的状态

请帮我PROC/UTILITY柜面一个JCL的使用或帮助我的shell脚本的例子来实现它

解决方案:

我在执行下面的命令主屏幕

TSO STATUS <job-name> 

它给了我这个工作是否在运行。我在我的作业中执行了相同的TSO命令,并将输出转换为数据集。

回答

1

其他几个选项:

  • 您也可以运行状态(ST)命令 - 只要运行TSO背景(IKJEFT01)并发出status命令看到Status command适当的作业名。
  • 您可以尝试从批处理作业运行Cics命令,请参阅Batch Cemt New copy。如果它起作用CICS已启动,CICS未能启动,我会建议进行一次查询,而不是新副本。
+0

谢谢,我发现这很有用,即时尝试写这个 – ghosts 2013-02-27 07:14:45

3

只是简单地想一想,我看到了三种选择,都涉及使用SDSF(系统显示和搜索工具)。

请注意,并非所有的大型机商店许可证SDSF,这是IBM产品。存在ISV替代品;我知道这些但不熟悉它们。

如果这是在我工作的商店中完成的,我将与大型机建立一个SSH会话并提交批处理作业以执行链接中描述的Rexx代码。批处理作业可以检查CICS区域的状态并发送电子邮件。我的偏好来自以前完成所有这些事情,我只是没有像这样把它们放在一起。

您的大型机可能禁止使用Rexx,或者不允许SSH连接到他们的机器,或者不愿意设置Rexx接口到SDSF。他们可能对Java有同样的感受。

可能存在安全隐患,logonID和密码将在您的脚本中,是吗?那个ID将被授权做什么?剧本将如何获得保证?是否需要定期过期的ID的密码?

所有这些都是说您必须与(可能多个)大型机员工一起工作才能使此过程正常工作。这些问题都不是为了阻止你完成你的目标;您的目标必须在不损害系统安全性和完整性的情况下完成。

一些其他的事情要考虑...

你为什么要检查是否CICS区域是吗?如果这是因为(例如)你会开始一个批处理过程来向该区域发送消息(如果该消息已启动并通知某人已关闭),那么最好将错误处理构建到批处理过程中。

大型机商店通常会安装一些自动化软件,以在发生重大事件时通知用户 - 铃声响起,指示灯闪烁,传呼机停止响应,发送电子邮件等等。也许您正在处理的事情正在处理中以不同的方式。

+0

有没有像写一个JCL来检查CICS区域状态那样简单的方法? – ghosts 2013-02-13 10:54:29

+1

这就是我所描述的。 “批量执行”程序通过JCL执行。除执行其他程序外,JCL除了执行其他任何操作外没有任何其他功能您需要一个程序来检查CICS区域是否正在运行。其中一个程序是SDSF,其他人可以用Rexx或Java编写自己的程序。如果我提供Rexx代码来检查给定的区域是否启动并且JCL运行它,那么这将不会帮助您从Unix shell脚本执行它 - 因为您需要身份验证和授权,这是大部分答案我提供了更困难的部分,因为它涉及到人。 – cschneid 2013-02-13 12:43:27

+0

业务需要知道它是否已经启动?关键是在那个时刻需要知道谁或什么。正如cschneid所说,大多数企业大型机安装已经有了明确的通知和响应监控。 – zarchasmpgmr 2013-02-14 01:43:36

0

一种方法是将作业步骤添加到CICS区域。定义此作业步骤以始终运行,或者甚至可以更好地将其定义为仅在CICS作业步骤失败时才运行。

在此工作步骤中,调用向感兴趣的团体组中的每个人发送电子邮件的程序。

这样,当CICS区域异常终止时,所有人都会收到通知,但如果将作业作为常规操作的一部分干净地放下,则没有人会收到电子邮件。

或者,您可能希望在区域降低时始终发送电子邮件,无论原因如何。

该解决方案避免了必须轮询区域以查看它是否已启动。例如,如果区域名称更改会发生什么?脚本必须改变!或者如果添加了第二个或第三个生产区域会怎样?同样,所有的脚本都必须改变。

最后,您可以向该地区添加步骤零,以便在该地区出现时通知所有人!

+0

有趣的角度JCL代码,但不幸的是S122和S222将阻止最后一步运行。电子邮件没有保证交货时间,但如果S122和S222可以使用,则可以选择其他方法。 – 2013-09-05 14:34:08

相关问题