首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据核- DBCP2集成警告-未链接到池的PoolableConnectionFactory

数据核- DBCP2集成警告-未链接到池的PoolableConnectionFactory
EN

Stack Overflow用户
提问于 2016-02-11 14:17:57
回答 1查看 468关注 0票数 1

我想升级一个GWT应用程序,以使用DBCP2而不是DBCP。配置部分运行良好,但我在控制台中看到了一个警告。

代码语言:javascript
复制
WARN [org.apache.commons.dbcp2.PoolingDataSource] PoolableConnectionFactory not linked to pool. Calling setPool() to fix the configuration.

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

代码语言:javascript
复制
JDOHelper.getPersistenceManagerFactory(properties)

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

代码语言:javascript
复制
// 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正确处理2配置的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 16:07:12

似乎是一些奇怪的DBCP2的事情,它应该做自己,但不是出于某种原因。在DataNucleus DBCP2连接器代码

代码语言:javascript
复制
connectionPool = new org.apache.commons.pool2.impl.GenericObjectPool(poolableCF);

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

代码语言:javascript
复制
poolableCF.setPool(connectionPool);

在他们的代码中,您马上就不会收到日志消息。也许你想把它贡献给DataNucleus项目?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35341760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档