2017-04-11 129 views
0

我有一个Spring Boot应用程序(版本1.5.1.RELEASE),我使用spring-boot-starter-data-jpa作为依赖来管理我的数据库。我使用postgres作为我的数据库,并使用下面的属性进行配置。spring boot datasource tomcat jdbc属性不起作用

spring.datasource.url=${POSTGRES_URL} 
spring.datasource.username=${POSTGRES_USER} 

现在,当我跑我的测试中,其几乎是120,我得到了阿布10个测试用例太多的客户端已经开放的错误,同时启动测试案例本身和它失败。(剩余100测试用例通过成功的他们能够连接到数据库)

我做的第一件事是在postgres服务器配置文件中将我的默认postgres最大连接数从100增加到200,并且在此更改后我的测试成功通过。

现在我调查了一下,并试图连接池的属性,如设置参数:

spring.datasource.tomcat.max-active=200 
spring.datasource.tomcat.test-on-borrow=true 
spring.datasource.tomcat.max-wait=10000 

然而,这些特性不工作,测试失败再次给予同样的错误如上。我试着从多个不同的博客和春季文档中读取关于设置连接池属性的内容,但没有发现可能会出现什么问题。

我也认为,如果我将上述属性spring.datasource.tomcat.max-active设置为100个连接,它应该在tomcat jdbc pooling的帮助下工作,因为我认为在当前情况下它试图为每个测试用例打开一个到数据库的新连接,而我我担心这种情况可能发生在将此代码部署到生产环境时,并且将为每个请求向数据库打开一个新连接。

有没有人以前遇到过这个问题,或者有什么问题我正在做。

在此先感谢您的帮助。

+0

什么是你的数据库中配置的最大连接数?有没有其他应用程序使用你的数据库?最好从数据库透视图/数据库监视器中检查连接数,应用程序中的连接泄漏在跳转到不正确的application.properties结论之前。 –

+0

确保您正确关闭会话 – rajadilipkolli

+0

@vivek是否使用休眠orm –

回答