Hibernate com.mchange.v2.c3p0.sqla-base-de-datos-tiene-transacciones

Hibernate com.mchange.v2.c3p0.sqla-base-de-datos-tiene-transacciones,hibernate,c3p0,Hibernate,C3p0,我有一个JSF+Spring+Hibernate应用程序。使用c3p0池v.0.9.1,然后部署它,日志不断地向我抛出SQLWarnings,如下所示,但不知道为什么 spring上下文中c3po的配置为: <bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driv

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

spring上下文中c3po的配置为:

<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)
请看完整的解释

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

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


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

这些SQLWarnings在我的应用程序中有什么含义。如果它们重要与否,因为它们与事务相关,我不喜欢我的应用程序因为这个原因没有预期的行为。非常感谢你的回答,如果不重要的话,就把日志放出来。我不知道它们是否重要;这是一个Informix问题,也许你可以用这个标签提问?它们可能不太重要。绝大多数使用JDBC的应用程序从不检查SQLWarnings。默认情况下,c3p0在检查和发出它们时是不寻常的。不过,安全总比遗憾好,你要试着理解他们是从哪里来的。