Eclipselink повторяет запрос после исключения - PullRequest
0 голосов
/ 03 марта 2020

Я использую JPA / Eclipselink для подключения к PostgreSQL экземпляру, который находится в режиме HA. Когда происходит переключение при сбое PostgreSQL, текущий главный экземпляр включит режим только для чтения. Иногда я нажимаю точный момент перехода на другой ресурс и получаю PSQLException: Fatal terminating connection due to administrator command при вставке некоторых данных. Это происходит потому, что я также использую пул соединений. При повторном повторении того же оператора оно снова работает, так как соединение повторно подключено. Есть ли лучшие практики, чтобы избежать такой ситуации? Конечно, я могу обернуть JPA EntityManager и создать какой-нибудь механизм повторных попыток. Я также нашел обработчик исключений [1], где в документации явно упоминается повтор запроса:

Используйте метод handleException класса, который принимает исключение java .lang.RuntimeException, чтобы:

Повторно выдать исключение

Выдать другое исключение

Повторить запрос или операцию базы данных.

Я не нашел ни одного Пример обработки ExceptionHandler с «Повторить запрос или операцию базы данных».

С уважением

[1] https://www.eclipse.org/eclipselink/documentation/2.5/jpa/extensions/p_exception_handler.htm#CCHCJCDJ

...