资源描述
主机平台版本管理紧急处理流程及操作说明
为了保证主机生产系统的安全稳定运行与版本的规范化管理,正常情况下,应用程序是由版本管理员通过版本管理工具ENDEVOR进行统一编译,并把编译生成的目标码移到生
产机,来达到版本的统一化管理。在节假日或夜间批处理时,当运行保障人员发现程序运行有问题,需要紧急修改程序,此时版本管理员可能不在工作岗位,变更不能按正常流程进行。为了在紧急情况下,仍能保证生产的稳定运行与版本的统一管理,特制定本流程,来进行紧急情况下的版本管理。在ENDEVOR的5个阶段中,有一个EMR紧急处理阶段,在出现类
似问题时,运行保障人员或者开发人员可以对程序进行紧急修改,并将程序加到EMR阶段进行编译,将编译生成的目标码移到生产机。具体流程与操作方法如下:
一、紧急情况处理流程:
1、向运行保障部值班人员取得紧急用户,用紧急用户登录ZDVP系统的Endevor环境;
2、在Endevor中查询有问题的程序,如果此程序在紧急处理阶段(EMR ),说明这个程序运行有问题被紧急修改过,还没有被版本管理员按正常流程处理就又出现问题,需要再次进行紧急修改,这时一定要从紧急处理阶段(EMR )把这个程序取出(Retrieve,存放到指定数据集中进行修改;如果有问题的程序在投产阶段(PRD ),则从投产阶段(PRD)把这个程序取出(Retrieve,)存放到指定数据集中进行修改;
在查找过程中,用BUILD USING MAP可能查不出在EMR阶段的内容,因此应该首先指定EMR 阶段进行查找,即:“ENVIRONMENT ===> PROD ,STAGE ===> E ”,然后再从DEVP 阶段选上 BUILD USING MAP 进行查找,方法为 “ENVIRONMENT ===〉DEVP,STAGE ===> D "。
3、把修改后的程序加到(ADD )紧急处理阶段(EMR),Endevor自动编译程序生成新的输出。注意要查看作业的输出结果,返回码小于8为正常;
4、通知系统值班人员或有权限更新生产系统执行码的运行保障人员,直接从版本库的紧急处理阶段(EMR)中拷贝执行码到生产机:
编译后的联机程序或函数的输出放在与
ENDV。
编译后的批量程序的输出放在:ENDV。EMR。BETA3.BA T.LOAD与
ENDV.EMR 。BETA3.BAT。DBRM
5、第二个工作日通知版本管理员做后续的处理工作。
二、操作作业的功能说明:
紧急情况操作的有关作业放在DEVP15.ENDV。JCL数据集中。其中:
ELERETP--从Endevor的投产阶段(PRD )中retrieve序的作业
运行保障人员如果发现某个程序在运行过程中出现异常,经查询发现此程序在投产阶段
(PRD),可通过该作业来从版本库的投产阶段(每个工作日下班之前,版本管理员都会将当天更新的程序迁移到PRD阶段)中提取程序源码,存放在某个PDS中(如DEVP15.AAWORK.SRC)。提交此作业前,用户只需修改作业最后两行的红字部分,来指定retrieve的程序。例如想提取AI系统中CCB类型的AIB0101程序,对应ELERETP作业应改为:
SET FROM ENVIRONMENT PROD SYS AI SUB BETA3 STAGE P 。
RET ELE AIB0101 FROM TYPE CCB
修改并提交后,即可得到该程序源码。这里的程序名可以使用通配符,例如AIB*,这样就会取出所有AIB开头的程序。通配符对以下操作同样适用。
ELERETE--从Endevor的紧急处理阶段(EMR )中retrieve序的作业
在双休日或长假期间,当运行保障人员发现某个程序在运行过程中出现异常,修改后将程序加到EMR中。如果EMR中的程序在未被版本管理员处理的情况下又出现问题,仍然需要重新修改源码,这时就必须从EMR阶段提取源码而不是从PRD阶段提取。例如想提取AI系统中CCB类型的AIB0101程序,对应ELERETE 作业应改为:
SET FROM ENVIRONMENT PROD SYS AI SUB BETA3 STAGE E
RET ELE AIB0101 FROM TYPE CCB 。
请注意红字部分,与前一种情况相比,二者的作业内容只相差一个字母,‘P’代表从PRD阶段提取源码,而‘E’代表从EMR阶段提取源码。
ELERETVL 取出PRD阶段中任意版本的程序源代码
在某些情况下,可能需要将以前历史版本的程序代码取出,修改后作为新版本重新加入到版本库中。取历史版本时请先确认版本的VERSION与LEVEL,然后分别填在作业中的VER与LEV中.例如取AIB0101的1.02版源码,对应ELERETVL 作业应为:
SET FROM ENVIRONMENT PRODSYS AI SUB BETA3 STAGE P .
RET ELE AIB0101 VER 01 LEV 02 FROM TYPE CCB .
请在需要指定历史版本号的时候再使用本作业,因为这样取出的源码很可能不是现在生产上应用的,容易产生各种问题。必须取历史记录时请与开发组确认。
ELEADD-一向Endevor中增加程序的作业
取出程序源码,经过开发人员修改后,可通过本作业在EMR阶段重新编译该程序。同样只需要修改后两行内容,但语法上与ELERET不同,注意不能混用:
SET TO ENVIRONMENT PROD SYS AI SUB BETA3 STAGE E 。
ADD ELE AIB0101 TO TYPE CCB
提交本作业后,新程序被加到到版本库并生成新的目标码。不论源码是从哪个阶段中提取出来的,最后都必须加到EMR阶段。
ELEDEL 删除Endevor中源码与目标码的作业
如果在更新版本库的过程中,操作员出现误操作,增加了不希望重编译的程序,则可通过本作业将该程序进行删除。
SET FROM ENVIRONMENT
PROD SYS AI SUB BETA3 STAGE E
DEL ELE AIB0101 FROM TYPE CCB
删除操作请谨慎使用.
SRCHTST6 搜索函数调用关系的作业
如果需要修改某一函数,那么凡是调用该函数的所有程序都需要进行重新编译,如果调用这个函数的程序很多,这一工作将变得非常烦琐,可能会占用大量宝贵的日终结帐时间。因此,我们提供本作业来实现ENDEVOR自动生成程序重新编译作业的JCL,来实现调用某
一函数的所有程序一次性全面编译。
例如:要修改函数BA TWRBEM ,则可以在版本库的PRD阶段搜索调用此函数的所有程序,并且将这些程序的名字列出来准备编译。这个作业执行的结果是在指定数据集如 DEVP15.ENDV。JCL )中生成一个指定名字的member(如GENPGM2)。下面的红字部分为本作业的关键所在:
SET BUILD ACTION GENERATE
SET TO DSNAME ’ DEVP15.ENDV .JCL' MEMBER ' GENPGM2 ’ .
LIST ELEMENT*
FROMENVIRONMENT PROD
SYS *
SUB BETA3
TYPE *
STAGE P
WHERE INPUT COMPONENT EQ BA TWRBEM
作业中GENERA TE选项指明了对搜索出的各程序的动作是编译;
第二行指明新生成的member存放的位置是数据集中的GENPGM2
成员中;
在最后一行的BA TWRBEM是被调用的函数名,这一条件限定了执行结果中是所有调
用该函数的程序名。
提交本作业后,GENPGM2即被生成,但其内容是各程序的编译语句,并不能直接执行,
需要加上下面的作业头才能运行。
GENPGM1编译调用函数的主程序的作业头
这个MEMBER 与上面的GENPGM2 都是不完整的作业,需要将二者合并后才能够提交运行。这样可以大大提高操作人员的工作效率,不必再按函数调用关系查找程序名然后再逐个编译。
合并的操作可通过PDS提供的CUT、PASTE方法来实现.
三、Endevor中程序类型说明
在遇到紧急情况时,由于没有版本管理员在场,版本库中的许多特殊设置方式可能被忽略掉,操作中容易导致不必要的失误,因此在这里有必要强调一下在版本库中需要特殊记忆的一些类型设置.
在Endevor中,绝大部分应用子系统的程序类型都一样:
头文件一CH
子函数CCOP
联机程序一CCO
批量程序-CCB
但有些系统的调用顺序比较特殊,就为它们单独定义了一些系统类型,具体如下:
1、资产业务系统(CAS)
Endevor为资产业务系统定义了 10个系统:AM, BD, CL, CO EF,EL, IF HC,PI,
PL.从表面上看这10个系统在ENDEVOR中的地位与AI、PB、SC等传统系统处于同
一级别,但从业务角度来说这10个系统都属于CAS资产业务范畴。
CAS系统是传统贷款系统LN在功能上的延伸,因此在开发CAS的过程中,HC系统中也存在一些以LN为开头来命名的程序,例如LNO3497就是HC系统中的程序,而LNO3494就是LN系统中的程序。
CAS 的程序类型设置也比较特殊,分别是:
头文件一一CH
子函数CCOPCAS
联机程序一CCOCAS
批量程序一CCBCAS
2、客户信息系统(CIF)
CIF系统需要调用大前置的底层函数库GFX,因此版本库中的CIF系统与GFX系统实际上都是客户信息系统的程序,并且在修改GFX系统函数的同时,一定要查询CIF中调用它的程序并重新编译。GFX系统包括的类型有:
头文件一一CH
子函数 --CCOPCIF
CIF系统包括的类型有:
头文件一一CH
子函数 CCOPCIF
联机程序一CCOCIF
暂时没有批量类型。
建议:从Endevor的PRD阶段Retrieve程序之前,首先按程序或函数名查询,只输入子系统名BETA3与程序名,查出此程序所在的系统与程序类型,避免加错了。
3、特殊情况:
ATBRUNON是批量程序,但内部含有CICS LINK语句,其编译方法特殊,编译的作
业在 CPAC。CMDPROC(CCBZ) 中。
公共函数BATGJRN 在版本库中的类型为EXCI,编译该函数后有些公共函数、很多批量程序都要重新编译,即使在紧急情况下也不允许编译该函数.
技术总监室版本管理组
24. 9
展开阅读全文