gpt4 book ai didi

java - Datanucleus - DBCP2 集成警告 - PoolableConnectionFactory 未链接到池

转载 作者:太空宇宙 更新时间:2023-11-04 12:56:37 28 4
gpt4 key购买 nike

我想升级 GWT-JDO 应用程序以使用 DBCP2 而不是 DBCP。配置部分工作得很好,但我在控制台中看到警告

WARN [org.apache.commons.dbcp2.PoolingDataSource] PoolableConnectionFactory not linked to pool. Calling setPool() to fix the configuration.

PersistenceManagerFactory 是使用 JDOHelper 构建的,因此我无法访问 DBCP2 对象来设置池。我们正在使用

JDOHelper.getPersistenceManagerFactory(properties)

我在 JDO 类中进行了一些调试,我发现即使发出警告,池实际上也会设置为连接工厂。请在下面找到来自 org.apache.commons.dbcp2.PoolingDataSource 的代码

// Verify that _pool's factory refers back to it.  If not, log a warning and try to fix.
if (pcf.getPool() != _pool) {
log.warn(Utils.getMessage("poolingDataSource.factoryConfig"));
@SuppressWarnings("unchecked") // PCF must have a pool of PCs
ObjectPool<PoolableConnection> p = (ObjectPool<PoolableConnection>) _pool;
pcf.setPool(p);
}

有人知道如何使用 JDOHelper 正确处理 JDO-Datanucleus-DBCP2 配置吗?

最佳答案

似乎是一些奇怪的 DBCP2 事情,它应该自己做,但由于某种原因却没有。在 DataNucleus DBCP2 connector code他们有

connectionPool = new org.apache.commons.pool2.impl.GenericObjectPool(poolableCF);

我个人认为这足以让 DBCP2 知道池 DBCP2 库返回链接到 poolableCF(即传入的内容),但如果您这样做,它会给出此日志消息。如果添加以下行

poolableCF.setPool(connectionPool);

在他们的代码中,您不会立即收到该日志消息。也许您想将其贡献给 DataNucleus 项目?

关于java - Datanucleus - DBCP2 集成警告 - PoolableConnectionFactory 未链接到池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35341760/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com