0

我使用HibernateJava Web應用程序,我想設置限制SQL Server 2005連接池大小。據我讀過,我必須使用連接字符串。 我可以在hibernate.propertieshibernate.cfg.xml中指定嗎? 是否有必填字段,或者我可以只指定Max Pool Size如何設置SQL Server連接池大小

編輯: 我想重現從生產機器來了一個錯誤:

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) 
+1

爲什麼你認爲你需要改變池大小? – 2011-02-09 12:45:50

+0

請記住,Hibernate默認連接池不適用於生產用途,如文檔中所述。 JohanSjöbergsanwser下面是不錯的 – Erik 2011-02-09 13:17:49

回答

1

如果您使用如c3p0可以通過maxPoolSize屬性來配置池大小,如:

<bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> 
    <property name="driverClass" value="...." /> 
    <property name="jdbcUrl" value="..."/> 
    <property name="maxPoolSize" value="..." /> 
</bean>