是否可以恢复由于数据库不可用而关闭的 jdbc 连接。
为了给出背景,我按顺序得到以下错误。它看起来不像是手动重新启动。我的问题的原因是我被告知该应用程序在没有 重新开始。因此,如果连接丢失,是否可以在数据库重新启动后恢复。
java.sql.SQLException: ORA-12537: TNS: 连接关闭
java.sql.SQLRecoverableException: ORA-01034: ORACLE 不可用 ORA-27101: 共享内存领域不存在 IBM AIX RISC 系统/6000 错误:2:没有那个文件或目录
java.sql.SQLRecoverableException: ORA-01033: ORACLE 正在初始化或关闭
最佳答案
没有。连接“死了”。创建新连接。
一个好的方法是使用 connection pool ,它将在将连接提供给您之前测试连接是否仍然正常,并在需要时自动创建新连接。
有几个开源连接池可供使用。我用过 Apache's JDCP ,它对我有用。
已编辑:
如果您想等到数据库出现故障时恢复(有趣的想法),您可以实现 getConnection()
的自定义版本,如果数据库没有恢复,它会“稍等片刻并重试” '回应。
附注我喜欢这个主意!
关于database - jdbc 连接可以恢复吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7407929/