首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除与Oracle DB的连接时,将连续打印PooledConnection has is closed

删除与Oracle DB的连接时,将连续打印PooledConnection has is closed
EN

Stack Overflow用户
提问于 2016-05-17 14:57:20
回答 2查看 578关注 0票数 2

我已经安装了wso2esb-4.9.0,并将主数据源配置为oracle DB。当由于网络连接问题而断开与Oracle数据库的连接时,即使连接再次恢复,也会继续打印以下错误。只有在重新启动之后,异常才会停止。

TID:-1234 2016-05-16 00:53:21,457错误{org.wso2.carbon.registry.core.utils.RegistryUtils} -无法构建connectionId。{org.wso2.carbon.registry.core.utils.RegistryUtils}源:在oracle.jdbc.driver.PhysicalConnection.getMetaData(PhysicalConnection.java:3131) at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown java.sql.SQLRecoverableException关闭连接) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) at org。apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109)在org.wso2.carbon.ndatasource.rdbms.ConnectionRollbackOnReturnInterceptor.invoke(ConnectionRollbackOnReturnInterceptor.java:51)在org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109)在org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:71)在org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109)在org.apache.tomcat.jdbc.pool.interceptor.ConnectionState.invoke(ConnectionState.java:153) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.TrapException.invoke(TrapException.java:41) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy。$Proxy14。org.wso2.carbon.registry.core.utils.RegistryUtils.getConnectionId(RegistryUtils.java:194) at org.wso2.carbon.registry.core.jdbc.dataaccess.JDBCDatabaseTransaction$ManagedRegistryConnection.getConnectionId(JDBCDatabaseTransaction.java:1133) at org.wso2.carbon.registry.core.jdbc.dataaccess.JDBCDatabaseTransaction$ManagedRegistryConnection.rollback(JDBCDatabaseTransaction.java:1288) at org.wso2.carbon.registry.core.jdbc.dataaccess.JDBCTransactionManager.rollbackTransaction(JDBCTransactionManager.java:120) at org.wso2.Carbon的getMetaData(来源不详)。registry.core.jdbc.dao.JDBCLogsDAO.rollbackTransaction(JDBCLogsDAO.java:335)在org.wso2.carbon.registry.core.jdbc.dao.JDBCLogsDAO.getLogList(JDBCLogsDAO.java:306)在org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.getLogs(EmbeddedRegistry.java:2332)在org.wso2.carbon.registry.core.caching.CacheBackedRegistry.getLogs(CacheBackedRegistry.java:402)在org.wso2.carbon.registry.core.session.UserRegistry.getLogsInternal(UserRegistry.java:1806)at org.wso2.carbon.registry.core.session.UserRegistry.access$3600(UserRegistry.java:60) at org.wso2.carbon.registry.core.session.UserRegistry$37.run(UserRegistry.java:1777) at org.wso2.carbon.registry.core.session.UserRegistry$37.run(UserRegistry.java:1774) at java.security.AccessController.doPrivileged(Native Method) at org.wso2.carbon.registry.core.session.UserRegistry.getLogs(UserRegistry.java:1774) at org.wso2.carbon.registry.indexing.ResourceSubmitter.submitResource(ResourceSubmitter.java:119) at org.wso2.carbon.registry.indexing.ResourceSubmitter.run(ResourceSubmitter.java:76) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)

master-datasources.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="no"?><datasources-configuration xmlns:svns="http://org.wso2.securevault/configuration">

<providers>
    <provider>org.wso2.carbon.ndatasource.rdbms.RDBMSDataSourceReader</provider>
</providers>

