我在websphere服务器上托管了一个数据源,我希望通过我的应用程序客户端使用该数据源.从JNDI数据源检索数据库连接后,我将连接的提交设置更改为false.之后,我将使用这些连接,我将在任务完成后关闭连接.我怀疑如果我忘...
我在websphere服务器上托管了一个数据源,我希望通过我的应用程序客户端使用该数据源.
从JNDI数据源检索数据库连接后,我将连接的提交设置更改为false.之后,我将使用这些连接,我将在任务完成后关闭连接.
我怀疑如果我忘记在关闭之前更改连接的提交设置(我的意思是返回到池的连接)它会发生什么.如果任何其他客户端访问此数据源并且他/她获得相同的连接,则提交设置仍然存在,或者服务器将重置这些连接设置.
问候,
艳阳天.
解决方法:
通常,池中的连接使用特定于AS的实现进行包装,这会实现客户端过于干扰.在连接上调用特定方法时,它被视为“脏”,并且可能不会返回到池,而是关闭并重新创建,或者如果可能,重置为原始状态.通常有关于如何处理这些情况的设置,例如:在Weblogic中删除受感染的连接.
这些自我清洁的效果虽然也取决于司机.因此,我建议您使用1连接池进行简单测试.设置与autocommit = false的连接,不要关闭它,退出并尝试从另一个客户端使用它,并通过测试检查autocommit属性的实际状态.
另一件需要考虑的事情是,AS包装器中的Connection.close()不会关闭连接,而是将其放入池中.因此,如果客户端在调用close()之前断开连接(并在此之前设置自动提交),则连接可能无法用于其他池客户端,从而导致连接泄漏.
本文标题为:java – 从JNDI连接池检索的数据库连接设置
基础教程推荐
- SpringBoot返回对象时,如何将Long类型转换为String 2023-01-08
- RocketMQ Namesrv架构工作原理详解 2023-04-07
- Java多线程实现第三方数据同步 2023-04-07
- Java中的StackOverflowError错误问题及解决方法 2023-02-27
- SpringMVC RESTFul实战案例删除功能实现 2022-11-20
- Spring MVC之DispatcherServlet详解_动力节点Java学院整理 2023-07-30
- mybatis中的if test判断入参的值问题 2022-12-03
- Java实现HDFS文件上传下载 2023-01-29
- JVM GC 垃圾收集梳理总结 2023-02-20
- Mybatis在注解上如何实现动态SQL 2023-01-02