你好,游客 登录 注册 搜索
背景:
阅读新闻

ORA-03114: 未连接到 ORALCE 解决方法案例

[日期:2016-08-22] 来源:Linux社区  作者:yangjunfeng [字体: ]

故障描述:应用程序执行某个select,update时应用程序的log报如下错误信息,程序无法更新更新某个表:

[200065640] 01-24 18:01:01.233136 [     13490] [libUserFunDb30_0.ec][554] update t_clear_journal failed, CLEARTRSNO =[20130124107200065640] SQLCODE = [-3114] SQLTEXT=[ORA-03114: 未连接到 ORALCE] [libUserFunDb30_0.ec:554]

alert里面没有 ora-03114错误信息,应用程序所在的客户端上执行sqlplus 登陆到数据库,做一个操作select操作后,这个会话30分钟不做任何操作。

客户端是Red Hat Enterprise Linux Server release 6.2 (Santiago),只是安装的10201_database_linux_x86_64.cpio 软件(没有装库)作为Oracle client端使用。操作系统包依赖包:全部装好,oracle db是 10g rac 10.0.0.5 版本、操作系统 aix 5L3。

之前我记得接触过PLSQL Developer中有一个参数tools中add debug information when compiling如果这个参数已经启用,会引发ORA-03114的错误。询问最近是否做过网络改动,客户回答没有任何改动、而且其他一个域里面的机器没有任何问题。

我想还原一下环境,看看是否报错。编写了一个脚本:

 

export ORACLE_SID=gxb_pay

export ORACLE_BASE=/oracle

export ORACLE_HOME=/oracle/product/10.2.0

export PATH=$PATH:$ORACLE_HOME/bin

 

sqlplus "pay/xxx@gxb" << EOF

select  sysdate from dual;

exec dbms_lock.sleep(1800);

select  sysdate from dual;

exec dbms_lock.sleep(3600);

select  sysdate from dual;

exec dbms_lock.sleep(3600);

EOF

然后查看了监听日志,tns配置,process,session数,用户概要文件中profile也没有指定会话超时时间,该看的都看了一遍。

果然如果停止半小时后,如果没有新的交易,那么会报ORA-03114错误。去应用处与应用人员核对,是半小时就会报错,还是平时几分钟也有。应用人员没有准确信息反馈,只说一般半小时就会报错。后询问相关系统负责人,可能是系统负责人没有接到任何的邮件通知,或者邮件里面没有标注会话等待30分钟后,再进行链接就会报错的字样。他说可能是juniper防火墙策略问题,Cisco的防火墙2小时自己退出。juniper墙30分钟自动退出。果然查看日志,很多告警信息。剩下的就是应用那边完善应用代码中检测机制的问题了。

更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-08/134487.htm

linux
相关资讯       ORA-03114 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款