已经确定job是在执行的,但在session中看不到会话,在dba_job_running中也看不到对应的记录。这种情况有时候会发生,有时候又是正常的
哪位大神?知道是哪里有问题吗?改怎么解决。

解决方案 »

  1.   

    可能执行中因为某些原因会处在“INACTIVE”的状态?
      

  2.   

    查看ALL SESSION中,也没有看到对应的会话。而且,确认,job是在执行中的。在job中的并行查询sql执行时,又能够看到并行的会话,但就是看不到对应的job会话。
      

  3.   


    plsql dev?后台进程怕是给过滤掉了吧?
      

  4.   

    数据库是单机还是RAC呢?
      

  5.   

    检查你的pl/sql语句是否写的有问题,跟踪一下。
      

  6.   

    1.停掉job
    exec DBMS_JOB.BROKEN(124,SYS.DIUTIL.INT_TO_BOOL(1));
    2.查询正在执行的job
    select * from dba_jobs_running;
    3.查询job的session信息
    select * from v$session t where t.SID = ‘403';
    4.Kill掉session
    ALTER system KILL session ‘403,861';
    一定要先停job再杀进程,不然查杀进程之后,oracle会不断的重新执行job,直到指定次数之后,才会停止执行。