项目运用当中,在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
相关资源:敏捷开发V1.0.pptx