as400中的Commit/Rollback概念

AS400 Commit与Rollback详解
本文详细介绍了AS/400系统中的Commit与Rollback概念,解释了如何通过这些机制确保数据库操作的完整性和一致性。文章还提供了具体的CLP与RPG示例代码,指导读者如何在实际工作中应用这些机制。
 

as400中的Commit/Rollback概念

数据库文件是AS/400中类型为*FILE的Object;它们既可以是PF又可以是LF,既可以是外部描述,又可以是程序描述。 

  访问数据库文件时使用落实控制(COMMIT/ROLBK),可以确保对数据库文件操作的以下两个结果之一: 
  1、全部数据库文件操作都是成功的(落实操作); 
  2、全部数据库文件操作都是无效的(取消操作). 

  用这种方法,从而保证了数据库文件的完整性;另外,可以把一组操作当作一个单元来处理。 

  使用落实控制,要做: 

  在AS/400上: 
  1、使用落实控制的准备:用CL命令CRTJRN(生成日志)、CRTJRNRCV(生成日志接收器)和STRJRNPF(日志物理文件). 
  2、通知AS/400启动和结束落实控制的时间:用CL命令STRCMTCTL(启动落实控制)和ENDCMTCTL(结束落实控制). 
  ●落实控制琐: 
  在STRCMTCTL命令中,要注意指定一个上锁级别,LCKLVL(*ALL),LCKLVL(*CHG)或LCKLVL(*CS),当你的程序在落实控制下操作,并且对一个文件的记录已在落实控制下进行了I/O(输入/输出)处理,记录由落实控制加锁。 
  ●落实控制范围:
  当用STRCMTCTL命令启动落实控制时,系统建立一个落实定义。落实定义包括作业中落实控制下修改的资料信息; 

  落实定义只适用于发出STRCMTCTL命令之后的作业并且在发出ENDCMTCTL命令结束。 

  落实定义范围指出了作业中哪些程序要使用落实控制,落实定义范围在活动组级或作业级。 

  缺省的落实定义范围是发出STRCMTCTL命令的程序所在的活动组,也就是活动组级。只在这个活动组中运行的程序才能使用落实定义。OPM程序将使用*DFTACTGRP落实定义;ILE程序用与之有关的活动组。 

  你可以在STRCMTCTL命令的落实范围参数CMTSCOPE上指定落实定义的范围。 

  在RPG程序中: 
  1、在要做落实控制文件的文件描述规范表上指出落实控制(COMMIT). 
  2、用COMMIT落实操作码实施对在落实控制下数据库文件的一组修改,或者用ROLBK取消操作码对在落实控制下数据库文件的一组修改。 

  ★注:落实控制只适用于数据库文件。


CLP:

CHKOBJ     OBJ(GTXLIB/RECEIVER) OBJTYPE(*JRNRCV)       

MONMSG MSGID(CPF9801) EXEC(DO)                         

CRTJRNRCV  JRNRCV(GTXLIB/RECEIVER)                     

ENDDO                                                  

CHKOBJ     OBJ(GTXLIB/JOURNAL) OBJTYPE(*JRN)           

MONMSG MSGID(CPF9801) EXEC(DO)                         

CRTJRN     JRN(GTXLIB/JOURNAL) JRNRCV(GTXLIB/RECEIVER) 

ENDDO                                                  

STRJRNPF FILE(COMMITPF) JRN(JOURNAL)                   

STRJRNPF FILE(COMMITP2) JRN(JOURNAL)                   

STRCMTCTL LCKLVL(*ALL)                                 

CALL COMMITR                                           

ENDCMTCTL                                              

ENDJRNPF FILE(COMMITPF) JRN(JOURNAL)                   

ENDJRNPF FILE(COMMITP2) JRN(JOURNAL)                   

 

RPG:COMMITR

FCOMMITPFUF  E           K        DISK         KCOMIT

FCOMMITP2UF  E           K        DISK         KCOMIT

C                     MOVE 'A'       COTYPE           

C                     SETOF                       88 

C           COTYPE    CHAINCOMMITR              33   

C  N33                MOVE 'N'       COTX            

C  N33                UPDATCOMMITR                99 

C           COTYPE    CHAINC2MMITR              33   

C  N33                MOVE 'N'       C2TX            

C  N33                UPDATC2MMITR                99 

C  N99                COMIT                          

C   99                ROLBK  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值