java – 从JNDI连接池检索的数据库连接设置

我在websphere服务器上托管了一个数据源,我希望通过我的应用程序客户端使用该数据源.

从JNDI数据源检索数据库连接后,我将连接的提交设置更改为false.之后,我将使用这些连接,我将在任务完成后关闭连接.

我怀疑如果我忘记在关闭之前更改连接的提交设置(我的意思是返回到池的连接)它会发生什么.如果任何其他客户端访问此数据源并且他/她获得相同的连接,则提交设置仍然存在,或者服务器将重置这些连接设置.

问候,
艳阳天.

解决方法:

通常,池中的连接使用特定于AS的实现进行包装,这会实现客户端过于干扰.在连接上调用特定方法时,它被视为“脏”,并且可能不会返回到池,而是关闭并重新创建,或者如果可能,重置为原始状态.通常有关于如何处理这些情况的设置,例如:在Weblogic中删除受感染的连接.

这些自我清洁的效果虽然也取决于司机.因此,我建议您使用1连接池进行简单测试.设置与autocommit = false的连接,不要关闭它,退出并尝试从另一个客户端使用它,并通过测试检查autocommit属性的实际状态.

另一件需要考虑的事情是,AS包装器中的Connection.close()不会关闭连接,而是将其放入池中.因此,如果客户端在调用close()之前断开连接(并在此之前设置自动提交),则连接可能无法用于其他池客户端,从而导致连接泄漏.

上一篇:LeetCode Merge k Sorted Lists 解决报告


下一篇:java – 带有mysql的Tomcat:“无法为连接URL’null’创建类”的JDBC驱动程序”