java.sql.SQLException:HikariDataSource HikariDataSource(HikariPool-1)已关闭

时间:2020-09-11 23:27:47

标签: java spring

Exception in thread "task-2" org.springframework.jdbc.datasource.init.UncategorizedScriptException: Failed to execute database script; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: HikariDataSource HikariDataSource (HikariPool-1) has been closed.

我有一个SQL脚本,只在应用启动时插入一些记录

spring.datasource.data=classpath:kana.sql

似乎可以通过大约10-20次,然后突然退出

我的application.properties

## default connection pool
spring.datasource.hikari.connectionTimeout=20000
spring.datasource.hikari.maximumPoolSize=5

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create

## PostgreSQL
spring.datasource.url=jdbc:postgresql://10.0.0.100:5432/langsite
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.datasource.driverClassName=org.postgresql.Driver

spring.datasource.initialization-mode=always
spring.datasource.data=classpath:kana.sql

server.port=4000

#drop n create table again, good for testing, comment this in production
# javax.persistence.schema-generation.scripts.action=create
# javax.persistence.schema-generation.create-source=metadata
# javax.persistence.schema-generation.drop-source=metadata

它似乎一开始就成功连接了,因为它可以创建表,插入一些记录,但是在插入过程的途中,它只是出现了。

1 个答案:

答案 0 :(得分:1)

好像您的应用程序用完了池中的可用连接。 我猜这两件事是矛盾的:

这个

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create

还有这个

spring.datasource.initialization-mode=always
spring.datasource.data=classpath:kana.sql

如果您想通过Hibernate创建架构,请尝试使用此选项来加载初始数据

spring.jpa.properties.hibernate.hbm2ddl.import_files=classpath:kana.sql

无论如何请参考这篇文章。应该有帮助 https://dimitr.im/loading-initial-data-with-spring