温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么KILL SESSION时保证不中断正在进行的事务

发布时间:2021-11-09 09:43:17 来源:亿速云 阅读:149 作者:小新 栏目:关系型数据库

小编给大家分享一下怎么KILL SESSION时保证不中断正在进行的事务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

通过在ALTER SYSTEM DISCONNECT SESSION 后增加 POST_TRANSACTION来实现事务提交或回滚后,会话才会被KILL掉。

node2:
SQL> conn sh/sh
Connected.
SQL> select sid ,serial# from v$session where sid=userenv('sid');
       SID    SERIAL#
---------- ----------
       142   63
SQL> insert into test select a.* from all_objects a ,all_objects b;

node1:
SQL> alter system disconnect session '142,63,@2' post_transaction;
System altered.

node2:
SQL> insert into test select a.* from all_objects a ,all_objects b;
^Cinsert into test select a.* from all_objects a ,all_objects b
            *
ERROR at line 1:
ORA-01013: user requested cancel of current operation

SQL> rollback;
rollback
*
ERROR at line 1:
ORA-00028: your session has been killed


ORACLE DOC:

The POST_TRANSACTION setting allows ongoing transactions to complete before the session is disconnected. If the session has no ongoing transactions, then this clause has the same effect described for as KILL SESSION.

以上是“怎么KILL SESSION时保证不中断正在进行的事务”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI