Spring Oracle AQ JMS 连接被 tomcat 池放弃

问题描述

我们有一个连接到 Oracle AQ 的 Spring Boot 集成应用程序。一切似乎都按预期工作,除了 Tomcat 池连接管理器似乎相信 JMS 会话连接被放弃并每 x 配置秒强制关闭它。

我已经调试了代码,即使没有收到消息,Spring AbstractPollingMessageListenerContainer 也会执行提交,以尝试重置超时计数器:

                // Nevertheless call commit,in order to reset the transaction timeout (if any).
                // However,don't do this on Tibco since this may lead to a deadlock there.
                if (shouldCommitAfterNoMessageReceived(sessionToUse)) {
                    commitIfNecessary(sessionToUse,message);
                }

尽管如此,tomcat-jdbc ConnectionPool.checkAbandoned() 方法确实在连接上执行了放弃()。

我能想到的唯一解决方法是将“abandonWhenPercentageFull”属性设置为更高的值,以阻止连接被强制关闭

这种行为正常吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)