我有一种情况,JDBC 连接将它所连接的 Oracle 会话置于特定状态(即 DBMS_FLASHBACK 启用模式)。此模式的退出可能会失败(至少在理论上),这意味着会话错误地处于该状态。在这种情况下,连接可以返回到池中,并由另一个线程获得,Oracle 会话仍处于 DBMS_FLASHBACK 启用模式。
我已经证明这确实会发生。(JBoss 4.2.1)
理想的做法是在模式退出失败时捕获 SQLException,并将连接标记为“坏”,这样一旦它返回到池中,JBoss 就会破坏连接并创建一个新连接。
但是我找不到任何方法来标记立即销毁的连接。有谁知道一种方法?