Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从JNDI连接池检索的数据库连接设置_Java_Database_Jndi_Commit_Pooling - Fatal编程技术网

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

Java 从JNDI连接池检索的数据库连接设置,java,database,jndi,commit,pooling,Java,Database,Jndi,Commit,Pooling,我在websphere服务器上托管了一个数据源,我希望通过我的应用程序客户端使用该数据源 从JNDI数据源检索数据库连接后,我将连接的提交设置更改为false。之后,我将利用这些连接,并在任务完成后关闭连接 我的疑问是,如果在关闭连接(我的意思是将连接返回到池)之前忘记更改连接的提交设置,会发生什么。如果任何其他客户端访问此数据源,并且他/她获得相同的连接,提交设置是否仍然存在,或者服务器将重置这些连接设置 问候,, Sunny。通常池中的连接都使用特定于AS的实现进行包装,这样可以避免客户端过

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

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

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

问候,,
Sunny。

通常池中的连接都使用特定于AS的实现进行包装,这样可以避免客户端过于侵入。当对连接调用特定方法时,它被认为是“脏的”,可能不会返回到池中,而是关闭并重新创建,或者重置为原始状态(如果可能)。通常会设置如何处理这些情况,例如在Weblogic中删除受感染的连接

不过,这些自我清洗的效果也可能取决于驾驶员。因此,我建议您使用1连接池进行一个简单的测试。将连接设置为autocommit=false,不要关闭它,退出并尝试从另一个客户端使用它,测试将检查autocommit属性的实际状态

另一个要考虑的是连接.Cuffe(),因为包装器没有关闭连接,而是把它放到池中。因此,如果您的客户端在调用close()之前断开连接(并在此之前将autocommit设置回),则该连接可能对其他池客户端不可用,从而造成连接泄漏