[20190531]建立job與commit.txt

lfree發表於2019-05-31

[20190531]建立job與commit.txt


--//昨天看連結:

--//我個人並不關心升級到19c後廢除DBMS_JOB包使用新的Scheduler,不過對建立job與提交有了新的理解。

--//為什麼建立job後,隨手做一個提交。


1.環境:

SCOTT@test01p> @ ver1

PORT_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      0


2.測試:

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> @ xid

XIDUSN_XIDSLOT_XIDSQN

------------------------------

3.2.984

--//可以發現本會話有事務沒有提交.


SCOTT@test01p> select job_name, job_action from user_scheduler_jobs;

no rows selected


SCOTT@test01p> rollback;

Rollback complete.


SCOTT@test01p> @ xid

XIDUSN_XIDSLOT_XIDSQN

------------------------------


no rows selected


SCOTT@test01p> select job, what c40 from user_jobs;

no rows selected


--//也就是你沒有提交,這個job永遠不會執行.以前一直不理解為什麼,原來原因如此簡單.


3.xid指令碼:

$ cat xid.sql

column XIDUSN_XIDSLOT_XIDSQN format a30

select dbms_transaction.local_transaction_id()  XIDUSN_XIDSLOT_XIDSQN from dual ;


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2646290/,如需轉載,請註明出處,否則將追究法律責任。

相關文章