我的应用程序在Jboss 2.4上的EJB 1.1上运行并使用Sybase。最近我们看到一个问题,那就是某个表上有无限制的锁,导致后续查询等待锁释放,从而导致整个应用程序失败。数据库管理员声称,该应用程序没有释放任何锁,并且我们没有对处理该特定表的代码进行任何更改。我的问题是,是否有任何常见问题与需要检查的Jboss 2.4或任何特定领域寻找?在Sybase ASE中未释放的锁
我运行的查询只是一个简单的选择/更新语句与read_committed事务隔离。我从jboss池中获取连接并执行select或update,然后关闭连接,语句和结果集。
为什么问题是随机发生的?
对不起,我无法提供任何代码。
只需添加到下面的答案,如果您不希望进行服务器范围更改,也可以基于每个表配置锁。启用数据行时会有额外的开销,所以如果您只有一些表有问题,您可能只想更改这些表。 http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc20021_1251/html/locking/X12029.htm –
我会建议询问数据库管理员有关锁定连接的所有信息。假设此RDBMS是Sybase ASE而不是ASA或其他,则可以在syslocks中查询锁,在锁中可以获取锁定进程的连接标识(spid)。从spid中可以得到sysprocesses中的一些信息:开始时间,用户和一些依赖于应用程序的信息。收集所有,也许这允许识别jboss交易并推断结论。 – Corral