Обнаружена ошибка ниже при запуске приложения из облака, однако эта ошибка не возникает при запуске из локальной сети.
Caused by: java.sql.SQLTransientConnectionException: HikariPool-2 - Connection is not available, request timed out after 30000ms.
at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695)
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:197)
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:162)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128)
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:38)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:108)
... 146 more
Caused by: org.postgresql.util.PSQLException: FATAL: invalid value for parameter "TimeZone": "CST"
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2825)
at org.postgresql.core.v3.QueryExecutorImpl.<init>(QueryExecutorImpl.java:175)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:313)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)
at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:263)
at org.postgresql.Driver.makeConnection(Driver.java:443)
at org.postgresql.Driver.connect(Driver.java:297)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477)
at com.zaxxer.hikari.pool.HikariPool.access$100(HikariPool.java:71)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:725)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:711)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
... 1 more
Попробовал также настройку ниже, но все равно определяет часовой пояс CST. Просмотрел несколько статей, как указано ниже, но в основном обсуждаются конфигурации, относящиеся только к postgre.
https://www.postgresql.org/message-id/[email protected]https://www.postgresql.org/message-id/25914.1510934246%40sss.pgh.pa.us
https://postgrespro.com/list/thread-id/1543208
Установите serverTimezone для строки подключения jdbc, как показано ниже.
jdbc:postgres://localhost:3306/test?serverTimezone=UTC
Также текущий часовой пояс для Postgre — UTC. ниже приведены команды, используемые для отображения и установки часового пояса в postgre.
SHOW TIMEZONE
SET TIMEZONE 'UTC'





Параметр serverTimezone отсутствует, поэтому драйвер использует часовой пояс, настроенный для вашей JVM. Если вы не хотите это менять, попробуйте установить параметр timezone для серверного процесса:
jdbc:postgresql://localhost:5432/test?options=-ctimezone=UTC
@Альбе, это присутствует в Postgre?
@Albe - моя вина, я имею в виду, что параметр serverTimezone присутствует в случае драйвера postgre для строки подключения jdbc?
Если вы имеете в виду «mysql», я просто скопировал это у вас, не глядя. Я говорил о PostgreSQL.
@Альбе - это пишешь, это опечатка. Я пробовал для postgre.
установите временную метку UTC во время запуска приложения в облаке, чтобы всякий раз, когда JVM приложения пытается подключиться к базе данных postgre, она должна использовать UTC в качестве временной метки. Следующие команды представлены в файле Docker, который будет использоваться при запуске приложения в контейнере.
java -Duser.timezone=UTC -jar service-docker.jar
@Albe - да, в основном из-за JVM. Пробовал другой подход, установив часовой пояс в команде Java.