项目运用当中,在tomcat 中的 conf/server.xml
中配制JNDI
配置如下:
<Resource auth="Container" name="jdbc/ztc" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/ztc">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:sqlserver://192.168.1.99:1433;databaseName=ztc</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>username</name>
<value>ecp</value>
</parameter>
<parameter>
<name>password</name>
<value>123456</value>
</parameter>
但是在运行的时候,因为需要经常性的对数据库进行联接,释放。一会就出现下列异常:
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:103)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at com.ytx.ztc.dao.BetbrainOdds45DAOImpl.insertOrUpdateBetbrainOdds45(BetbrainOdds45DAOImpl.java:526)
at com.ytx.ztc.bean.BetbrainCorrentScoreImpl.getOddsByUrl(BetbrainCorrentScoreImpl.java:256)
at com.ytx.ztc.bean.BetbrainCorrentScoreImpl.getData(BetbrainCorrentScoreImpl.java:132)
at com.ytx.ztc.timer.CorrentScoreTimer.run(CorrentScoreTimer.java:28)
at java.util.TimerThread.mainLoop(Timer.java:432)
at java.util.TimerThread.run(Timer.java:382)
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:756)
经过网上搜索,才知道是因为,联接池出现异常。所以添加下面的三个属性配制
<!-- default fasle-->
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<!-- set recently request to recall connection -->
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
<!-- log infomation log debug .-->
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
OK。问题已经解决!
参考联接地址:http://www.cnblogs.com/willpower/archive/2008/07/30/1256582.html