问题描述:
java.net.SocketException:打开端口 60,028 上服务器 /172.17.138.41 的套接字时出错,消息为:Too many open files。 ERRORCODE=-4499, SQLSTATE=08001
问题定位:
1. 在AIX命令行输入'netstat -an|grep 60028|wc -l', 发现数据库连接数达到连接池最大限制
2. 进入weblogic控制台,打开左侧菜单,配置连接池监控:
[Services] -> [JDBC] -> [Data Sources] -> [JDBC Data Source-0]
3. 打开标签项[Configration]下的[Diagnostics],选中以下配置项:
Profile Connection Usage
Profile Connection Reservation Wait
Profile Connection Leak
Profile Statement Usage
3. 保存weblogic配置生效,查看weblogic的domain日志[domain/servers/AdminServer/logs/AdminServer.log]发现:
####<2012-5-30 上午06时56分35秒 CST> <Warning> <JDBC> <ppcsonl_svc> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <
> <> <1338332195484> <BEA-001153> <Forcibly releasing inactive connection "weblogic.jdbc.wrapper.PoolConnection_com_ibm_db2_jcc_t4_b@a2531" back into the connection pool "JDBC_CIA
BKEDB", currently reserved by: java.lang.Exception
at weblogic.jdbc.common.internal.ConnectionEnv.setup(ConnectionEnv.java:308)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:314)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:292)
at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:425)
at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:316)
at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:93)
at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:106)
at weblogic.jdbc.pool.Driver.connect(Driver.java:149)
at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:642)
at weblogic.jdbc.jts.Driver.connect(Driver.java:124)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:338)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
at cia.broker.common.jdbc.DBAccessor.updateTblPara02(DBAccessor.java:929)
at cia.broker.quartz.ccb.ctrl.CCBBatchCollectProcCtrl.execute(CCBBatchCollectProcCtrl.java:156)
at sun.reflect.GeneratedMethodAccessor199.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
3. 检查domain日志中的红色部分代码,发现数据库连接未释放,修改代码后问题解决
分享到:
相关推荐
### AIX关于Weblogic的报错“Too many open files”的处理 #### 背景与问题概述 在AIX环境中部署Weblogic时,可能会遇到一个常见的错误提示:“Too many open files”。这一错误提示通常出现在系统资源限制不当的...
* 连接保留超时(Connection Reserve Timeout):指定在保留缓冲池连接的调用超时之前的秒数。 * 重试创建连接的频率(Connection Creation Retry Frequency):指定尝试建立与数据库的连接的间隔秒数。 * 钝化连接...
weblogic连接池配置说明, weblogic8.1连接池配置及简单优化
实时获取weblogic连接池使用情况;下载之后修改JmxWeblogicMonitor类中port、hostname、userName、passWord属性值(对应自己实际值);有注释很简单,不懂留言!
- 连接池管理:WebLogic提供了丰富的连接池管理功能,如监控连接状态,自动回收空闲过久的连接,以及在连接耗尽时自动扩展连接池大小。 - 故障恢复:如果连接发生异常,WebLogic会尝试自动重连,提高系统的健壮性。...
SQL数据连接池是WebLogic Server中的一个重要组件,用于优化数据库连接的创建、分配和管理,从而提高系统性能和资源利用率。本文将详细介绍如何在WebLogic中配置SQL数据连接池。 一、数据连接池的作用 数据连接池是...
### 在WebLogic中建立数据库连接池与数据源及利用JBuilder进行测试 #### 摘要 本文将详细介绍如何在WebLogic Platform 8.1控制台中设置Oracle 9i、SQL Server 和 JDataStore 数据库连接池以及如何在应用程序中获取...
Java应用程序通过JNDI(Java Naming and Directory Interface)方式使用WebLogic连接池是一种常见的实践,尤其是在企业级应用中。WebLogic Server是一个强大的Java EE应用服务器,它提供了丰富的资源管理功能,包括...
在WebLogic8中配置连接池和JMS组件是部署和管理Java应用程序的关键步骤,特别是对于那些依赖于数据库和消息传递服务的应用。以下是详细的配置过程: 1. **配置JDBC连接池**: - 首先,通过访问`...
### 数据库连接池技术及其在WeblogicServer中的配置 #### 引言 在现代Web应用开发中,数据库作为数据存储的核心组件,其访问性能直接影响着整个应用系统的响应时间和稳定性。传统上,通过JDBC(Java Database ...
### WebLogic 日常巡检与问题排查 #### 引言 WebLogic作为一款广泛使用的Java应用服务器,在企业级应用环境中扮演着重要的角色。为了确保WebLogic服务器能够稳定、高效地运行,定期进行健康检查(巡检)是非常必要...
针对以上问题,胡立田先生在其文章《基于Weblogic连接池获取SQL语句的实现》中提出了一种不用修改程序而直接获取系统执行SQL语句的方法。该方法通过改变Java数据库连接(JDBC)的驱动,利用适配器模式对数据库连接的...
6. **性能优化**:WebLogic提供了缓存机制、连接池、线程池等性能优化策略,以提高应用响应速度和资源利用效率。 7. **集成与互操作性**:WebLogic能够与Oracle数据库、其他中间件产品(如Oracle Coherence)以及...
一些大型的 WEB 应用服务器如 BEA 的 WebLogic 和 IBM的 WebSphere 等提供了连接池的机制,但是必须有其第三方的专用类方法支持连接池的用法。 3. 连接池关键问题分析: * 并发问题:为了使连接管理服务具有最大的...
总结来说,解决 WebLogic 中 JNDI 泄露连接问题,主要涉及两方面:一是优化连接池配置,设置合理的“非活动连接超时”,以确保无用连接能及时释放;二是通过开启诊断日志,结合系统操作,定位出导致泄露的具体代码,...