2017-04-21 90 views
0

我试图从jconn2升级到jconn4。我面临的问题是c3p0无法按预期工作。快速在线搜索表示,它完全支持jconn4,但我得到以下例外。c3p0与jconnect的兼容性4

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) 

就如何解决这个问题的任何建议??/

回答

0

它看起来像你的问题实在是太多了准备语句开放,相对于你的服务器上定义max_statement_count

做也只是把语句缓存关闭在C3P0,即确保如果你想语句缓存的性能优势的C3P0性能maxStatementsmaxStatementsPerConnection设置为0,确保maxStatements是最简单的事情设置为远低于服务器端max_statement_count的值。您也可以通过将max_statement_count设置为0来关闭“资源管理器”,尽管Sybase似乎不鼓励这样做。请参阅c3p0 docs re Statement caching

+0

是否有任何具体的原因,为什么它工作正常,当我使用jconn2但不工作时使用jconn4? – Prateek

+0

我不太了解Sybase的驱动程序(或后端)可以说。 –

+0

请参阅http://sqlanywhere-forum.sap.com/questions/25804/sql-anywhere-error-685-resource-governor-for-prepared-statements-exceeded –