嵌入式tomcat上的JDBC连接问题

时间:2015-12-01 06:47:23

标签: spring jdbc spring-boot jdbctemplate

在我的spring启动应用程序中,我使用org.apache.tomcat.jdbc.pool.DataSource创建数据源。我正在使用嵌入式tomcat。以下是我设置的一些属性

myDS.setDriverClassName(driverClassName);
myDS.setUrl(databaseURL);
myDS.setUsername(databaseUserId);
myDS.setTestWhileIdle(false);
myDS.setTestOnBorrow(true);
myDS.setValidationQuery("SELECT 1");
myDS.setTestOnReturn(false);
myDS.setValidationInterval(30000);
myDS.setTimeBetweenEvictionRunsMillis(30000);
myDS.setMaxActive(100);
myDS.setInitialSize(10);
myDS.setMaxWait(10000);
myDS.setRemoveAbandonedTimeout(60);
myDS.setMinEvictableIdleTimeMillis(30000);
myDS.setMinIdle(10);
myDS.setLogAbandoned(true);
myDS.setRemoveAbandoned(true);

我在两个具有作为原型范围的spring bean中使用这个ds对象。当我使用第一个功能,使用第一个春季bean应用程序工作正常。然后我点击使用相同ds对象的第二个功能,然后我得到低于错误

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Failed to validate a newly established connection.

在我的代码内部我使用jdbcTemplate进行数据库操作。我尝试使用destroy方法,但它不起作用

@Bean(=了destroyMethod"&#34) public DataSource appDS(){

请建议

1 个答案:

答案 0 :(得分:0)

由于我使用的是DB2数据库,因此我按如下方式更改了验证查询,并开始工作

从sysibm.sysdummy1中选择当前日期

注 - 对于相同的配置,嵌入式Tomcat和独立tomcat行为是不同的。在独立的tomcat上,无法获得无效验证查询的异常。外部tomcat版本7