你好! 我是个刚从事oracle 研究的菜鸟!这段时间遇到了一个难题! 我用的是ORACLE8.17数据库! 为了能访查询和更新别人的数据库中的表,我的数据库和别人的数据库有个连接! 我通过JOB定时从别人的数据库中取数据并更新有关字段 问题:当别人的数据库重启后(较长的时间),我的job就不能正常工作了(job不失效但不运行 ),通过TOAD工具查看此我的JOB进程发生死锁,但怎么也不能杀掉!我想是不是跟别人和我通信的进程消失有关,我的进程一直在等待别人的"回话"?? 等别人的数据库正常后由于我的job不能正常工作导致我取不到数据,我没办法只能重起我的数据库了!郁闷啊,问问大哥你有没有好的解决的办法!!最好是自动的! 谢谢你@ 真诚的等你回信!!我的[email protected] 

解决方案 »

  1.   

    job如果未能成功之行,在重试16次后,还未能成功执行,将被标记为broken。LZ说的这种情况,JOB不算执行失败吗?
      

  2.   

    这个我知道的,我的JOB进程好象一直处于等待,我的JOB是第一天中午11点多出的问题,到第二天早晨6点多我才发现的,要是16次连接后,早就失效了(Failure参数一直是0,)
      

  3.   

    用job处理两个数据库之间的事情是比较容易出问题的
    原来我也用过
    问一下,你的数据同步的实时性要求强不强?
    不是太强的话,就在对方数据库上的表建立一个更新触发器吧,再建立一个中间表,触发器将更新数据或更新数据的主键写入中间表,并注明更新时间等
    你可以写过程,设置任务,定时访问数据中间表,读取并更新数据实时性要求非常不高的话,还可以在对方数据库导出xml问,你这边再导入,呵呵数据链路的安全性实在不高
    有需要的话,可以将具体的需求写出来,再给你想办法
    主要是安全性,实时程序等
      

  4.   

    假如你不是为了解决问题,而是为了研究job,另论,哈哈
      

  5.   

    我没办法只能重起我的数据库了
    =================
    干吗要重启数据库?直接运行的job就可以了啊,不能运行说明你的dblink有问题,像我这里,主数据库会自动切断与长时间不活动的副本数据库