Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: Any way to catch end of transaction programmatically?
On Fri, 16 Feb 2001, Eskov Anton wrote:
> Hi
> Is there any way to get notified when COMMIT/ROLLBACK statement is
> executed?
>
> SY
> Anton
Here's an example. I'll leave making use of this as an exercise for the reader. ;)
Jared
declare
cursor c_trans_count ( statname_in varchar2 ) is select value from v$sysstat where name = statname_in; v_commit_count_old pls_integer; v_commit_count_new pls_integer; v_rollback_count_old pls_integer; v_rollback_count_new pls_integer; v_commit_name varchar2(30) := 'user commits'; v_rollback_name varchar2(30) := 'user rollbacks';
begin
open c_trans_count(v_commit_name); fetch c_trans_count into v_commit_count_new; close c_trans_count; v_commit_count_old := v_commit_count_new; open c_trans_count(v_rollback_name); fetch c_trans_count into v_rollback_count_new; close c_trans_count; v_rollback_count_old := v_rollback_count_new; for x in 1..10 loop open c_trans_count(v_commit_name); fetch c_trans_count into v_commit_count_new; close c_trans_count; open c_trans_count(v_rollback_name); fetch c_trans_count into v_rollback_count_new; close c_trans_count; if v_commit_count_old != v_commit_count_new then dbms_output.put_line('user commit at ' || to_char(sysdate,'mm/dd/yyyy hh24:mi:ss')); end if; if v_rollback_count_old != v_rollback_count_new then dbms_output.put_line('user rollback at ' || to_char(sysdate,'mm/dd/yyyy hh24:mi:ss')); end if; v_commit_count_old := v_commit_count_new; v_rollback_count_old := v_rollback_count_new; dbms_lock.sleep(1); end loop;
end;
/
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: INET: jkstill_at_cybcon.com Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).Received on Fri Feb 16 2001 - 11:25:04 CST
![]() |
![]() |