我有一个运行在Tomcat 7上的Java web应用程序,它使用JDBC连接到Oracle 11g数据库。该应用程序包含一个JSP,它使用JQuery向一个将数据插入数据库的servlet发出Ajax请求(使用.post函数)。当系统负载很轻时,我开始看到数据库中的空闲连接。我通过在SQL Developer中检查v $ session来观察它们。当我们运行性能测试时,它在大约2分钟内用150个连接最大化了数据库服务器。我多次访问过我的代码,并且始终关闭所有ResultSets,Statements和Connections中的finally代码块。当JSP同时提交多个Ajax请求时,问题就出现了,这让我认为这可能是一个多线程问题,但是,我一直在关注我的代码,并且没有跨线程共享数据。从数据源获取连接并关闭连接的代码位于所有DAO类继承的抽象基类中。有没有人有任何想法可能会导致这种情况?由于涉及很多类,我不确定要发布什么源代码;让我知道如果你想看到任何。谢谢你的帮助。为什么关闭它们后JDBC连接保持打开状态?
0
A
回答
0
尝试将maxWait设置为10000并观察超时。这将表明您的Web应用程序的某些组件未关闭数据库连接。
另外,试着限制maxActive到15,看看它是如何影响你的应用程序和Oracle中同时打开的连接数的。
+0
实际上,我们最终将maxWait设置为-1,将maxIdle设置为2,这似乎解决了问题。当系统负载很重时,它确实创建了额外的连接,但它们很快就会消失。 – jg8273
相关问题
- 1. SQLCE连接:让它们保持打开状态或让它们关闭?
- 2. Oracle JDBC连接缓存,连接长时间保持打开状态,并最终无法关闭它
- 3. 为什么我应该关闭或保持Redis连接打开?
- 4. Node.js + Oracle - 每次请求后都保持连接打开或关闭状态?
- 5. 连接未关闭。连接的当前状态为打开
- 6. 连接未关闭,连接的当前状态为打开
- 7. 打开它后关闭mongo/mongolian连接?
- 8. 为什么我的导航抽屉认为它已关闭,但在旋转后仍保持打开状态?
- 9. 关闭窗口后进程保持打开状态
- 10. 关闭VBA后,Textstream对象在Excel中保持打开状态
- 11. 关闭浏览器后让PHP cookies保持打开状态
- 12. DataList绑定:“连接未关闭,连接的当前状态为打开状态。”
- 13. 调试错误后,SSH连接保持打开状态
- 14. 使div打开/关闭状态持续
- 15. 连接未关闭。连接的当前状态已打开。 C#
- 16. 连接未关闭连接当前状态已打开
- 17. 连接未关闭。连接的当前状态已打开。 //新
- 18. Postgresql连接在JDBC关闭后保持空闲
- 19. TCPClient似乎不维持保持连接状态,为什么?
- 20. 关闭应用程序后保持开关按钮的状态
- 21. 为什么java.net.DatagramSocket支持“连接”状态?
- 22. VB.NET - 程序退出后控制台进程保持打开状态。我如何正确关闭它们?
- 23. 连接未关闭。该连接的当前状态为开放
- 24. Python - 如何关闭端口保持打开状态?
- 25. 为什么TCP连接在使用AT命令从Adruino GPRS连接到xively时保持关闭状态?
- 26. qTip保持打开状态
- 27. 为什么显示:block css暂时保持打开状态
- 28. 响应标头 - 连接:保持活动状态,关闭
- 29. 在jdbc中用mysql连接连接后如何保持结果打开?
- 30. 预加载HTML5视频使连接保持打开状态
什么是您的连接池设置? – Olaf
你有使用连接池(DBCP)吗? –
这是在Tomcat中的server.xml:logAbandoned = “真” maxActive = “50” 了maxidle = “2” MAXWAIT = “ - 1” removeAbandoned = “真” removeAbandonedTimeout = “10” – jg8273