<datasources>

    <datasource>
        <name>WSO2_CARBON_DB</name>
        <description>The datasource used for registry and user manager</description>
        <jndiConfig>
            <name>jdbc/WSO2CarbonDB</name>
        </jndiConfig>
        <definition type="RDBMS">
            <configuration>
                <url>jdbc:oracle:thin:@xxx.xx.x.xxx:1528/dvdb</url>
        <username>esbuser</username>
                <password svns:secretAlias="Datasources.WSO2_CARBON_DB.Configuration.Password">password</password>
                <driverClassName>oracle.jdbc.driver.OracleDriver</driverClassName>
                <maxActive>80</maxActive>
                <maxWait>60000</maxWait>
                <minIdle>5</minIdle>
                <testOnBorrow>true</testOnBorrow>
                <validationQuery>SELECT 1 FROM DUAL</validationQuery>
                <validationInterval>30000</validationInterval>
            </configuration>
        </definition>
    </datasource>
<datasource>
        <name>WSO2_REG_DB</name>
        <description>The datasource used for registry and user manager</description>
        <jndiConfig>
            <name>jdbc/WSO2REG</name>
        </jndiConfig>
        <definition type="RDBMS">
            <configuration>
                <url>jdbc:oracle:thin:@xxx.xx.x.xxx:1528/dvdb</url>
                <username>reguser</username>
                <password svns:secretAlias="Datasources.WSO2_REG_DB.Configuration.Password">password</password>
                <driverClassName>oracle.jdbc.driver.OracleDriver</driverClassName>
                <maxActive>50</maxActive>
                <maxWait>60000</maxWait>
                <minIdle>5</minIdle>
                <validationQuery>SELECT 1 FROM DUAL</validationQuery>
                <testWhileIdle>true</testWhileIdle>
        <timeBetweenEvictionRunsMillis>1800000</timeBetweenEvictionRunsMillis>
        <numTestsPerEvictionRun>5</numTestsPerEvictionRun>
        <minEvictableIdleTimeMillis>3600000</minEvictableIdleTimeMillis>
            </configuration>
        </definition>
    </datasource>
    <!-- For an explanation of the properties, see: http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html -->
    <!--datasource>
        <name>SAMPLE_DATA_SOURCE</name>
        <jndiConfig>
            <name></name>
            <environment>
                <property name="java.naming.factory.initial"></property>
                <property name="java.naming.provider.url"></property>
            </environment>
        </jndiConfig>
        <definition type="RDBMS">
            <configuration>

                <defaultAutoCommit></defaultAutoCommit>
                <defaultReadOnly></defaultReadOnly>
                <defaultTransactionIsolation>NONE|READ_COMMITTED|READ_UNCOMMITTED|REPEATABLE_READ|SERIALIZABLE</defaultTransactionIsolation>
                <defaultCatalog></defaultCatalog>
                <username></username>
                <password svns:secretAlias="WSO2.DB.Password"></password>
                <maxActive></maxActive>
                <maxIdle></maxIdle>
                <initialSize></initialSize>
                <maxWait></maxWait>

                <dataSourceClassName>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</dataSourceClassName>
                <dataSourceProps>
                    <property name="url">jdbc:mysql://localhost:3306/Test1</property>
                    <property name="user">root</property>
                    <property name="password">123</property>
                </dataSourceProps>

            </configuration>
        </definition>
    </datasource-->

</datasources>

存储库/conf/registry.xml

代码语言:javascript
复制
<currentDBConfig>wso2registry</currentDBConfig>
<readOnly>false</readOnly>
<enableCache>true</enableCache>
<registryRoot>/</registryRoot>

<dbConfig name="wso2registry">
    <dataSource>jdbc/WSO2CarbonDB</dataSource>
</dbConfig>

<dbConfig name="remoteRegistry">
    <dataSource>jdbc/WSO2REG</dataSource>
</dbConfig>

<remoteInstance url="https://registryhost:9453/registry">
    <id>9453</id>
    <dbConfig>remoteRegistry</dbConfig>
    <readOnly>false</readOnly>
    <registryRoot>/</registryRoot>
</remoteInstance>

<mount path="/_system/config" overwrite="false">
    <instanceId>9453</instanceId>
    <targetPath>/_system/nodes</targetPath>
</mount>

