JWZB: [24 10:41:18,984 HouseKeeper] ProxyConnection.reallyClose(194) | #0005 encountered errors during destruction:
com.ibm.db2.jcc.b.SqlException: [jcc][t4][10251][10308][3.53.70] 正在连接上执行事务时,请求了 java.sql.Connection.close()。
事务仍然保持活动状态,不能关闭连接。 ERRORCODE=-4471, SQLSTATE=null
at com.ibm.db2.jcc.b.bd.a(bd.java:660)
at com.ibm.db2.jcc.b.bd.a(bd.java:60)
at com.ibm.db2.jcc.b.bd.a(bd.java:120)
at com.ibm.db2.jcc.b.jb.t(jb.java:1105)
at com.ibm.db2.jcc.b.jb.w(jb.java:1128)
at com.ibm.db2.jcc.b.jb.u(jb.java:1114)
at com.ibm.db2.jcc.b.jb.close(jb.java:1098)
at org.logicalcobwebs.proxool.ProxyConnection.reallyClose(ProxyConnection.java:192)
at org.logicalcobwebs.proxool.ConnectionPool.removeProxyConnection(ConnectionPool.java:423)
at org.logicalcobwebs.proxool.HouseKeeper.sweep(HouseKeeper.java:139)
at org.logicalcobwebs.proxool.HouseKeeperThread.run(HouseKeeperThread.java:39)
JWZB: [24 10:41:19,015 HouseKeeper] HouseKeeper.sweep(149) | #0005 was active for 320422 milliseconds and has been removed automaticaly. The Thread responsible was named 'DefaultQuartzScheduler_Worker-8', but the last SQL it performed is unknown because the trace property is not enabled.
----------------------------------------------------------无敌分割线-----------------------------------------------------------------------
在使用proxool 时,出现该异常,表明
<property name="maximumActiveTime"></property>设置不合理。
maximumActiveTime 默认是 5 分钟, 含义是一个线程持有一个连接的最长时间,而不管这个连接是否处于 active 状态, 并且如果线程的持有时间超过这个时间的之后会自动清除掉这个连接. 但是很多时候5分钟并不够用, 所以需要在配置文件中进行设置, 其单位为毫秒(ms).
所以在目前的spring.xml文件的连接池配置中,暂时设置为1小时。
<property name="maximumActiveTime"><value>3600000</value></property>
关于设置maximumActiveTime为1小时,是否会负面影响,尚未考证。
分享到:
相关推荐
连接池的生命周期通常贯穿整个应用程序运行周期,除非进程终止,否则连接池将保持活动状态。即使在非活动状态下,连接池的维护成本也相对较低。 #### 连接的添加与回收 连接池根据最小和最大池大小动态管理连接。当...
在Spring框架中,可以使用@Transactional注解标记在方法级别上开启事务管理,Spring会自动处理事务的边界,异常发生时自动回滚,正常执行则提交事务。 5. 事务的隔离级别: 隔离级别决定了并发事务之间的可见性,...
- 配置合适的连接超时和空闲时间,确保连接池中的连接保持活动状态,同时及时回收无效连接。 8. **优化SQL查询**: - 尽可能使用索引,避免全表扫描。编写高效的SQL,减少JOIN操作,避免在WHERE子句中使用函数或...
- 监控与维护:DBCP会监控连接状态,对过期或异常的连接进行清理,确保池中的连接都是可用的。 4. **配置DBCP** 配置DBCP通常通过XML文件进行,包括设置初始化大小、最大连接数、超时时间、连接验证方式等。例如...
7. **checkoutTimeout**:当请求连接时,如果超过此参数设定的时间(单位:毫秒)仍然无法获取到连接,则抛出超时异常。默认值为100毫秒,过低的值可能导致正常情况下的误报,应根据实际应用负载进行调整。 8. **...
数据库连接的创建、释放、保持活动状态等操作都会在这里进行管理。对于提高系统的并发性能和资源利用率,有效的数据库连接管理至关重要。 最后,"Exception.h"是异常处理的头文件。在与数据库交互时,可能会遇到...
- **25 - 无效事务状态**:此类别涉及事务状态异常。 - **26 - 无效SQL声明状态**:此类别与无效的SQL声明状态有关。 - **28 - 无效授权状态**:此类别与权限相关的问题有关。 - **2D - 无效事务指定**:此类别涉及...
MySQL数据库在运行过程中可能会遇到“Sleep”状态的连接过多的问题,这不仅会占用服务器资源,还可能导致数据库性能下降。在本文中,我们将深入探讨这个问题的原因,并提供相应的解决方法。 首先,我们来理解一下...
- 作用:控制空闲状态下最大的连接数,超过此数值的空闲连接将被关闭。 8. **`minIdle`** - 描述:最小空闲连接数。 - 示例:`10` - 作用:保证最小的空闲连接数,避免频繁创建销毁连接。 9. **`logAbandoned`...
- **应用层异常处理**:在应用程序中增加异常捕获和处理逻辑,确保在出现异常时能够正确关闭连接并清理资源。 总结来说,解决MySQL因应用中断连接导致数据被锁的问题,关键在于确保事务的完整性和资源的有效管理。...
在Java编程中,异常处理是不可或缺的一部分,它帮助开发者识别并修复程序运行时可能出现的问题。以下是一些Java中常见的异常及其解决办法: 1. **Caused by: line 1:188: expecting CLOSE, found 'null'** 这个...
- **`autoCommitOnClose`**:当连接关闭时是否自动提交事务,默认为`false`,此处仍然为`false`。 - **`breakAfterAcquireFailure`**:如果在获取连接过程中失败,是否继续尝试获取下一个连接,默认为`false`,此处...
2. **监控连接使用情况**:定期查看连接池的状态,了解连接的实际使用情况,包括当前活动连接数、空闲连接数等。 3. **优化业务逻辑**:检查是否存在长时间占用连接的代码,比如没有正确关闭的Session或...
2. 定期检查并优化连接池状态:监控连接池中的活动连接、空闲连接和等待连接,确保连接池的健康运行。 3. 考虑数据库驱动兼容性:不同版本的数据库驱动可能与C3P0存在兼容性问题,需要确保使用的驱动与C3P0版本匹配...
需要注意的是,一个连接同一时间只能有一个游标的查询处于活动状态。如果想要同时进行多个查询,可以创建多个连接,或者在获取所有查询结果后再执行下一个查询。 此外,`pymssql`库也支持异常处理,通过`try/except...
在进行数据库操作时,应考虑异常处理,确保在发生错误时能够回滚事务,防止数据不一致。例如: ```python try: conn.autocommit(False) cursor.execute(sql) except Exception as e: conn.rollback() print(f...
理解并掌握这些启动和关闭方法,对于数据库管理员来说至关重要,能够确保在维护和故障处理时避免数据丢失和系统异常。在实际操作中,应根据具体情况选择合适的关闭方式,同时确保遵循正确的操作流程,以保证系统的...
- **监控连接池状态**:通过代码或者Windows性能监视器(PerfMon)监控连接池的状态,包括活动连接数、池中的连接数等,以便在问题发生前及时发现并采取措施。 - **使用连接池友好型设计**:尽量减少长时间保持开放...
- **特点**:可以在客户端缓存整个数据集,而无需保持到服务器的活动连接。 2. **DataTable** - **作用**:表示单个表的数据集合。 - **组成**:由多个`DataColumn`和`DataRow`组成。 - **示例**:在内存中模拟...