自治事务概述
来源:互联网 发布:智阳网络有哪些职位 编辑:程序博客网 时间:2024/05/16 06:08
自治事务是一个独立的事务,可以从另一个称为主事务的事务中调用。你可以挂起调用事务、 在自治事务中执行 SQL 操作并提交或回滚它们,然后继续执行调用事务。
自治事务对于那些必须独立执行、而不管调用事务是否提交或回滚的操作 非常有用。例如,在股票购买事务中,你想要总是提交客户数据,而无论是否股票购买最终成功通过。或者,您想要将错误消息记录到一个调试表,即使整个事务被回滚。
自治事务具有以下特征:
自治事务不会看见在主事务中所做的未提交更改,也不与主事务共享锁或资源。
自治事务中的更改在其提交后对其它事务是可见的。因此,用户可以立刻访问更新的信息,而不必等到主事务提交。
自治事务可以启动其他自治事务。没有关于自治事务能调用多少级别的任何限制,这只受限于可用的资源。
在 PL/SQL中, 自治事务在一个标有 AUTONOMOUS_TRANSACTION 的编译指令例程所在的自治范围内执行。在这种上下文中,例程包括顶层匿名 PL/SQL 块、 PL/SQL 子程序、和触发器。一个编译指令是指示编译器执行某个编译选项的指令。AUTONOMOUS_TRANSACTION编译指令指示数据库,当此过程执行时,作为一个独立于其父事务的新的自治事务来执行。
图 10-2 显示了控制如何从主程序 (MT)流向一个自治例程,又如何返回。主程序是 proc1 ,自治例程是 proc2。自治例程在控制返回主例程之前可以提交多个事务 (AT1 和 AT2)。
当您进入一个自治例程的可执行部分时,主例程将挂起。当您退出自治例程时,主例程就恢复了。
在图 10-2 中,proc1 内的提交将持久化自己的工作,及在其会话中执行的任何未结工作。然而,在 proc2 中的提交仅持久化在 proc2 事务中执行的工作。在事务AT1 和 AT2中的COMMIT语句对MT事务没有影响。
- 自治事务概述
- -自治事务
- 自治事务
- 自治事务
- 自治事务
- 自治事务
- 自治事务
- 自治事务
- 自治事务
- 自治事务
- 嵌套事务,自治事务
- 测试一下自治事务
- PRAGMA AUTONOMOUS_TRANSACTION自治事务
- Oracle的自治事务
- Oracle自治事务读书笔记
- 自治事务 PRAGMA AUTONOMOUS_TRANSACTION
- Oracle自治事务介绍
- 自治事务触发器问题解答
- Exception记录:com.android.ide.common.process.ProcessException
- sqlite 索引
- 判断 Android rom是不是 EMUI(Emotion UI)
- scrapy安装配置教程
- git 迁移gitlib
- 自治事务概述
- 实现view跟着手指滑动的效果(实现方式三)
- Java中的Runnable、Callable、Future、FutureTask的区别与示例
- JQuery的Ajax跨域请求的解决方案
- DDR3设计总结
- C++虚函数
- Kill the monster
- Oracle导出表(即DMP文件)的两种方法
- SP2-0618: Cannot find the Session Identifier.Check PLUSTRACE role is enabled