




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,独立事务,曾创能,.,2,目标,通过本章学习,您将可以:了解独立事务的概念和用途了解独立事务的用法,.,3,问题的提出,问题想在执行当前一个由多个DML组成的transaction(事务)时,为每一步DML记录一些信息到跟踪表中,由于事务的原子性,这些跟踪信息的提交将决定于主事务的commit或rollback。如:begininsertsetlogupdatesetloginsertsetlogcommit;end;解决方案传统的解决方案之一:程序员不得不把这些跟踪信息记录到类似数组的结构中,然后在主事务结束后把它们存入跟踪表。,.,4,什么是独立事务,独立事务独立事务(AUTONOMOUSTRANSACTION,简称“AT”),又叫“自治事务”。AT是由主事务(以下MT)调用但是独立于它的事务。独立事务的特点在AT被调用执行时,MT被挂起,在AT内部,一系列的DML可以被执行并且commit或rollback.由于AT的独立性,它的commit和rollback并不影响MT的执行效果。在AT执行结束后,主事务获得控制权,又可以继续执行了。,.,5,Oracle中独立事务的用法,条件编译PRAGMAAUTONOMOUS_TRANSACTION独立事务的使用范围独立事务可以使用在以下的位置:存储过程和函数;本地过程和函数;包;对象方法;匿名块的最顶层。,.,6,使用独立事务的注意事项,注意事项在匿名PL/SQL块中,只有顶级的匿名PL/SQL块可以被设为AT如果AT试图访问被MT控制的资源,可能有deadlock发生Package不能被声明为AT,只有package所拥有的function和procedure才能声明为ATAT程序必须以commit或rollback结尾,否则会产生Oracle错误ORA-06519:activeautonomoustransactiondetectedandrolledback,.,7,独立事务举例(1),记录结算日志(AT)PROCEDUREup_SetClearLog(i_TaskIDINVARCHAR2,i_LogInfoINVARCHAR2,i_LogLevelINVARCHAR2DEFAULTINFO)ISPRAGMAAUTONOMOUS_TRANSACTION;l_Logtimet_clear_log.logtime%TYPE;l_LogSeqNoNUMBER;l_Tradingdayt_clear_log.Tradingday%TYPE;BEGINl_Tradingday:=TO_CHAR(SYSDATE,YYYYMMDD);l_Logtime:=TO_CHAR(SYSDATE,HH24:MI:SS);SELECTseq_clear_log_id.NEXTVALINTOl_LogSeqNoFROMDUAL;INSERTINTOt_clear_log(TRADINGDAY,id,logtime,taskid,loglevel,loginfo)VALUES(l_Tradingday,l_LogSeqNo,l_Logtime,i_TaskID,i_LogLevel,i_LogInfo);COMMIT;EXCEPTIONWHENOTHERSTHENNULL;ENDup_SetClearLog;,.,8,独立事务举例(2),结算PROCEDUREup_settle(o_RetCodeOUTINT,-返回结果码o_RetMsgOUTVARCHAR2,-返回结果信息i_TradingDayINt_MemberEx.TradingDay%TYPE-交易日期,默认为当日)IS-定义变量l_locationVARCHAR2(128);-当前位置l_procVARCHAR2(128);-存储过程名l_levelVARCHAR2(128);-错误级别BEGINl_proc:=up_settle;l_level:=INFO;o_RetCode:=1;o_RetMsg:=操作失败;up_SetClearLog(l_proc,Begin,l_level);l_location:=客户持仓处理;up_DoClientPos(o_retCode,o_retMsg,i_tradingday);l_location:=会员出入金处理;up_DoMoneyIO(o_retCode,o_retMsg,i_tradingday);l_location:=会员资金处理;Up_DoMemberFund(o_retCode,o_retMsg,i_tradingday);up_SetClearLog(l_proc,End,l_level);commit;o_RetCode:=0;o_RetMsg:=操作成功;RETURN;EXCEPTIONWHENOTHERSTHENo_RetCode:=1;o_RetMsg:=操作失败,出现错误!错误位置:|l_location|chr(10)|error:|sqlerrm;up_SetClearLog(l_proc,o_RetMsg,ERROR);ENDup_s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 郑州市物流职业学院招聘考试真题2024
- 巧家初二下期数学试卷
- 莆田市一检数学试卷
- 你会怎么做高考数学试卷
- 2024年湖南大众传媒职业技术学院招聘考试真题
- 曲江一中初一数学试卷
- 宁波面积小学数学试卷
- 蓬莱初一上学期数学试卷
- 七上典中点北师大版数学试卷
- 宁夏银川市数学试卷
- 2025年广西玉林产业投资集团有限公司社会招聘5人笔试备考题库及答案解析
- 《质量管理与可靠性》课件-第4章 质量检验
- 2025年财政部高层次财会人才选拔考试历年参考题库含答案详解(5套)
- 电子技术基础说课
- 医院科室主任年度目标责任书模板
- 2025年成考考试题目解析及答案
- 2025年足球裁判三级试题及答案
- 2025年秋期部编版四年级上册小学语文教学计划+教学进度表
- 2025年特种设备检验检测项目合作计划书
- 安全生产投入费用明细
- 2025年司机三力考试题库及答案
评论
0/150
提交评论