渴望初始化连接池&自定义超时值

时间:2015-03-10 17:09:52

标签: java spring jdbc spring-boot tomcat-jdbc

我正在使用Tomcat JDBC连接池(这是Spring Boot的默认设置)来管理与PostgreSQL集群的连接,我只是注意到只有在第一次查询时才创建池。我的问题有两个:

  1. 是否有任何优雅的方法来强制创建池(即,在启动应用程序时)?我相信在启动时执行一个简单的查询可以解决这个问题,但如果可行的话,我更喜欢更优雅的方式。
  2. 在我的一次测试中,我使用iptables删除了指向PostgreSQL集群的所有流量。这导致第一个查询在失败并显示消息Unable to create initial connections of pool之前持续约127秒。 127秒太过分了。有什么办法可以为超时设置较低的值吗?我读过docs,但结论不尽相同。

1 个答案:

答案 0 :(得分:-1)

嗯,对于你的第一个问题,我只能想到两种方法:

关于你的第二个问题;如果你为第一个问题选择第二种方法,那么它会自动解决。但你可以随时设置

spring.datasouce.max-等待

参数。在Tomcat Pool doc中,它说

(int)在抛出异常之前,池将等待(当没有可用连接时)连接的最大毫秒数。默认值为30000(30秒)

但在你的情况下,它是127秒,这很奇怪..