Grails 2.3.11 ОШИБКА pool.ConnectionPool - Невозможно создать начальные соединения пула - PullRequest
0 голосов
/ 26 апреля 2018
2018-04-19 20:57:38,504 [localhost-startStop-1] ERROR pool.ConnectionPool  - Unable to create initial connections of pool.
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host MY-PC, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".

Я получаю эту ошибку три раза при запуске.Я предполагаю, что это потому, что Grails пытается подключиться к базе данных три раза при запуске на основе * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.При появлении сообщения об ошибке Grails переходит к сбою при создании bean-компонентов (TransactionManager, TransactionManagerPostProcessor и т. д.).

Исходя из моего понимания, проблема заключается в создании пула.Я предполагаю, что Hibernate обрабатывает это на Grails.Он не может создать пул, поскольку база данных все еще не подключена.

Чтобы дать вам представление о проблеме, приложение Grails подключается к базе данных.База данных и сервер Grails находятся на разных серверах.Два сервера будут перезапущены одновременно.Сервер, на котором приложение Grails затем переходит в режим онлайн прежде, чем сервер базы данных.Это вызывает указанную ошибку, поскольку приложение Grails пытается подключиться к базе данных, которая еще не подключена к сети.

Есть ли способ настроить Grails для повторного подключения к серверу базы данных при возникновении ошибки или исключения при создании пула?В настоящее время я использую MSSQL в качестве базы данных.Я надеюсь, что вы можете помочь мне в этом.Спасибо.

1 Ответ

0 голосов
/ 26 апреля 2018

Ваше приложение не сможет эффективно запускаться или запускаться без резервной базы данных, поэтому даже если вы сможете подключиться позже, вы пропустили бы много событий запуска, таких как обновления GORM.

Поскольку ваше приложение выигралов любом случае, пока база данных не будет запущена, не могли бы вы отложить запуск приложения Grails до тех пор, пока база данных не будет запущена?Существует несколько подходов к этому, и кажется, что это даст вам гораздо лучший и более чистый процесс инициализации.

...