У меня есть обстоятельство, когда соединение JDBC переводит сеанс Oracle, к которому оно подключено, в определенное состояние (т. Е. Режим с включенным DBMS_FLASHBACK). Выход из этого режима может быть неудачным (по крайней мере, теоретически), что означает, что сеанс ошибочно оставлен в состоянии. В этом случае соединение может быть возвращено в пул и получено другим потоком с сеансом Oracle, все еще находящимся в режиме DBMS_FLASHBACK.
Я доказал, что это действительно произойдет. (JBoss 4.2.1)
Что было бы идеально, так это перехватить SQLException в случае сбоя выхода из режима и пометить соединение как «плохое», чтобы после его возврата в пул JBoss уничтожил соединение и создал новое.
Но я не могу найти способ пометить соединение для немедленного уничтожения. Кто-нибудь знает способ?