java - 两个 Web 应用程序指向 Sun glassfish 服务器中的相同 jndi

标签 java jdbc

如果两个 Web 应用程序将同一个 jndi 指向 sun glassfish 服务器中的同一个连接池,是否会出现任何问题?或者我是否需要设置不同的jndi来连接到同一个连接池?

另外,对于共享同一个连接池的两个 Web 应用程序,有什么需要注意的问题吗?例如,是否会有一些事务锁定会导致线程阻塞等?

最佳答案

在您显式关闭连接之前,连接池中打开的连接不会在所有其他请求/线程之间共享。所以绝对不应该有交易问题。仅当连接打开时间超过必要时间或将其传递到打开连接的方法 block 之外时,才可能遇到问题。只要您遵循在 try-finally block 中尽可能短的范围内打开和关闭连接(以及语句和结果集)的标准 JDBC 习惯用法,就不会有问题。

在不同的 Web 应用程序之间共享同一个容器管理的连接池是完全可以的。您只需确保有足够的连接可供多个 Web 应用程序使用。例如,您可能想稍微增加池大小。

关于java - 两个 Web 应用程序指向 Sun glassfish 服务器中的相同 jndi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7748279/

相关文章:

java - NoClassDefFoundError : Could not initialize class com. sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl

java - 哪种 Java HTML 模板技术的工作方式最接近 Ruby (erb/haml)?

java - 从 System.out.println 获取 JSON

java - 连接 Kundera 到 Cassandra 集群

java - Apache 的 Velocity — getTemplate() 。如何传递字符串/对象而不是 .VM 文件

java - object.clone() 在 Java 中究竟是如何工作的?

java - 在批处理模式下通过可调用语句调用 SP 时检索 OUT 参数

java - PreparedStatement 方法中的 ArrayOutOfBoundsException

java - 在哪里使用 JDBC 创建准备好的语句?

jdbc - WAS 8 的 WSCallHelper.jdbcCall 实现