【发布时间】:2011-02-09 12:40:57
【问题描述】:
我将Hibernate 与Java Web 应用程序一起使用,我想设置SQL Server 2005 连接池大小的限制。据我阅读,我必须使用连接字符串。
我可以在hibernate.properties 或hibernate.cfg.xml 中指定它吗?
是否有必填字段,或者我可以指定Max Pool Size?
编辑: 我想重现来自生产机器的错误:
2011-02-07 17:52:00,282 ERROR [STDERR] [WARN] JDBCExceptionReporter - SQL Error: 0, SQLState: 08S01
2011-02-07 17:52:00,282 ERROR [STDERR] [ERROR] JDBCExceptionReporter - I/O Error: Connection reset by peer: socket write error
2011-02-07 17:52:00,282 ERROR [STDERR] [ERROR] JDBCTransaction - JDBC rollback failed <java.sql.SQLException: Invalid state, the Connection object is closed.>java.sql.SQLException: Invalid state, the Connection object is closed.
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.checkOpen(ConnectionJDBC2.java:1634)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.rollback(ConnectionJDBC2.java:2027)
at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183)
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162)
【问题讨论】:
-
您认为为什么需要更改池大小?
-
请记住,Hibernate 默认连接池不用于生产用途,如文档中所述。下面的 Johan Sjöbergs anwser 很好
-
@Mitch Wheat:我收到一条错误日志,其中包含 SQLState: 08S01 JDBC rollback failed 错误,我想在本地重现。
-
@Erik:感谢您的评论。我也看过 Hibernate 文档,但我想看看究竟是什么导致了错误。可能是我使用的是非生产模式,但是如果我无法弄清楚问题的根源,我就无法测试解决方案。
-
这听起来可能很傻,但是您是否尝试过 hibernate.properties 中的 'hibernate.connection.pool_size=
'(或者它是否在 hibernate.cfg.xml 中?)
标签: java sql sql-server-2005 connection-string connection-pooling