You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Payara 5集群中JDBC连接池未跨实例共享的原因及文档咨询

问题解答

为什么JDBC连接池未在集群实例间共享?

Payara(包括其前身GlassFish)的JDBC连接池是按单个应用服务器实例独立创建和管理的,并非集群级别的共享资源。当你将连接池的目标设置为集群时,本质是把该连接池的配置同步复制到集群中的每一个实例,每个实例都会基于这个配置初始化属于自己的独立连接池。

具体到你的场景:

  • 每个实例都会维护自己的连接池,你设置的「最大连接数5」是单个实例的连接上限
  • 集群总连接数自然就是实例数乘以单实例最大连接数,也就是4×5=20,和你通过数据库工具观察到的结果完全一致

关于JTA数据源的补充说明

你在persistence.xml里配置的<jta-data-source>对应的JNDI资源,在集群环境下也是每个实例独立绑定的。应用在某个实例上运行时,会从当前实例的本地连接池获取连接,不会跨实例去共享其他节点的连接池资源。

相关机制说明

Payara的集群资源模型中,JDBC连接池属于实例级资源,而非集群共享资源。集群目标的作用是批量将配置同步到所有实例,而非让资源在实例间共享。由于每个集群实例都是独立的JVM进程,连接池是JVM进程内部的资源,无法直接跨进程实现连接共享。

内容的提问来源于stack exchange,提问作者matthjes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 05:40:57