с EntityManagerFactory вы можете получить только EntityManager и отправить чек запрос к БД, но в данном случае я думаю, что лучшее решение для настройки пула соединений с помощью валидатора.
Таким образом, каждое соединение, созданное или получаемое из пула, проверяется с помощью API JDBC или с помощью простого запроса. Например, в JBoss внутри конфигурации источника данных можно добавить следующие строки:
<!-- sql to call when connection is created -->
<new-connection-sql>some arbitrary sql</new-connection-sql>
<!-- sql to call on an existing pooled connection when it is obtained from pool -->
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
или (для Postgres, но есть пример для каждой СУБД)
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"></valid-connection-checker>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"></exception-sorter>
</validation>
Вы можете разместить исключение на сделки начинаются –