如果两个 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/