spring boot datasource tomcat jdbc属性不起作用

时间:2017-04-11 16:41:28

标签: spring-boot spring-data datasource

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

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文档中读取设置连接池属性,但没有找到我可能出错的地方。

我还认为如果我将上面的属性spring.datasource.tomcat.max-active设置为100个连接,它应该在tomcat jdbc池的帮助下工作,因为我认为在当前场景中它试图为每个测试打开一个新的数据库连接我担心,当我将此代码部署到生产环境时,可能会发生同样的情况,并且每个请求都会为数据库打开一个新连接。

之前有没有人遇到过这个问题,或者我做错了什么。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

尝试升级Spring启动版本,1.5.10-RELEASE是当前版本。

此外,我发现当包含属性前缀tomcat时,我的应用程序的连接池属性未应用。如果您仍然遇到问题,请尝试删除它。

即。

spring.datasource.tomcat.max-active=200

变为

spring.datasource.max-active=200

请参阅https://artofcode.wordpress.com/2017/10/19/spring-boot-configuration-for-tomcats-pooling-data-source