`
ll_feng
  • 浏览: 391199 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

seesion不及时释放导致的数据库连接问题

阅读更多
这几天正在开发的系统,出现了严重的数据库连接问题,时常因挂掉,

警告: SQL Error: 0, SQLState: null
2011-1-12 11:20:40 org.hibernate.util.JDBCExceptionReporter logExceptions
严重: Listener refused the connection with the following error:
ORA-12518, TNS:listener could not hand off client connection
The Connection descriptor used by the client was:
192.168.1.167:1521:orcl

2011-1-12 11:20:40 org.hibernate.cfg.SettingsFactory buildSettings
警告: Could not obtain connection metadata
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12518, TNS:listener could not hand off client connection
The Connection descriptor used by the client was:
192.168.1.167:1521:orcl

排除了数据库本身的问题后,只能从自身找问题了。

	<filter>
		<filter-name>OpenSessionInViewFilter</filter-name>    
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>  
	</filter>
	<filter-mapping>
		<filter-name>OpenSessionInViewFilter</filter-name>    
		<url-pattern>/message/*</url-pattern> 
	 </filter-mapping>

问题就是配置只过滤了部分数据连接。导致还有大量的hibernate session没有及时关闭。

但有时候还是有问题,又从网上找了这么一段,参考:
引用

原因一般为:客户连接到监听器后,监听器把客户重定向到调度程序端口,由于操作系统问题,这些连接会被拒绝。
要解决这个问题,只需要在LISTENER.ORA的头部加入这一行DIRECT_HANDOFF_TTC_LISTENER = OFF即可。

在listener.ora文件加上一句 DIRECT_HANDOFF_TTC_LISTENER = OFF

然后重启监听服务

lsnrctl stop
lsnrctl start
分享到:
评论

相关推荐

    有效关闭Oracle死锁进程,和释放状态为killed的session

    在Oracle数据库管理中,处理死锁进程和释放状态为killed的session是一项关键技能,尤其对于维护数据库性能和稳定性至关重要。以下将详细阐述如何通过一系列步骤有效地关闭Oracle死锁进程,以及如何释放状态为killed...

    (品管工具QC七大手法)BSS_QC_数据库连接和事务管理专题.pdf

    真实连接是指应用程序直接与数据库建立的Connection对象,使用后必须及时、安全地关闭,否则可能导致数据库资源泄漏,甚至服务器崩溃。代理连接则是从连接池中获取的Connection,它是一个包装了真实连接的对象,提供...

    Oracle12cRAC数据库 出现ora-12520, ora-12516

    如果应用程序在使用数据库连接后未能及时关闭或释放连接,就会导致连接池中的可用连接减少,从而引发连接问题。这种情况尤其常见于长时间运行的应用程序,它们可能不会定期清理不再使用的数据库连接。 ##### 3. ...

    解决SQL数据库程序挂起问题

    标题中的“解决SQL数据库程序挂起问题”是一个典型的IT故障排查和修复场景,涉及到SQL数据库的运行状态和系统性能优化。挂起通常意味着程序或进程处于非响应状态,可能由于资源耗尽、死锁、错误的查询执行计划、内存...

    关闭空闲连接

    5. **优化应用程序**:改进应用程序设计,确保在使用完数据库连接后及时关闭,减少不必要的空闲连接。 6. **调整Oracle参数**:例如,调整`SQLNET.EXPIRE_TIME`参数可以设置网络连接的存活检查时间,当连接超过此...

    连接池的使用

    - Cassandra的Java驱动提供了`Session`接口,用于管理数据库连接。但`common-pool2`主要用于非JDBC的连接池,Cassandra并不直接支持JDBC。 - 为了使用连接池,可以寻找专门为Cassandra设计的连接池库,如`Astyanax...

    ASP技术常遇问题解答-如何将数据装载到Application或Session对象中去?.zip

    当用户打开浏览器与服务器建立连接时,一个新的Session开始,直到用户关闭浏览器或Session超时,Session结束。 将数据装载到Session对象中,可按照以下步骤操作: 1. 在ASP.NET页面或HTTP模块中,找到合适的位置...

    sde连接数的问题

    - **无效连接累积**:当用户异常退出应用程序或者在网络连接不稳定的情况下强制断开连接时,SDE服务端未能正确清理这些连接,导致无效连接逐渐积累。 - **资源未释放**:部分系统或桌面软件(如ArcMap或ArcCatalog)...

    Oracle数据库日常维护

    总结来说,Oracle数据库的日常维护包括监控警告日志以识别和解决问题,监控表空间使用以管理碎片和空间,以及检查数据库连接以确保资源的有效利用。这些活动有助于预防故障,提高性能,并确保数据库的稳定运行。DBA...

    ORACLE数据库应用中出现的问题和解决方法.pdf

    1. 数据文件误删导致数据库无法正常启动 当数据库的表空间数据文件意外被删除,数据库将无法正常关闭或启动。为了解决这个问题,首先需要以INTERNAL用户身份连接数据库,然后以强制方式关闭数据库。接着,启动...

    ORACLE DB数据库常见问题解决及诊断技巧集锦-ORACLE DBA故障修复必备手册

    安装、升级或重新连接数据库时出现问题,可能是因为兼容性问题、硬件限制或其他配置错误。解决方法包括: 1. **仔细阅读官方文档**:确保遵循了所有必要的安装步骤和要求。 2. **检查硬件兼容性**:确保硬件符合...

    Oracle_DBA_数据库日常维护手册_常用SQL_脚本

    以上内容涵盖了Oracle数据库日常维护中的几个重要方面,包括警告日志文件监控、表空间使用情况监控以及数据库连接情况监控。通过这些监控手段和相应的处理措施,DBA能够有效管理和维护Oracle数据库,确保其稳定高效...

    Hibernate连接池的三种配置方式

    在描述中提到,Hibernate 3.0版本以后不再推荐使用DBCP,因为其存在BUG,可能导致空连接无法释放的问题。因此,开发者通常会转向其他更稳定的连接池实现,如C3P0。 C3P0是Hibernate中常用的一种连接池实现,具有较...

    ORACLE 如何查询被锁定表及如何解锁释放session

    在Oracle数据库环境中,有时会遇到由于用户操作导致的表锁定问题,这可能会影响到其他用户的正常操作,特别是当数据库处于假死状态时。本篇将详细解释如何查询被锁定的表以及如何解锁并释放session。 首先,我们...

    Oracle数据库日常维护方案书

    - 数据库连接情况:监控数据库连接数量,避免资源耗尽。 - 系统磁盘空间:监控系统磁盘空间使用情况,防止空间不足。 - 表空间使用情况:监控表空间的使用情况,及时进行扩展或压缩。 - 扩展异常的对象:检查...

    Oracle DBA数据库日常维护完全手册

    综上所述,Oracle DBA在日常维护工作中需要密切关注警告日志文件、表空间使用情况以及数据库连接情况等多个方面,以确保数据库系统的稳定运行。通过对这些关键指标的持续监控,DBA能够及时发现并解决问题,有效避免...

    Oracle数据库日常检查文档.pdf

    1. 数据库连接数:通过`v$session`视图检查当前连接数,确保不超过系统设定的最大值。 2. 活动会话:分析`v$session_wait`和`v$session_longops`,找出等待事件和长时间运行的事务。 3. 数据库状态:检查数据库是否...

    Oracle数据库日常维护手册.txt

    数据库连接情况是衡量数据库健康状态的一个重要指标,通过监控当前连接数,可以帮助我们了解系统负载情况,并及时发现可能存在的连接泄露等问题。 **3.1 查询方法** 可以使用以下SQL语句来查看当前数据库的连接...

    基于MySQL的数据库中间件Meituan-DBProxy.zip

    解决了绑定后端连接断开时,客户端连接未及时断开的问题 屏蔽了KILL语句,避免在后端MySQL可能误KILL的问题 修改了事务内语句执行错误时,DBProxy未保留后台连接导致rollback发送到其它结点的问题...

Global site tag (gtag.js) - Google Analytics