How to ensure that ongoing transactions will not be interrupted when KILL SESSION
Editor to share with you how to KILL SESSION to ensure that the ongoing affairs will not be interrupted, I believe that most people do not know much about it, so share this article for your reference, I hope you can learn a lot after reading this article, let's go to know it!
The session will not be dropped by KILL until the transaction is committed or rolled back by adding POST_TRANSACTION after ALTER SYSTEM DISCONNECT SESSION.
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, post_transaction 63, 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.
The above is all the contents of this article entitled "how to KILL SESSION without interrupting ongoing transactions". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!