CQ DataSourcePool java.lang.IllegalStateException:池未打开

时间:2015-03-04 08:51:54

标签: osgi cq5 aem apache-commons-dbcp

我已将Adobe CQ配置为使用连接池来处理与MySql数据库的连接。一切正常,但几个小时后,我在尝试连接数据库时看到了这个异常。

Caused by: java.lang.IllegalStateException: Pool not open
        at org.apache.commons.pool.BaseObjectPool.assertOpen(BaseObjectPool.java:99)
        at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:917)
        at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)

我已经看到在多个实例/应用程序中报告了此类错误。我想知道它在CQ上的工作方式是否有问题。

我使用的是CQ5.6.1,以下是我用来获取连接的代码片段

@Reference
private DataSourcePool dataSourceService;
DataSource ds;
Connection connection;
        try{
            ds = (DataSource)   dataSourceService.getDataSource("datasource_name);
            connection = ds.getConnection();//this line causes the exception
        catch(Exception e){
            e.printStackTrace();
        }finally{ connection.close(); }

这是我的数据源配置 enter image description here

我有什么遗失的吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。您需要仔细检查您的配置。检查OSGI,检查代码,了解数据库设置的每个细节。这些是要注意的两件事。然后尝试再次安装软件包/软件包。