环境 :数据库服务器:Linux下Oracle 10g ; 应用服务器:weblogic现在先考虑数据库层的问题,暂时不考虑weblogic环境的问题。问题详细如下:当第一次进入项目首页时一切正常,但在进过多次点击后出现页面无法进入的情况。
该首页的数据大多是从一张表(sd_linedevice)取数据,这张表有一个小小的操作即每隔五分钟job去调用一个存过支更新该表的每一条数据;在更新之前我在这个表上加上了共享锁(不知是否正确);
在执行job时我多次去点击首页相关功能去查询这张表,此时我去v$lock视图查询时的确出现了 TX或TM类的锁;
但过一会去点击时页面就进不去了,过一会又可以访问了~~ 个人感觉好像是什么资获取有问题。
所以现在我不确定是数据库的问题还是weblogic 环境的问题。。希望大家多多指教~~尤其是排它锁,在这种情况下会不会产生?其实我主要问的就是数据库这样设计是否正确?最后 我关闭这个job, 然后我去点击首页同样的当某一次点击后页面就进不去了,过一会又好了,随后我去查v$lock视图 查出CU类型的锁不知为什么?是不是我程序sql写的有问题还是weblogic数据源有问题?

解决方案 »

  1.   

    上面补充一下,在更新一条数据后就即时commit;
      

  2.   


    如果你作到了这个,我感觉:
    (1)oracle的数据库锁机制,是不应该怀疑的,要不就不会在N年之前被号称所谓的数据库之王了。
    (2)出现死锁一般是程序使用不当的问题。
    (3)“但过一会去点击时页面就进不去了,过一会又可以访问了~~ 个人感觉好像是什么资获取有问题。”
       我比较赞成这个原因。具体,可以使用OEM去看看Oracle的资源是否有问题,比如表空间、回滚段、索引段、临时表空间是否满、锁资源是否足够等等。
      

  3.   

    首先谢谢你的回答,其次我还有一个疑问是不是weblogic数据源有问题?
      情况是这样的,该项目用的金碟的AOM开发的其主要构成为EJB+JSF+Ext;所以JPA去访问数据库用的是weblogic上的一个数据源。
        那么这个数据源是共用的是同时访问同一个库,是不是其它的项目对这个数据源占有的资源过多?是不是我应该再配一个新数据源呢?其实我蛮赞成你上面的第3条的说法的,因为我们这个PMS系统确实太庞大 所以我会去OEM里面看看资源情况。
      

  4.   

    如果是数据库资源紧张的问题,则启用再多的数据源也不解决问题。不过你可以启用一个新的数据源,这样可以验证是否是的weblogic应用的问题,而不是oracle资源问题。OEM里面除了段空间,还有几个重要的指标,比如IO资源也是需要注意。
      

  5.   

    好的,下周一我过去OEM看看oracle资源情况,再配一个新数据源试试,具体是什么情况希望还能跟你继续交流。
    最后,谢谢你的回复。
      

  6.   

    确实是weblogic数据源的问题 现在配制初始化链接数为1 链接超时为0;所以其它项目在用这个数据源时我去拿直接返回nullpoint 所以现在新配一个数据源问题解决了~~~