[20190531]建立job与commit.txt
--//昨天看链接:https://connor-mcdonald.com/2019/05/28/dbms_job-the-joy-of-transactions/--//我个人并不关心升级到19c后废除DBMS_JOB包使用新的Scheduler,不过对建立job与提交有了新的理解。--//为什么建立job后,随手做一个提交。1.环境:SCOTT@test01p> @ ver1PORT_STRING VERSION BANNER CON_ID-------------------- ---------- ---------------------------------------------------------------------------- ------IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 02.测试:declare j int;begin dbms_job.submit(j,'begin null; end;',sysdate,'sysdate+1');end;/SCOTT@test01p> select job, what c40 from user_jobs;JOB C40--- ---------------------------------------- 1 begin null; end;SCOTT@test01p> @ xidXIDUSN_XIDSLOT_XIDSQN------------------------------3.2.984--//可以发现本会话有事务没有提交.SCOTT@test01p> select job_name, job_action from user_scheduler_jobs;no rows selectedSCOTT@test01p> rollback;Rollback complete.SCOTT@test01p> @ xidXIDUSN_XIDSLOT_XIDSQN------------------------------no rows selectedSCOTT@test01p> select job, what c40 from user_jobs;no rows selected--//也就是你没有提交,这个job永远不会执行.以前一直不理解为什么,原来原因如此简单.3.xid脚本:$ cat xid.sqlcolumn XIDUSN_XIDSLOT_XIDSQN format a30select dbms_transaction.local_transaction_id() XIDUSN_XIDSLOT_XIDSQN from dual ;