超出了“准备好的声明”的资源调控器

时间:2015-08-10 10:26:46

标签: java spring jdbc sybase jdbctemplate

我们正在使用Spring JDBCTemplate 2.5版本,并在使用batchupdate方法时获得以下异常。

Exception thrown!
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [SELECT SERVICE WHERE CREATE_TIME >= ? AND CREATE_TIME < ?]; SQL state [HY000]; error code [-685]; [Sybase][JDBC Driver][SQL Anywhere]Resource governor for 'prepared statements' exceeded; nested exception is java.sql.SQLException: [Sybase][JDBC Driver][SQL Anywhere]Resource governor for 'prepared statements' exceeded
               at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:124)
               at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
               at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:607)
               at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:641)
               at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:670)
               at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:678)
               at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:710)
               at org.springframework.jdbc.core.simple.SimpleJdbcTemplate.query(SimpleJdbcTemplate.java:187)

如果知道问题,请你告诉我吗?如果是这样,如何解决它。

1 个答案:

答案 0 :(得分:0)

来自documentation

  

如果准备好的语句在不再需要时未明确删除,则使用预准备语句的应用程序可能会收到错误“超出'预处理语句的资源调控器'”。

因此,您可能应检查非关闭预准备语句的代码或调整sybase“max_statement_count”参数。当您使用JdbcTemplate s

时,后者似乎更有可能