项目运用当中,在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
分享到:
相关推荐
DBCP(Database Connection Pool)是Apache的一个开源项目,提供了一个基于Java的数据源连接池实现。在上述问题中,应用程序遇到了由于连接池不合理的锁机制导致的连接耗尽问题,表现为无法从连接池获取新的数据库...
在执行编译程序时,如果虚拟机的内存不足,可能会出现“Virtual Memory Exhausted: Cannot Allocate Memory”的错误提示。这是因为编译程序需要占用大量的内存空间,而虚拟机的内存不足以满足编译程序的需求。 解决...
阿里dubbo出错提示Thread pool is EXHAUSTED问题及解决方法 阿里dubbo出错提示Thread pool is EXHAUSTED是一个常见的错误提示,通常发生在dubbo服务端线程池资源耗尽的情况下。在本篇文章中,我们将详细介绍该错误...
o POOL-152: GenericObjectPool can block forever in borrowObject when the pool is exhausted and a newly created object fails validation. When borrowing an object if a new object is created but ...
使用spring + atomikos+druid配置的分布式事务demo,两种数据源配置方式都可以,使用junit测试没问题,案例中使用的mysql数据库是8.0.11版本,版本不同请自行修改pom.xml和jdbc.properties
6. **异常处理**:库中还包括了一些异常类,如Pool Exhausted Exception,当池中没有可用对象且maxWait已过时会抛出这个异常。 7. **性能优化**:除了基本的池化功能,Apache Commons Pool还提供了一些性能优化策略...
主要介绍了Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)错误的解决方法,需要的朋友可以参考下
4. **异常处理**:当对象池中的对象不足或超过设定限制时,Apache Commons Pool 2 可以自动处理异常,如`Pool Exhausted Exception`和`PoolClosedException`,并提供合适的回退策略。 5. **性能优化**:通过高效的...
PHP 中最常见的错误之一是 "Allowed memory size of 134217728 bytes exhausted",這個錯誤是指 PHP腳本在執行過程中,超出了允許的内存限制,導致腳本無法繼續執行。在這篇文章中,我們將詳細解釋這個錯誤的原因、...
7. **异常处理**:池库还包含了一些处理和报告异常的机制,比如当池中的对象耗尽时,`GenericObjectPool`会抛出`Pool Exhausted Exception`。 8. **性能优化**:通过合理设置对象池的参数,可以有效地优化内存使用...
- `WHEN_EXHAUSTED_FAIL`: 没有可用连接时,抛出`NoSuchElementException`异常。 - `WHEN_EXHAUSTED_BLOCK`: 阻塞请求,直到有连接释放,或者等待达到`maxWait`时间后抛出`JedisConnectionException`。 - `WHEN_...
PHP错误“Allowed memory size of 67108864 bytes exhausted”通常表示程序运行过程中已用尽了分配给它的内存,导致内存溢出。这个错误在处理大数据量、复杂运算或者大型文件时尤其常见。在PHP中,默认的内存限制...
cwb@laptop$ (./a.out | tail -1) & (./a.out | tail -1) mmap: Cannot allocate memory mmap: Cannot allocate memory 121126: Allocated map: 65514, 0x7f93dae09000 121128: Allocated map: 65514, 0x7fbce487...
在使用Redis客户端Jedis时,有时会遇到"connection timeout"的问题,这通常意味着客户端尝试连接到Redis服务器时超时,无法建立有效的网络连接。解决这个问题的一种常见策略是使用Jedis的连接池JedisPool,它提供了...
- **relocation R_X86_64_32 against `a local symbol' cannot be used when making a shared object:** 这条信息明确指出在构建共享对象(即动态库)时,遇到了针对本地符号的重定位问题,这在默认情况下是不允许的...
5. **异常处理**:当池中的对象不足或者无法满足需求时,Apache Commons Pool 会抛出相应的异常,如`NoSuchElementException`(没有更多可借用的对象)和`Pool Exhausted Exception`(池耗尽)。 6. **配置参数**:...
云服务器编译安装PHP遇到virtual memory exhausted: Cannot allocate memory
在PHP编程中,"Allowed memory size of bytes exhausted"是一个常见的错误,它表示程序在执行过程中耗尽了分配给它的内存。这个错误通常发生在处理大型数据集、递归操作或者内存泄漏时。以下是一些关于如何识别和...