我们正在尝试使用Sybase 12.x版本从jconn2升级到jconn4。 我们使用c3p0-0.9.5.2.jar连接和Preparedstatement池。
当我们使用jconn4时,我们会得到以下错误
***com.sybase.jdbc4.jdbc.SybSQLException: SQL Anywhere Error -685: Resource governor for 'prepared statements' exceeded
at com.sybase.jdbc4.tds.Tds.processEed(Tds.java:4003)
at com.sybase.jdbc4.tds.Tds.nextResult(Tds.java:3093)
at com.sybase.jdbc4.jdbc.ResultGetter.nextResult(ResultGetter.java:78)
at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:289)
at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:271)
at com.sybase.jdbc4.jdbc.SybStatement.queryLoop(SybStatement.java:2408)
at com.sybase.jdbc4.jdbc.SybStatement.executeQuery(SybStatement.java:2394)
at com.sybase.jdbc4.jdbc.SybPreparedStatement.executeQuery(SybPreparedStatement.java:257)***
我们在代码中设置了以下细节。
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass(jdbc_driver);
cpds.setJdbcUrl(m_connURL);
cpds.setUser(m_username);
cpds.setPassword(m_password);
cpds.setMaxPoolSize(30);
cpds.setIdleConnectionTestPeriod(10*60);
cpds.setPreferredTestQuery(m_connection_test);
cpds.setTestConnectionOnCheckin(true);
请问你能不能正确使用Jconn4的原因。 Jconn4是JDBC 4.这是否存在任何问题。从下面的链接我们可以看到"从版本0.9.5开始,c3p0完全支持jdbc4规范。" http://www.mchange.com/projects/c3p0/#what_is
当我们使用相同代码的Jconn2时,相同的DB设置和相同的C3P0 jar工作正常。我们没有得到任何资源调控器错误。请分享您的想法。
我们的产品中有很多地方关闭PreparedStatement留给C3P0。当连接释放到Pool时,C3P0负责关闭语句。