问题描述:
开发人员报告,用myeclipse连接oracle后,过一段时间,连接断开,报ORA-03135错误。
问题挖掘:
用pl/sql和sqlplus连接oracle,也存在该问题,确定该问题与连接方式无关。
查看服务器,发现没有防火墙,防火墙因素排除。
ping -t 服务器地址,发现没有丢包,都100%收到,网络通畅。
基本可以肯定问题出在oracle参数配置上。但也不排除其他因素。
解决过程:
根据ora-03135查询到oracle官方的解决方案:
ORA-03135: connection lost contact
Cause: 1) Server unexpectedly terminated or was forced to terminate. 2) Server timed out the connection.
Action: 1) Check if the server session was terminated. 2) Check if the timeout parameters are set properly in sqlnet.ora.
查询相关资料,发现该问题可能与sqlnet.ora设置参数SQLNET.EXPIRE_TIME 有关。因此在server上面的sqlnet.ora设置参数SQLNET.EXPIRE_TIME = 5(需在服务器监听reload一下使参数生效:lsnrctl reload),而在client不设置该参数,。等待一段时间后,没有出现该问题了,问题解决。
知识扩展:
在server端的sqlnet.ora文件中设置SQLNET.EXPIRE_TIME这一参数可以启用DCD功能,DCD是Dead Connection Detection的缩写,用于检查死掉但没有断开的session。
DCD可以用于防止防火墙的timeout。
当新连接建立的时候,会读取sqlnet.ora中的这一设定,当20分钟间隔到达时,对inactive的session发送”probe” SQL*NET packet来确认client是否活着。如果已经死掉,那么相对应的resource会被自动清除。
如果client和server中间有防火墙,防火墙设有timeout参数,例如设置为一个小时,当一个小时中client和server间没有数据传输的时候,防火墙会断开连接。开启DCD后,通过设置SQLNET.EXPIRE_TIME的值小于防火墙的timeout参数可以避免这一情况。“probe” package确保防火墙不会断开idle的session。
参考资料:
sqlnet.ora http://www.orafaq.com/wiki/Sqlnet.ora
oracle DCD http://www.dbafan.com/blog/?p=174
sqlnet.expire_time and IDLE_TIME http://space.itpub.net/10687595/viewspace-420407
SQLNET.EXPIRE_TIME 的官方说明
Purpose
Use parameter SQLNET.EXPIRE_TIME
to specify a the time interval, in minutes, to send a probe to verify that client/server connections are active. Setting a value greater than 0 ensures that connections are not left open indefinitely, due to an abnormal client termination. If the probe finds a terminated connection, or a connection that is no longer in use, it returns an error, causing the server process to exit. This parameter is primarily intended for the database server, which typically handles multiple connections at any one time.
Limitations on using this terminated connection detection feature are:
· It is not allowed on bequeathed connections.
· Though very small, a probe packet generates additional traffic that may downgrade network performance.
· Depending on which operating system is in use, the server may need to perform additional processing to distinguish the connection probing event from other events that occur. This can also result in degraded network performance.
Default
0
Minimum Value
0
Recommended Value
10
Example
SQLNET.EXPIRE_TIME=10
例如:
SQLNET.EXPIRE_TIME = 20
可以设置为任意数值,单位分钟。
相关推荐
Oracle数据库不同版本间的客户端与服务端的连接问题通常涉及到安全和兼容性配置,这篇文章主要讲述了在Oracle 11g R2客户端尝试连接Oracle 19c服务端时,遇到了两个特定的错误:ORA-28040和ORA-01017,以及如何解决...
### Oracle 10g启动后报ORA-16038错误的解决方法 #### 错误概述 在启动Oracle 10g数据库时遇到ORA-16038错误,该错误通常与归档日志操作有关。具体错误信息为: ``` ORA-16038: log 1 sequence #230 cannot be ...
### ERwin连接Oracle报ORA-01041内部错误,hostdef扩展名不存在的知识点解析 #### 一、问题背景及概述 在使用ERwin数据建模工具连接Oracle数据库时,可能会遇到ORA-01041内部错误提示:“hostdef扩展名不存在”。...
您可能感兴趣的文章:常用的Oracle doc命令(收藏)Oracle 多行记录合并/连接/聚合字符串的几种方法Oracle中字符串连接的实现方法php连接oracle数据库及查询数据的方法plsql连接oracle数据库报ora 12154错
文档中提到,出现这些错误的上下文是在尝试从Oracle 10g R2建立到Oracle 11g R1的新数据库连接时。在Oracle 11g版本中,默认情况下用户密码是区分大小写的,这与早期版本如Oracle 10g中的默认设置不同。当从低版本...
2. **检查数据库状态**:使用命令行工具`sqlplus /nolog`连接到数据库,然后输入`connect / as sysdba`登录为SYSDBA用户。执行`startup`命令,如果出现ORA-00702错误,记录错误信息。 3. **修复数据文件**:确认出错...
### 如何解决Oracle 11G中的ORA-24247网络访问被访问控制列表 (ACL) 拒绝错误 #### 背景 在处理Oracle 11G数据库时,可能会遇到ORA-24247错误,该错误通常出现在尝试通过网络访问数据库资源时。这一错误是由于访问...
客户端可能会接收到ORA-12518或其他断开连接错误,如ORA-12537等。一旦在监听器日志中发现了TNS-12518错误,可以按照以下步骤进行处理: 1. **查看监听器日志**:首先检查监听器日志文件,确认错误的具体信息。这有...
### 远程登录并启动Oracle数据库及解决ORA-01031问题 #### 引言 在Oracle数据库管理过程中,远程登录与启动数据库是非常重要的操作之一。这不仅能够提高数据库管理员的工作效率,还能帮助他们更好地监控和维护...
ORA-01461 错误是 Oracle 数据库中的一种常见错误,错误信息为“仅可以为插入 LONG 列的 LONG 值赋值”。该错误通常是由于 Oracle 的 jar 包版本与 Oracle 数据库实际版本不匹配造成的。 在了解 ORA-01461 错误解决...
Oracle 11g中,ora-28056错误是由于写入审核记录到Windows事件日志失败所致。该错误通常会导致数据库不可用,无法连接到数据库。 解决方法: 1. 打开事件查看器(Event Viewer):在 Windows 中,点击“开始”菜单...
首先,我们需要登录到 Oracle 服务器,使用 su 命令切换到 Oracle 用户,然后使用 sqlplus /nolog 命令连接到数据库,使用 conn /as sysdba 命令连接到 sysdba 用户。接着,我们使用 select * from v$flash_recovery...
### DATAGUARD 物理DG配置客户端无缝切换——ora-16652与ora-16603错误解析 #### 1. DataGuardBroker的配置 **DataGuardBroker** 是Oracle提供的用于简化Oracle Data Guard管理和配置的工具。通过使用...
Oracle数据库在运行过程中,经常会遇到各种错误代码,错误代码ORA-00845是其中的一个,它是指“MEMORY_TARGET not supported on this system”。这个错误一般发生在尝试在不支持MEMORY_TARGET参数的系统上设置该参数...
在操作系统从Windows 8升级到Windows 10之后,用户可能会遇到Oracle 11g数据库无法启动或客户端无法连接的问题。这类问题通常会伴随着ORA-00119和ORA-00132这两个错误代码的出现。本文将详细介绍这两个错误的含义、...
"ERWin连接数据库详解" ...ERWin连接数据库需要注意多个重要步骤,包括新建模型时的注意事项、连接数据库的正确步骤、连接SQL Server 2000和连接Oracle 10g的步骤。如果用户按照这些步骤操作,应该可以成功连接数据库。
WM_CONCAT是Oracle 10g及更早版本中用于字符串合并的一个非标准函数,但在11g版本中被废弃,取而代之的是新的标准SQL聚合函数LISTAGG。 在Oracle 11g R2及更高版本中,WM_CONCAT函数不再可用,因此在19c中遇到这个...
这种错误会导致用户无法连接到 Oracle 数据库,影响正常的工作和生产。 在本文中,我们将详细地讲解 ORA-12514 错误的原因和解决方法,以帮助用户快速地解决该错误,恢复正常的工作和生产。 一、错误原因分析 ORA...