我想知道是否可以基于服务器可用性为作业添加前提条件。假设作业J从作业服务器JS运行,并且它与其他两个服务器SERVER1和SERVER2进行交互。
我要配置作业J,使其仅在SERVER1和SERVER2可用时才运行。如果两个服务器中的任何一个发生故障,则作业应等待服务器重新联机。
答案 0 :(得分:0)
我不知道这应该是评论还是答案,但是您要寻找的内容在Control-M中本身并不可用。
我可以为您想到的最简单的解决方案是将一个睡眠作业配置为在SERVER1和SERVER2上运行,并将它们作为作业J的前身。这些睡眠作业仅在SERVER1 / 2上的代理可用时才运行。在执行作业J之前确认服务器可用性。
或者,您可以编写一个脚本来循环等待SERVER1 / 2响应ping,然后完成并将该作业配置为作业J的前身。
答案 1 :(得分:0)
我仍然是Control-M的新手,但是我们已经实现了具有类似目标的解决方案,并带有一个工作钩子来证明节点。
假设,您的目标服务器(节点)称为JS,它与SERVER1交互(我们将其命名为node01)。以后可以添加任意数量的服务器/节点,让我们来看一个节点。
概述组件:
职位名称:node01_check_resource
Job Goal ---> Check if quantitative resource already existing
Job OS Command ---> ecaqrtab LIST node01_run
Result yes ---> do nothing,
Result no ---> Job node01_create_resource, command: ecaqrtab ADD node01_run 100 (or as many as you wish)
职位名称:node01_check(循环)
Job Goal ---> Check if node up
Job OS Command ---> As you define that you node is up: check webservice, check uptime, wmi result, ping, ...
Result up ---> rerun job in x minutes
Result no ---> go for next job
职位名称:node01_up-down
Job Goal ---> Case for switching between status up and status down
Job OS Command ---> ecaqrtab UPDATE node01_run 0
On-Do action: ---> when job ended, remove condition that node01_check cannot start (as is defined as cyclic job)
职位名称:node01_check_down(循环)
Job Goal ---> Check status while known status is down
Job OS Command ---> As defined in node01_check
Result down ---> Do nothing as job is defined as cyclic
Result up ---> Remove some contitions
职位名称:node01_down-up
Job Goal ---> Switching all back to normal operation
Job OS Command ---> ecaqrtab UPDATE node01_run 100
Action ---> Add condition that node01_check can run again
您可以为多个节点定义此类作业挂钩,并且可以在每个作业中定义哪些节点应该启动并正在运行(意味着定量资源大于0的节点)。可以监视多台主机,并且仍可以根据需要设置相同的资源。
除非您已经找到合适的解决方案,否则希望对您有帮助。