【发布时间】:2012-12-28 03:19:02
【问题描述】:
当从 Hibernate 发出并在 Glassfish 实例上运行时,我们在 SQL Server 2008 上获得'stuck' 的连接存在一些问题。
偶尔会有 10 或 20 次对存储过程的调用,它们都是 'sleeping',并且正在保持打开的许多事务。
当我使用DBCC INPUTBUFFER 来了解更多关于他们的信息时,它有:
名称:implicit_transaction
这是否意味着 java 应用程序将 'SET IMPLICIT_TRANSACTIONS ON' 设置为批处理的一部分?我能够在数据库端复制该事务名称的唯一方法是使用该语法。
Java 应用程序似乎挂在连接上,但不知何故丢失了调用本身的上下文,因此它永远不会回来提交事务。
Java 开发人员说他们没有明确定义任何连接,也没有说他们故意设置任何其他连接属性。这些调用都是在 READ COMMITTED 隔离级别下进行的。
我怎样才能知道是否有一些隐藏的属性集,或者是一些休眠设置导致了这种烦人的行为?
【问题讨论】:
标签: java sql-server hibernate transactions glassfish