oracle 报错 ORA-02396: 超出最大空闲时间, 请重新连接 客户端如何处理 返回
原因是DBA在Oralce启用了闲置会话超时时间配置为15分钟
目前使用的版本是 5.1.4.170 已经是最新版本了
我使用的框架是 .net8
我使用的是依赖注入 注入SqlSugar 注入的生命周期 Singleton Scoped Transient 均测试过
我的处理方案1
字连接字符串串中启用连接池并且设置超时时间短于15分钟Data Source=127.0.0.1:1521/orcl;User Id=test;Password=123456; Pooling=true;Min Pool Size=1;Max Pool Size=100;Connection Lifetime=840;
但是这样设置超过了闲置会话时间的15分钟还是继续超时没有用
我的处理方案2
我看框架有一个自动释放连接的属性IsAutoCloseConnection设置true了 还是不起作用using (var db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = connectionString, DbType = DbType.Oracle, IsAutoCloseConnection = true // 确保操作完成后关闭连接 }))
思考思路
“Oracle (ORA-02396): 超出最大空闲时间, 请重新连接”)。如果没有自动处理机制,问题要是发生在凌晨或业务高峰期就很不友好了。 因为必须要用户重新再试一次才能重新建立会话
目前想的是思路是 如果出现这种错误我就在在程序里面重新调用一次 刚开始还好 处理几个简单的方法问题不大 后面处理着发现业务嵌套太深 改动难度太大 外加这个项目 业务代码庞大 改起来的地方多 我就想从框架层面入手 奈何ConnectionConfig 这个配置里面只找到 IsAutoCloseConnection这个参数 结果还没有生效
热忱回答(2)
-
fate sta VIP01个月前
DBA在Oralce启用了闲置会话超时时间配置为15分钟 需要 Pooling=false
0 回复 -
root VIP01个月前
好的谢谢大佬帮助
0 回复