【问题标题】:com.mchange.v2.c3p0.SQLWarnings La base de datos tiene transaccionescom.mchange.v2.c3p0.SQLWarnings La base de datos tiene transacciones
【发布时间】:2015-03-06 16:54:00
【问题描述】:

我有一个 JSF + Spring + Hibernate 应用程序。使用 c3p0 pool v.0.9.1 然后部署它,日志不断向我抛出 SQLWarnings,如下所示,不知道为什么。

c3po在spring上下文中的配置为:

<bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
              destroy-method="close">
       <property name="driverClass" value="com.informix.jdbc.IfxDriver"/>
       <property name="jdbcUrl"
                      value="${url}" />
       <property name="user" value="${user}" />
       <property name="password" value="${password}" />
       <property name="initialPoolSize" value="1" />   
       <property name="maxPoolSize" value="20" />
       <property name="idleConnectionTestPeriod" value="150" />
       <property name="acquireIncrement" value="1" />
       <property name="maxStatements" value="0" />
       <property name="numHelperThreads" value="3" />
       <property name="maxIdleTime" value="3600" />     
</bean>

输出是:

    INFO  [com.mchange.v2.c3p0.SQLWarnings] La base de datos tiene transacciones
java.sql.SQLWarning: La base de datos tiene transacciones
        at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:125)
        at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:149)
        at com.informix.jdbc.IfxSqliConnect.addWarning(IfxSqliConnect.java:1817)
        at com.informix.jdbc.IfxSqliConnect.setWarnings(IfxSqliConnect.java:3935)
        at com.informix.jdbc.IfxSqliConnect.OpenDbInit(IfxSqliConnect.java:2591)
        at com.informix.jdbc.IfxSqliConnect.setDatabaseOpen(IfxSqliConnect.java:2465)
        at com.informix.jdbc.IfxSqli.callsetDatabaseOpen(IfxSqli.java:2496)
        at com.informix.jdbc.IfxSqli.executeOpenDatabase(IfxSqli.java:1712)
        at com.informix.jdbc.IfxSqliConnect.<init>(IfxSqliConnect.java:1242)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
        at com.informix.jdbc.IfxDriver.connect(IfxDriver.java:243)
        at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
        at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
        at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
        at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
        at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
        at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
        at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
        at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
2015-03-03 14:22:47,748 INFO  [com.mchange.v2.c3p0.SQLWarnings] Seleccionada base de datos de Informix Dynamic Server 2000
java.sql.SQLWarning: Seleccionada base de datos de Informix Dynamic Server 2000
        at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:125)
        at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:149)
        at com.informix.jdbc.IfxSqliConnect.addWarning(IfxSqliConnect.java:1817)
        at com.informix.jdbc.IfxSqliConnect.setWarnings(IfxSqliConnect.java:3941)
        at com.informix.jdbc.IfxSqliConnect.OpenDbInit(IfxSqliConnect.java:2591)
        at com.informix.jdbc.IfxSqliConnect.setDatabaseOpen(IfxSqliConnect.java:2465)
        at com.informix.jdbc.IfxSqli.callsetDatabaseOpen(IfxSqli.java:2496)
        at com.informix.jdbc.IfxSqli.executeOpenDatabase(IfxSqli.java:1712)
        at com.informix.jdbc.IfxSqliConnect.<init>(IfxSqliConnect.java:1242)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
        at com.informix.jdbc.IfxDriver.connect(IfxDriver.java:243)
        at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
        at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
        at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
        at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
        at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
        at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
        at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
        at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

【问题讨论】:

    标签: hibernate c3p0


    【解决方案1】:

    完整说明请参阅here

    如果您只想忽略 SQLWarnings,快速的解决方案是在您的日志记录配置文件中关闭记录器 com.mchange.v2.c3p0.SQLWarnings 的日志记录。 (不要关闭所有 c3p0 日志记录,只需抑制这一个记录器。)

    更好的解决方案是找出您的 DBMS/JDBC 驱动程序发出这些警告的原因并解决该问题。无论您是否使用 c3p0,都会出现警告。只是 c3p0 会主动检查并记录它们,这是很少有应用程序会费心去做的事情。

    另外,c3p0-0.9.1 现在是一个非常旧的库版本。我强烈建议您升级到当前版本,c3p0-0.9.5

    【讨论】:

    • 这些 SQLWarnings 在我的应用程序中有何影响。无论它们是否重要,因为它们与事务有关,我不喜欢我的应用程序没有预期的行为。非常感谢您的回答,如果不重要,请将 SQLWarning 日志放出。
    • 我根本不知道它们是否重要;这是一个 Informix 问题(也许你可以用那个标签问?)
    • (它们可能不太重要。绝大多数使用 JDBC 的应用程序从不费心检查 SQLWarnings。c3p0 在默认情况下检查和发出它们是不寻常的。不过,安全总比抱歉好,您尝试了解它们的来源。)
    猜你喜欢
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多