2015-03-03 37 views
0

我有一個JSF + Spring + Hibernate的應用。隨着c3p0池v.0.9.1,然後部署它,日誌不斷拋出我SQLWarnings,如下所示,並不知道爲什麼。com.mchange.v2.c3p0.SQLWarnings香格里拉基地去DATOS tiene transacciones

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) 

回答

0

請參閱here更全面的解釋。

,如果你想忽略的SQLWarnings快速的解決方法是關閉日誌在日誌記錄配置文件中的記錄com.mchange.v2.c3p0.SQLWarnings。 (不要關閉所有C3P0記錄,只是抑制這種一個記錄器。)

更好的解決辦法是要弄清楚爲什麼你的DBMS/JDBC驅動程序發出這些警告,並解決這個問題。無論您是否使用c3p0,警告都在那裏。只是c3p0主動檢查並記錄它們,這是應用程序很難做的事情。

而且,現在c3p0-0.9.1是一個很老版本使用的庫。我強烈建議您升級到當前版本,c3p0-0.9.5

+0

什麼影響我的應用程序做這些的SQLWarnings。如果它們很重要或不重要,因爲它們與交易有關,而且我不喜歡我的申請沒有預料到這個原因的行爲。非常感謝您的回答,如果不重要,請發出SQLWarning日誌。 – 2015-03-04 11:35:21

+0

我不知道他們是否重要;這是一個Informix的問題(也許你可以與標籤問?) – 2015-03-04 12:35:09

+0

(他們可能不是太重要了。絕大多數JDBC-使用應用程序從未費心去檢查的SQLWarnings。C3P0是在檢查和默認發射他們不尋常的。不過,比抱歉更安全,你試圖瞭解他們來自哪裏。) – 2015-03-04 12:37:38