• Control M大全集


    Control-M使用手册
    1体系结构
    1.1架构说明

    CONTROL-M生产管理建立在一个三层结构基础上,它包括CONTROL-M/Enterprise Manager,CONTROL-M/Server和CONTROL-M/Agents三个组件。
    CONTROL-M/Enterprise Manager(以下简称:CONTROL-M /EM)提供一个统一的,适用于所有平台的GUI界面。它拥有自己的独立的数据库,通过Gateway与Control-M/Server进行连接,管理与控制所有的Control-M/Server与Control-M/Agent。
    Control-M的服务器(Server)Control-M 处理的核心,它是调度作业、管理作业处理流程、提供作业流状态信息的引擎。保存所有作业的定义及其调度规则。同一架构体系中Control-M/Server可以有多个(青岛银行目前只有一个)。
    Control-M/Agent负责在应用服务器上执行具体的作业,如批量调度,文件传输等等。Control-M/Agent可安装在各种操作系统上,并提供如AFT(文件传输),DATABASES(数据库存储过程),SAP(SAP软件相关)等功能模块方便不同的应用进行作业执行。

    注:另外在CONTROL-M/Server和CONTROL-M/EM Server支持高可用,保障整个系统的不受故障影响。

    作业生命周期:
    1.作业在Control-M/EM提供的GUI界面中进行定义。
    2.作业提交到Control-M/Server进行调度。
    3.Control-M/Server将作业提交到所需执行的Control-M/Agent进行执行。
    4.Control-M/Agent将作业执行信息返回到Control-M/Server。
    5.Control-M/Server将作业信息同步到Control-M/EM供GUI界面进行展示。

    青岛银行架构:

    青岛银行采用Control-M提供的DB-MIRROR进行灾备管理。
    DB-MIRROR:通过Control-M的自身的数据库实时同步对作业调度信息进行实时备份。
    1.2Control-M/EM

    Client components(EM客户端组件)(3个GUI):

    Configuration Manager
    用于管理EM Server的相关组件以及Control-M/Server和Control-M/Agent。
    Desktop
    定制作业,也可以视为编辑作业。
    Enterprise Manager
    监控运行环境,必要时也可以介入(比如【hold】、【rerun】)。其实就是连接到EM上,看到的是Control-M Server上的Job(只有order或upload后的job才能传到Control-M Server上,不然也就保存在EM Server上)

    Server components(EM Server组件):
    Gateway
    处理EM Server与Control-M Server的通信。因为1个EM要对应多个Control-M Server,所以通过Gateway来处理EM具体和哪个Control-M Server通信。Gateway只负责管理谁和谁通信,具体的通信是由CMS来处理。
    Configuration Management Server(CMS)
    与Control-M Server的Configuration Agent通信,通过它来处理管理员发布的请求。
    Global Alerts Server(GAS)
    管理报警信息给所有的EM GUI。
    Global Conditions Server(GCS)
    发布全局条件给不同的Control-M/Server。
    Batch Impact Manager(BIM)
    进行关键作业进行提前告警。
    Forecast Server
    帮助查看未来某一天所需执行的作业。
    Naming Service
    用于提供EM Server对外的服务接口。
    Configuration Agent
    用于与Control-M/Server进行通信,下发作业调度指令。
    1.3Control-M/Server 和 Control-M/Agent

    Control-M/Server
    Control-M/Server通过Gateway与Control-M/EM进行通信,通过Configuration Manager Server与EM进行指令交互。Control-M/Server拥有独立的数据库,通过server-to-agent与agent-to-server端口与执行作业的Control-M/Agent进行通信。
    Control-M/Agent
    如之前所说,Control-M/Agent用于执行作业与收集作业执行情况,并可以在Control-M/Agent上安装如AFT,Databases等功能模块(CM)。
    Remote Host
    Remote Host为Control-M/Agent的一种远程发送指令形式。即通过某一个Control-M/Agent向另一台未安装Control-M/Agent的应用服务器去下发作业。由于受网络以及用户的限制以及Remote Host无法加载功能模块,所以使用起来相对没有Control-M/Agent便捷。
    注:如果所需调度的作业为IBM的大机,则需要在大机上单独安装大机版Control-M/Server进行作业调度
    1.4关键词
    1.4.1Database,Definition file,Active Jobs file(AJF)
    Control-M/EM和Control-M/Server都含有一个数据库,主要包含两部分信息:
    Definition file 和 Active Jobs file(AJF),其中

    Control-M/EM中:
    	Definition file包含所有被定义的作业信息。
    AJF中包含所有正在调度的作业信息(包括执行情况),Control-M/Server会实时将AJF中的作业调度信息同步给Control-M/EM的AJF,供客户端能实时查看。
    

    Control-M/Server中:
    Definition file包含所有提交等待调度的作业信息。
    AJF中包含所有正在调度的作业信息(包括执行情况),即EM客户端组件Enterprise Manager所查看到的信息

    总结,Control-M/Server中Definition file可以认为是所有需要被处理的作业的仓库,AJF就是从这个仓库中取出的马上要处理的作业。

    1.4.2Schedule,order,force

    Schedule为作业的调度日期。可理解为作业允许被调度的日期,可在作业配置的Scheduling页进行配置,如下如:

    Job被调度,即Job被放置在Control-M/Server的AJF中,分为自动和手动2种方式:
    自动调度,每天CONTROL-M会通过NEWDAY形式自动扫描符合调度日期(Schedule)的作业,将作业自动调度。
    手动调度,主要是通过【order】和【force】操作。
    【order】方式必须符合调度日期(Schedule)
    【force】方式就不管作业的调度日期(Schedule)是否符合

    注:作业调度与作业运行是两个概念。作业被调度,并需要满足前置条件与执行时间的情况下才会运行。

    1.4.3Write,upload,load and download

    Write/Load:
    Write为将作业从本地客户端保存至Control-M/EM的Definition File中。可理解为仅仅将作业进行保存。Load则相反,从Control-M/EM的Definition File中将作业读取到本地。
    Upload/Download:
    upload为将作业从Control-M/EM的Definition File上传到Control-M/Server的Definition File中。只有将作业上传,Control-M才能通过order或NewDay方式写入到Control-M/Server的AJF中进行调度。DownLoad则相反。

    注意:我们在新建一个job后,如果想直接upload操作,系统会返回错误。必须先write到EM Server上,然后在upload操作。

    1.4.4New Day procedure,User Daily jobs
    每个Control-M/Server上会在每天的某一时刻运行一个处理过程,这个时刻就被称为New Day。主要的工作是,删除前一天的所有job,然后增加新的job到AJF中。
    具体操作实现可查看2.2.7。

    说明:在银行系统中,工作日和实际日是不一定一致的.例如,如果每天晚上的批处理要在第二天的凌晨4点才能做完,那么就可以指定银行系统工作日的变更时间为凌晨四点,而不是自然日的凌晨0点.
    AJF的New Day运行时间就是这样一个切换时间,即工作日切换时间.
    工作日和实际日期的不同,是为了满足业务系统核算的要求.

    2操作
    2.1启停各组件
    2.1.1Control-M/EM
    1.使用emuser用户执行root_menu命令,并输入用户名密码进行登录。

    2.选择1 - Activation Menu,其中2 - Start All为启动 7- Stop All为停止

    3.可通过选项1 – Check All进行状态验证与查看。

    2.1.2Control-M/Server
    1.使用emuser用户执行ctm_menu命令。

    2.选择1 - CONTROL-M Manager,其中2 - Start All为启动 5- Stop All为停止。

    3.可通过选项1 – Check All进行状态验证与查看。

    2.1.3Control-M/Agent
    1.使用root用户,在/home/ctmAgent/ctm/scripts目录下

    2.执行./start-ag为启动Control-M/Agent,执行./shut-ag为停止Control-M/Agent

    3.可执行ps –ef|grep p_ctm命令对Control-M/Agent进程进行查看验证,启动情况下有以下两进程
    root 14614668 1 0 17:42:26 pts/1 0:00 ./ctmAgent/ctm/exe/p_ctmat
    root 35586086 1 0 17:42:25 pts/1 0:00 ./ctmAgent/ctm/exe/p_ctmag

    2.2作业管理(Desktop)
    2.2.1Login(登录)
    登录前准备:
    在C:WindowsSystem32driversetchosts中配置所连接的Control-M服务器的IP与主机名映射

    1.打开Control-M Desktop 7.0.00,在Advanced中的填写主机名与端口号(默认13075),点击apply,输入用户密码进行登录。

    2.2.2Load(将作业从Control-M/EM展示到客户端)
    1.点击File => Load job form CONTROL-M/EM

    2.选择所需修改或查看的作业表,点击Load

    2.2.3Write(客户端界面上的作业保存到Control-M/EM)
    1.点击菜单栏File => Write to CONTROL-M/EM

    2.选择所要保存的作业表,点击write(右下角)

    2.2.4Upload与Download(向CTM/Server提交与下载作业)
    Upload为:将作业从Control-M/EM的Definition file上传到Control-M/Server的Definition file,DownLoad则相反

    点击菜单栏tools => Table Manager,选中一张作业表,在菜单栏上可进行upload与download操作。
    


    另外upload也可在作业界面上通过右键作业表进行操作

    2.2.5Order(将作业进行手动调度)
    1.对单个作业进行order,可选中单个作业,右键点击order Job

    Upload Table before ordering:调度作业前先进行upload操作
    Force:忽略调度日期,强制执行作业
    Order/Force with Hold:强制调度作业并且将作业初始为hold状态

    2.Order一个作业表
    点击菜单栏tools => Table Manager,选中一张作业表,在菜单栏上点击order

    2.2.6DELETE(删除作业)
    点击菜单栏tools => Table Manager,选中一张作业表,在菜单栏上点击delete
    Delete(Remote + Local):同时删除Control-M/EM与Control/Server中的该作业表
    Force Delete(Remote + Local):强制删除
    Local Delete:只删除Control-M/EM中的该作业表,如果该已设置成每日调度作业表,则调度仍然会正常执行
    Remote Delete:删除Control-M/Server中的该作业表,在Control-M/EM中仍会保存。

    2.2.7设置作业表为每日NEWDAY自动加载
    1.点击菜单栏tools => Table Manager,选中一张作业表,在菜单栏上点击Table Details

    2.在User Daily栏中设置SYSTEM(大写)并保存

    3.保存后一定要将该作业表进行upload操作,将User Daily信息上传到Control-M/Server
    4.通过终端,以ctmuser登录CTM服务器。执行ctmpsm 71 schedule table检验已成功设置。确认作业表的Daily Name为“SYSTEM”,如下图所示。

    2.2.8Save,Open(将作业保存为本地文件与读取作业文件)
    1.点击File => Save将当前界面上的作业保存为本地文件,Open则为打开本地作业文件。

    2.2.9Find Jobs(查询作业)
    1.点击菜单栏Edit => Find Jobs,可对当前界面上的作业进行搜索。

    2.填写过滤条件,可使用通配符,点击Find Next进行搜索。

    2.2.10Find and Update(作业批量修改)
    1.点击菜单栏Edit => Find and Update,可对当前界面上的作业进行搜索。

    2.上边Find为搜索所要修改的作业条件设置,点击右边Find可查出所有作业列表。
    3.中间Update为填写需要批量修改的内容,点击右侧update进行修改。
    4.下图修改内容为:修改当前界面上所有作业的Max Wait参数为1.

    2.2.11Job Template(作业模板)
    1.点击菜单栏Tools => Template Manager,可对当前界面上的作业进行搜索

    2.点击Add Job Template进行模板设置

    3.在作业定义时可以选择模板,也可将目前作业设置成模板。

    2.2.12Authorization(用户权限设置)
    1.点击菜单栏Tools => Authorizations,进行用户权限设置

    2.权限分为用户与组,如果改用户属于该组,那该组的所有权限该用户都将默认拥有

    3.权限配置:
    General:用户基本信息及密码设置

    Member Of:用户所属组

    Active:用户在监控视图中Control-M Enterprise Manager 7.0.00 (Default)所能查 看的作业与执行的权限

    Privileges:用户对各组件的操作权限

    Tables:用户对作业表的操作权限

    Prerequstite Conditions:用户对Condition条件的操作权限

    Owmer:允许调度的作业定义用户

    Control Resources:用户对控制资源设置的权限
    Quantitave Resources:用户对定量资源设置的权限
    Gblbal Condition:用户对全局变量设置的权限
    Calenders:用户对日历表的设置权限

    2.2.13Load Forecast(查看未来某一天将调度的作业)
    1.点击菜单栏File => Load Forecast,可对当前界面上的作业进行搜索。

    2.选择调度日期,点击Load进行打开。

    3.展示结果。

    2.3普通类型作业定制
    2.3.1General
    Control-M:作业所属的Control-M/Server名
    Job Type:作业类型,例如:OS(普通作业),AFT(文件传输),FileWatch(文件监测)Databases(数据库存储过程)
    Job Name:作业名(系统名_操作简称)
    Task Type:Job - 后台运行的脚本等等。
    Detached - 运行可执行的文件。
    Command - 执行操作系统命令。
    Dummy - 不负责job和系统命令的执行,而是指示control-M执行后续动作,如增加输出条件等。
    File Name:文件名(脚本程序名)
    File Path:路径
    Command:命令(也可用于全路径执行脚本)
    Description:作业描述(可使用中文)
    Parent Table,Application,Group:三层分类分组。Parent Table就是该作业的Table名
    Owner:脚本或命令执行用户
    Author:作业的制定人(用于描述)

    2.3.2Scheduling
    作业允许调度日期,如允许每天调度,则选择所有的Month Days与Months即可

    2.3.3Execution
    Node ID/Group:填写该作业所需运行CTM/Agent的名字(该名字可在CCM中查看)
    Wait for confirmation:作业运行时是否需要进行手动确认(测试时可进行勾选)
    Priorit:作业抢占系统资源优先级(0<9<a<z<A<Z<AA)
    Critical:作业抢占系统资源最高级
    Submit:作业允许调度的时间范围。
    例如:
    19:00 to _____ 表示作业19点之后到第二天NEWDAY之前该作业满足前置condition的情况下运行。
    1900 to 2100 表示作业19点之后到21点时间段范围内如果前置条件满足则进行调度,如果前置条件在21点之后到达,则该作业不运行。
    Cyclic:作业循环,点击Set后可以进行循环运行的设置。
    Maximum:作业最多运行次数
    MaxWait:作业运行出错或未运行在AJF(监控界面)中保存的的天数。(建议上线时设置为1)

    2.3.4Conditions
    In Condition:作业运行所需的前置条件。
    Out Condition:该作业执行完成生成的条件。(建议格式为:JobName-ENDED-OK)

    Condition设置可以为一对一,一对多和多对一。

    2.3.5Resources
    1.Quantitative Resources 数量资源,可控制作业并发数
    需要在Control-M Enterprise Manager 7.0.00 (Default)中 Tools => Quantitative Resources中设置资源名与数量

    作业配置时可配置该作业使用该资源的份额。

    2.Control Resources 控制资源,类似文件、数据库,将其设置为共享或者独享形式。控制资源则用于控制不同的作业对系统共享资源的使用.假设一个作业A在写一个文件时,另外两个需要从此文件中读数据的的作业B,C不能启动,于是你可以为此文件定义一个控制资源,作业A定义此资源为排它性资源(exclusive),作业B,C中定义此资源为共享资源,这样,当作业调度执行时,如果A在执行,则B, C不能被调度执行,同一时间只能有一个作业占有该资源。

    2.3.6Set
    1.设置变量,供作业定义或作业执行的脚本中使用。
    常用:%%$CALCDATE %%DATE-1
    代表作业运行时当前系统日期的前一天,格式为YYYYMMDD
    %%CALCDATE %%ODATE-1
    代表作业运行时当前系统日期的前一天,格式为YYMMDD
    %%$ODATE
    代表作业的调度日期,格式为YYYYMMDD
    %%ODATE
    代表作业的调度日期,格式为YYMMDD
    在作业定义时,如命令行中可用%%PARM形式使用。在执行的脚本中也可通过$PARM进行读取。

    2.3.7Steps
    用于作业的异常逻辑处理
    例如 ON Statement Statement=* Code=COMPSTAT=1
    DO OK
    以上代表当作业返回码是1的情况下 作业标识为成功
    ON Statement Statement=* Code=NOTOK
    DO Force-Job Table=XXXX JobName=XXX Date=ODAT
    以上代表作业执行出错的情况下强制执行Force-Job所配置的作业
    DO操作中说明: OK 作业执行成功
    NOTOK 作业执行失败
    Rerun 作业重跑
    Stop Cyclic 停止循环
    Set-Var 设置变量
    Shout 告警
    Force-Job 强制执行作业
    Sysout 屏幕输出
    Condtiion 对Condition进行添加或删除
    Mail 发送邮件
    Remedy Remedy软件相关

    2.3.8PostProc
    作业处理结束后来发送告警(在alert告警台生成告警信息)

    【PostProc】when中,例如
    late sub 9:00 这个作业晚于9:00还未被agent执行,进行告警。
    late time 9:00 这个作业完成时间晚于9:00,进行告警。
    executing >30 执行时间超过30分钟,进行告警。

    Urgency中选择告警级别。
    在Message中可以设置自定义告警信息。

    2.4特殊类型作业的配置
    2.4.1AFT(文件传输类型作业)
    帐号配置:
    1.登陆Control-M Configuration Manager,点开Agent on control(control某Control-M/Agent的名字),选择CM(FILE_TRANS)。

    2.右键点击右侧CM(FILE-TRANS)行,列出对话框,选择Account Management,弹出AFT账户管理菜单:

    3.添加账户:点击左上角“+”号(New Account),输入一个Account Name,选择一个EM Users,点击“Add”将其加到右侧栏:

    4.设置host1的信息。通讯协议缺省为FTP,可修改为SFTP:(如为Agent本机则直接勾选Local CM)

    5.设置host2的信息:

    6.点击“Next”:

    7.点击“Next”,显示之前的配置信息:

    8.点击“Test”,测试设置是否正确:

    9.点击“Finish”,完成AFT账号设置。

    作业配置:
    10.创建一个新的作业,选择CONTROL-M,选择Job Type为AFT。点开Execution栏,填写Node ID:XXX(XXX为账号所在Control-M/Agent名字)

    11.打开FILE_TRANS栏,点击“Load…”,选择账号,点击“OK”。

    12.填写传输的指定路径和文件,Adcanced中可对传输的源文件与目标文件进行特殊处理设置(如传输完成后进行权限修改等)。

    1. 其他信息与普通作业一样,正常填写。
      2.4.2FileWatch(文件监测作业)
      监测单个文件
      1.将作业Job Type选择File Watcher,注:owner一定要填写Control-M/Agent安装时所创建的用户(ctmAgent/ctmagent)

    2.填写FileWatch栏:
    Path:所检测文件的绝对路径;
    备注:每层路径必须是ctmagent用户有权限访问的;
    Mode:CREATE——检测文件生成;DELETE——检测文件删除(不常用)
    Min detected size:文件有效检测的最小容量,单位字节。通常可设置为0;
    Interval between file searches:检测文件生成的轮询时间,单位秒;
    Interval between filesize comparison iterations:检测文件容量变化的轮训时间,单位秒;
    Number of iterations:检测文件容量变化的轮询次数
    Time limit for the process:作业执行时间,单位分;
    或设置时间段,如下:
    Starting time for detecting files:作业开始时间;
    Absolute stop time:作业结束时间;

    监测多个文件

    1.轮询多个文件需要使用底层utility来实现,配置作业为普通类型,执行命令ctmfw –input 配置文件(全路径)
    该配置文件需放置在所需轮询文件的应用服务器上

    2.配置文件编写如下:
    INTERVAL:轮询间隔时间设置
    MIN_SIZE:文件监测最小SIZE
    MIN_DETECT:轮询到文件后文件大小比较次数
    WAIT_TIME:最长监测时间(分钟),超过该事件,如有文件未监测到则作业报错。

    2.4.3DataBase存储过程
    数据库存储过程帐号配置:
    1.需要首先在需要调用存储过程的Control-M/Agent上安装存储过程插件。然后选择帐号管理

    2.选择数据库类型与版本:

    3.填写相关数据库连接信息:

    4.设置相关连接参数:

    数据库存储过程作业配置:
    5.创建一个新的作业,选择CONTROL-M,选择Job Type为Databases。点开Execution栏,填写Node ID:例如PAM_81_50(PAM_81_50为账号所在Control-M/Agent名字)

    6.打开Databases栏,点击“Load…”,选择账号,点击“OK”。

    7.填写或选择存储过程的SCHEMA与NAME:

    8.其他作业参数正常配置
    2.4.4AS400类型作业
    1.选择Job Type为OS/400 Program或OS/400 Full。
    2.详细配置可请OS400工程师参与进行作业配置。
    3.其他页配置与普通作业相同。

    2.5监控管理(Enterprise Manager)
    2.5.1查看当天作业(AJF)
    1.菜单栏File ==> Open ViewPoint ==> 选择All Active Job(当前正在调度的作业)

    2.点击OK后如下显示:

    2.5.2查看历史作业运行情况

    1. 菜单栏File ==> Open Archived ViewPoint ==> 选择All Active Job

    2.选择所需查看的日期

    3.作业展示

    2.5.3统一监控控制台

    1. 工具栏点击alerts(红色感叹号)。

    2.点击connect。

    3.监控台中可以对报错作业的时间,作业名,以及自定义报错信息和作业的其他相关信息等(值班人员通过查看监控台即可进行作业监控)。
    PS:信息列的排列顺序可通过拖拽进行调整。

    4.右键单条报错信息,可点击Find Job直接查询到报错作业,可点击Handle对已处理的报错进行标识。
    2.5.4作业操作

    1. 作业呈现不同颜色代表如下情况:

    灰色 等待执行(运行时间未到或前置条件未生成,可通过右键=>why查看详细信息)
    粉红色 需要人工确认才能执行的作业
    黄色 正在执行
    绿色 作业执行成功
    红色 作业执行出错
    蓝色 等待资源或该作业所需CTM/Agent不可用
    2.右键相关作业操作功能如下:
    properties 查看作业配置信息
    hold 锁定当前作业(暂停)
    free 释放当前作业(与hold相反)
    confirm 作业确认,只有作业为等待确认(粉红色)才能点击
    rerun 作业重跑,只有作业为出错(红色)时才能点击
    delete/undelete 删除/恢复作业,将作业从当前作业调度视图中删除
    kill 强行中止正在执行的作业,只有作业正在执行(黄色)时并且需要先hold才能中止进程
    Force OK 强制将作业设置成运行成功(作业不会执行)
    Bypass=>run now 忽略任何时间与条件限制,立即执行该作业
    Sysout… 查看当前作业的屏幕输出
    Statistics 查看当前作业历史运行记录
    View JCL/Scripts 查看当前作业脚本,只有配置为job类型的shell脚本作业才能查看
    Why 查看当前作业未能运行的理由,只有未执行(灰色)作业才能点击
    Neighbourhood 查询当前作业相邻近的作业
    2.5.5Condition管理
    1.工具栏点击Tools => Prerequisite Condition

    2.Condition条件与日期相绑定,正常生产环境中同一Condition每天生成一次,不会相互冲突。测试环境中如需要将一个批量流程重复跑多次,则需要每次将相应的Condition进行删除,否则作业将会不安Condition逻辑同时执行。
    3.在Condition管理器中可以对Condition进行搜索,添加与删除动作。

    2.5.6Resource管理
    1.工具栏点击Tools => Quantitative Resources

    1. 在资源管理器中可对资源进行定义,用于作业定义时的资源使用(控制并发)
  • 相关阅读:
    linux(ubuntu) 安装 node.js
    正反向代理
    js正则表达式----replace
    webpack开发小总结
    稳定排序和非稳定排序
    树状数组 --- (离散化+树状数组、求逆序对)
    编程之美初赛第一场 题目3 : 活动中心
    巴什博弈 杭电 1847
    巴什博弈 杭电 1846
    约瑟夫环问题详解
  • 原文地址:https://www.cnblogs.com/huang6450/p/12148760.html
Copyright © 2020-2023  润新知