Tomcat是否使用plsql模块的缓存版本?

Tomcat是否使用plsql模块的缓存版本?,第1张

Tomcat是否使用pl / sql模块的缓存版本?

此问题与JDBC连接池有关,这是所有使用JDBC连接池的应用程序服务器(不仅仅是Tomcat)遇到的问题。连接池将使池中的多个连接保持打开状态,以准备下一个请求。如果连接引用了PL
/ SQL程序包并对其进行了重新编译,则对该程序包的下一次调用将引发ORA-06508错误。这将影响调用堆栈中任何地方的包,而不仅仅是您直接调用的包。

为了解决这个问题,某些应用服务器(例如Weblogic)具有定期调用的测试方法。如果测试失败,则将连接从池中删除或以某种方式刷新。我不确定Tomcat有什么机制。

解决该问题的另一种方法是将dbms_session.reset_package作为JDBC调用中的第一个方法调用。这样可以清除会话中的程序包状态。不建议使用这种方法,因为它会产生性能开销,并且会重设所有程序包作用域的变量,因此需要再次调用程序包初始化块,这是另一个性能问题。

如果遇到问题,并且没有办法删除不良连接,则需要重置整个连接池,因为池中的任何连接都会遭受相同的异常。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5026813.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存