我支持一些遗留代码,直到最近它一直都很好。 我是否在寻找JDBC Oracle瘦连接的设置,我可以在其中通过Java指定空闲超时(无连接池)? 在线上有很多资源都提到了连接池...在我的情况下,是否有可能(在非池化情况下指定空闲超时)? 还是空闲时间是特定数据库用户帐户上的设置?
更新与问题
我能够以用户身份登录,并运行查询以尝试找出资源限制。 select * from USER_RESOURCE_LIMITS; 但是一切都回到了“无限”。 是否可以使用另一个值(例如,来自JDBC连接的值)覆盖“ UNLIMITED”?
因此,当我们通过DB链接主动查询另一个系统长达约2个小时以上的时间时,这项工作就保持了连接状态。现在,为什么空闲超时甚至会起作用?
更新#2
我们切换到另一个帐户(具有相同的数据库链接设置),该工作能够像以前一样完成。 甲骨文用户配置文件有哪些奇特之处? 但是就像我说的那样,查询USER_RESOURCE_LIMITS显示两个用户都具有“ UNLIMITED”空闲时间。 DBA也证实了这一点。 还有什么可能导致这种差异?
更新#3
堆栈跟踪等。
java.sql.SQLException: ORA-02396: exceeded maximum idle time, please connect again
ORA-06512: at line 1
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:3