<mount path="/_system/governance" overwrite="false">
    <instanceId>9453</instanceId>
    <targetPath>/_system/governance</targetPath>
</mount>
EN

回答 2

Stack Overflow用户

发布于 2016-10-11 10:11:28

在我的例子中,这个问题是由于在存储库/config/registry.xml文件中删除了错误的行造成的。

我删除了以下代码:

代码语言:javascript
复制
<dbConfig name="wso2registry">
    <dataSource>jdbc/WSO2CarbonDB</dataSource>
</dbConfig>

而不是添加另一个dbConfig标记。

对我来说,更正是重新添加这个标签。如下所示:

代码语言:javascript
复制
<wso2registry>

<!-- These are used to define the DB configuration and the basic parameters to be used for the registry -->

<currentDBConfig>wso2registry</currentDBConfig>
<readOnly>false</readOnly>
<enableCache>true</enableCache>
<registryRoot>/</registryRoot>

<!-- This defines the default database and its configuration of the registry -->

<dbConfig name="wso2registry">
    <dataSource>jdbc/WSO2CarbonDB</dataSource>
</dbConfig>

<dbConfig name="sharedregistry">
    <dataSource>jdbc/WSO2RegistryDB</dataSource>
</dbConfig>
...
...
</wso2registry>

希望这篇文章能帮助你……

票数 0
EN

Stack Overflow用户

发布于 2018-05-09 00:09:22

我也有同样的问题。

在master-datasources.xml中,1-将数据源名称设置为与jndiConfig名称相同2-为注册表和用户管理设置2个具有不同名称的不同数据源。这里是我的master-datasources.xml

代码语言:javascript
复制
<datasource>
        <name>WSO2REG_DB</name>
        <description>The datasource used for registry</description>
        <jndiConfig>
            <name>jdbc/WSO2REG_DB</name>
        </jndiConfig>
        <definition type="RDBMS">
            <configuration>
                <url>jdbc:mysql://localhost:3306/registry?autoReconnect=true&amp;relaxAutoCommit=true&amp;</url>
                <username>apiuser</username>
                <password>apimanager</password>
                <driverClassName>com.mysql.jdbc.Driver</driverClassName>
                <maxActive>50</maxActive>
                <maxWait>60000</maxWait>
                <testOnBorrow>true</testOnBorrow>
                <validationQuery>SELECT 1</validationQuery>
                <validationInterval>30000</validationInterval>
            </configuration>
        </definition>
    </datasource>

    <datasource>
        <name>WSO2UM_DB</name>
        <description>The datasource used for user management</description>
        <jndiConfig>
            <name>jdbc/WSO2UM_DB</name>
        </jndiConfig>
        <definition type="RDBMS">
            <configuration>
                <url>jdbc:mysql://localhost:3306/userstore?autoReconnect=true&amp;relaxAutoCommit=true&amp;
                </url>
                <username>apiuser</username>
                <password>apimanager</password>
                <driverClassName>com.mysql.jdbc.Driver</driverClassName>
                <maxActive>50</maxActive>
                <maxWait>60000</maxWait>
                <testOnBorrow>true</testOnBorrow>
                <validationQuery>SELECT 1</validationQuery>
                <validationInterval>30000</validationInterval>
            </configuration>
        </definition>
    </datasource>

在registry.xml 1中-使用用户管理数据源设置wso2registry dbConfig 2-使用注册表数据源设置政府注册表dbConfig

这是我的registry.xml

代码语言:javascript
复制
<dbConfig name="wso2registry">
    <dataSource>jdbc/WSO2UM_DB</dataSource>
</dbConfig>

<dbConfig name="govregistry">
    <dataSource>jdbc/WSO2REG_DB</dataSource>
</dbConfig>

它对我起作用了,我的IS-Server可以正常启动。当问题还没有解决时,希望它也能为你工作。

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

https://stackoverflow.com/questions/37269149

复制
相关文章

相似问题

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