Потеряно соединение с неактивной базой данных

Потеряно соединение с неактивной базой данных

Я могу подключиться к серверу базы данных (Firebird), выполнить запросы и все эти забавные вещи, но после неопределенного периода бездействия следующая попытка запроса выдает следующую ошибку

Unable to complete network request to host "XX.XX.XX.XX".
Error writing data to the connection.
An existing connection was forcibly closed by the remote host. .

SQL Error (code = -902):
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.

При интерактивной работе с использованием Firebird Maestro (релевантность неизвестна) после получения этой ошибки я говорю Maestro отключиться. Затем я могу запустить запрос.

Я не знаю, откуда исходит тайм-аут: от Firebird, от сервера Linux или от чего-то еще в нашей сети, и я недостаточно разбираюсь в Linux, AWS или нашей сети, чтобы знать, где искать возможные варианты. (радости работы программистом в очень маленькой компании)

решение1

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

Лучше всего использовать библиотеку пула соединений и указать более короткое время ожидания, чем то, которое вы наблюдаете сейчас (если только оно не неприемлемо мало).

Было бы полезно, если бы вы подробно описали свое развертывание, но я думаю, что в конечном итоге вам нужно исправить клиентскую часть.

Связанный контент