![](/img/trans.png)
[英]Can not established a connection to jdbc with Hibernate-SQL Server 2008
[英]JDBC, Hibernate and Implicit Transactions on SQL Server 2008
當從Hibernate發出的,在Glassfish實例上運行的連接在SQL Server 2008上'stuck'
,我們遇到了一些問題。
有時,將有10到20個對存儲過程的調用,這些調用全都在'sleeping'
,並且正在打開許多事務。
當我使用DBCC INPUTBUFFER
查找有關它們的更多信息時,它具有:
名稱:implicit_transaction
這是否意味着Java應用程序將'SET IMPLICIT_TRANSACTIONS ON'
為批處理的一部分? 我能夠在事務名稱數據庫端使用這個語法的唯一方法是使用該語法。
看來Java應用程序已掛在連接上,但是以某種方式丟失了調用本身的上下文,因此它永遠不會回來提交事務。
Java開發人員說,他們沒有明確定義任何連接,也沒有故意設置其他任何連接屬性。 這些調用全部在READ COMMITTED隔離級別下進行。
如何確定是否存在一些隱藏的屬性集,或者某些休眠設置是否導致了這種令人討厭的行為?
您可以要求Hibernate記錄正在執行的sql語句。
本文介紹了兩種方法。
SessionFactory sf = new Configuration()
.setProperty("hibernate.show_sql", "true")
// ...
.buildSessionFactory();
或在log4j配置中
log4j.logger.org.hibernate.SQL=DEBUG, SQL_APPENDER
log4j.additivity.org.hibernate.SQL=false
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.