最近在整spring+jpa+struts2
项目连接两个数据库,默认连接oracle,还有一个连接informix。
oralce用的是LocalEntityManagerFactoryBean,JpaTransactionManager
informix用的是jdbctemplate ,DataSourceTransactionManager。当我用用jdbctemplate连接informix,查询数据的时候,总是报一下警告:INFO 2009-09-22 09:20:39,984 SQLWarnings:logAndClearWarnings - Database has transactions
java.sql.SQLWarning: Database has transactions
at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:125)
at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:149)
at com.informix.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:1995)
at com.informix.jdbc.IfxSqliConnect.t(IfxSqliConnect.java:4243)
at com.informix.jdbc.IfxSqliConnect.b(IfxSqliConnect.java:2823)
at com.informix.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:2696)
at com.informix.jdbc.IfxSqli.a(IfxSqli.java:2643)
at com.informix.jdbc.IfxSqli.executeOpenDatabase(IfxSqli.java:1836)
at com.informix.jdbc.IfxSqliConnect.<init>(IfxSqliConnect.java:1361)
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:513)
at com.informix.jdbc.IfxDriver.connect(IfxDriver.java:254)
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)
INFO 2009-09-22 09:20:39,984 SQLWarnings:logAndClearWarnings - Database selected
java.sql.SQLWarning: Database selected
at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:125)
at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:149)
at com.informix.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:1995)
at com.informix.jdbc.IfxSqliConnect.t(IfxSqliConnect.java:4249)
at com.informix.jdbc.IfxSqliConnect.b(IfxSqliConnect.java:2823)
at com.informix.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:2696)
at com.informix.jdbc.IfxSqli.a(IfxSqli.java:2643)
at com.informix.jdbc.IfxSqli.executeOpenDatabase(IfxSqli.java:1836)
at com.informix.jdbc.IfxSqliConnect.<init>(IfxSqliConnect.java:1361)
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:513)
at com.informix.jdbc.IfxDriver.connect(IfxDriver.java:254)
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)
这些警告在网上没有看到解决办法。我也不知道到底是哪里错了。
现在只要一查询就不停的报这些警告,但是数据还是查的到,程序还是照样运行。如果我不管这些警告,项目长期跑起来,会不会有什么影响呢?这些警告到底是什么引起的呢?
项目连接两个数据库,默认连接oracle,还有一个连接informix。
oralce用的是LocalEntityManagerFactoryBean,JpaTransactionManager
informix用的是jdbctemplate ,DataSourceTransactionManager。当我用用jdbctemplate连接informix,查询数据的时候,总是报一下警告:INFO 2009-09-22 09:20:39,984 SQLWarnings:logAndClearWarnings - Database has transactions
java.sql.SQLWarning: Database has transactions
at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:125)
at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:149)
at com.informix.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:1995)
at com.informix.jdbc.IfxSqliConnect.t(IfxSqliConnect.java:4243)
at com.informix.jdbc.IfxSqliConnect.b(IfxSqliConnect.java:2823)
at com.informix.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:2696)
at com.informix.jdbc.IfxSqli.a(IfxSqli.java:2643)
at com.informix.jdbc.IfxSqli.executeOpenDatabase(IfxSqli.java:1836)
at com.informix.jdbc.IfxSqliConnect.<init>(IfxSqliConnect.java:1361)
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:513)
at com.informix.jdbc.IfxDriver.connect(IfxDriver.java:254)
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)
INFO 2009-09-22 09:20:39,984 SQLWarnings:logAndClearWarnings - Database selected
java.sql.SQLWarning: Database selected
at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:125)
at com.informix.util.IfxWarnMsg.getSQLWarning(IfxWarnMsg.java:149)
at com.informix.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:1995)
at com.informix.jdbc.IfxSqliConnect.t(IfxSqliConnect.java:4249)
at com.informix.jdbc.IfxSqliConnect.b(IfxSqliConnect.java:2823)
at com.informix.jdbc.IfxSqliConnect.a(IfxSqliConnect.java:2696)
at com.informix.jdbc.IfxSqli.a(IfxSqli.java:2643)
at com.informix.jdbc.IfxSqli.executeOpenDatabase(IfxSqli.java:1836)
at com.informix.jdbc.IfxSqliConnect.<init>(IfxSqliConnect.java:1361)
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:513)
at com.informix.jdbc.IfxDriver.connect(IfxDriver.java:254)
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)
这些警告在网上没有看到解决办法。我也不知道到底是哪里错了。
现在只要一查询就不停的报这些警告,但是数据还是查的到,程序还是照样运行。如果我不管这些警告,项目长期跑起来,会不会有什么影响呢?这些警告到底是什么引起的呢?
没看到过java.sql.SQLWarning。
事出必有因,还是处理了比较好。
以免来日留下后患。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="emagDataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close"> <property name="driverClass" value="com.informix.jdbc.IfxDriver" />
<property name="jdbcUrl"
value="jdbc:informix-sqli://10.1.1.26:9999/dzppt_srv:INFORMIXSERVER=dz_tst" />
<property name="user" value="dzppt" />
<property name="password" value="dzppt" />
<!--连接池中保留的最小连接数-->
<property name="minPoolSize" value="1" /> <!--连接池中保留的最大连接数 Default: 15 -->
<property name="maxPoolSize" value="3" /> <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间 Default: 3 -->
<property name="initialPoolSize" value="1" /> <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃 Default: 0 -->
<property name="maxIdleTime" value="5" /> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数 Default: 3 -->
<property name="acquireIncrement" value="5" /> </bean>
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="emagDataSource" />
</bean> <bean id="myTransactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="emagDataSource" />
</property>
</bean> <bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager">
<ref bean="myTransactionManager" />
</property> <!-- <property name="proxyTargetClass">-->
<!-- <value>true</value>-->
<!-- </property>--> <property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="merge*">PROPAGATION_REQUIRED</prop>
<prop key="attach*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="del*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="emagDAO"
class="com.quota.dao.hibernate.EmagInfoDAOImpl">
<property name="dataSource" ref="emagDataSource" />
</bean> <bean id="emagInfoManagerImpl"
class="com.quota.manager.impl.EmagInfoManagerImpl">
<property name="emagDAO">
<ref local="emagDAO" />
</property>
</bean> <bean id="emagInfoManager" parent="txProxyTemplate">
<property name="target">
<ref local="emagInfoManagerImpl" />
</property>
</bean></beans>
把日志级别改了下
之前是:log4j.rootLogger=INFO,stdout,dailyLog
现在把stdout去掉,变成:log4j.rootLogger=INFO,dailyLog
就是把警告屏蔽掉了。至于stdout在log4j中的作用是什么,我还没搞明白,呵呵。。