我在websphere服务器上托管了一个数据源,我希望通过我的应用程序客户端使用该数据源.从JNDI数据源检索数据库连接后,我将连接的提交设置更改为false.之后,我将使用这些连接,我将在任务完成后关闭连接.我怀疑如果我忘...
我在websphere服务器上托管了一个数据源,我希望通过我的应用程序客户端使用该数据源.
从JNDI数据源检索数据库连接后,我将连接的提交设置更改为false.之后,我将使用这些连接,我将在任务完成后关闭连接.
我怀疑如果我忘记在关闭之前更改连接的提交设置(我的意思是返回到池的连接)它会发生什么.如果任何其他客户端访问此数据源并且他/她获得相同的连接,则提交设置仍然存在,或者服务器将重置这些连接设置.
问候,
艳阳天.
解决方法:
通常,池中的连接使用特定于AS的实现进行包装,这会实现客户端过于干扰.在连接上调用特定方法时,它被视为“脏”,并且可能不会返回到池,而是关闭并重新创建,或者如果可能,重置为原始状态.通常有关于如何处理这些情况的设置,例如:在Weblogic中删除受感染的连接.
这些自我清洁的效果虽然也取决于司机.因此,我建议您使用1连接池进行简单测试.设置与autocommit = false的连接,不要关闭它,退出并尝试从另一个客户端使用它,并通过测试检查autocommit属性的实际状态.
另一件需要考虑的事情是,AS包装器中的Connection.close()不会关闭连接,而是将其放入池中.因此,如果客户端在调用close()之前断开连接(并在此之前设置自动提交),则连接可能无法用于其他池客户端,从而导致连接泄漏.
本文标题为:java – 从JNDI连接池检索的数据库连接设置
- Java中String类的常用方法总结 2023-06-30
- springboot获取真实ip地址的方法实例 2022-11-29
- 关于Java8新特性Optional类的详细解读 2023-07-14
- Java Web开发中过滤器和监听器使用详解 2023-06-30
- Jmeter BeanShell 内置变量vars、props、prev的使用详解 2023-06-10
- Linux 下java jps命令使用解析详解 2023-08-01
- Tomcat配置https并访问http自动跳转至https 2023-07-31
- ClassLoader双亲委派模式作用详解 2023-06-30
- SpringBoot 过滤器 Filter使用实例详解 2023-06-06
- Java线程之间的共享与协作详解 2023-02-11