求教oracle出现ORA-03135后程序不能重新连接数据库的问题!!!
我用OTL(开源的、用C++封装的操作数据库的类库)连接oracle数据库,并实时提交记录。程序用多个线程(最多5个)连接数据库。最近发现程序在运行一段时间(22个小时左右)后,出现假死的情况,所有的连接线程都在,但是连接线程好像在哪里卡住了,用VS附加上去也不能看到在哪里卡住了(因为连接线程已经卡住了,不能继续执行)。
查看程序日志,发现OTL捕获的异常信息是:ORA-03135:连接失去联系
查看oracle的alert日志,发现有以下错误:
Fatal NI connect error 12638, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)(ARGV0=oraclencsoft)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=ncsoft)(CID=(PROGRAM=D:/oracle/product/10.2.0/db_2/bin/sqlplus.exe)(HOST=YEXY1)(USER=yexy1))))
VERSION INFORMATION:
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 10.2.0.1.0 - Production
Time: 07-7月 -2010 13:33:07
Tracing not turned on.
Tns error struct:
ns main err code: 12638
TNS-12638: 身份证明检索失败
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
我尝试http://blog.csdn.net/yexianyi/article/details/5724267上面的解决方法及在服务器上设置SQLNET.EXPIRE_TIME=5,但是仍没有解决。
程序中连接的使用流程是(根据程序日志,怀疑在这个函数卡住了):提交记录时如果捕获到异常,则会尝试不停地重新连接数据库直到连接成功,以下是重新连接的代码:
void ReConnect(otl_connect &otlConnect, const char *pConnStr, int iAutoCommit)
{
if (1 == otlConnect.connected)
{
otlConnect.logoff();
}
Retry:
try
{
otlConnect.rlogon(pConnStr, iAutoCommit);
}
catch (otl_exception &e)
{
Sleep(1000);
goto Retry;
}
//保存重新连接成功的日志 //卡住时没有执行到这里
}
这个问题困扰我两天了,即便出现ORA-03135错误,连接relogon就可以了,为什么会卡住呢?求各位指点,非常感谢!
相关推荐
Oracle数据库连接报错问题
关于oracle数据库连接报错,错误代码“ORA-01034”和“ORA-27101”,然后问题进一步出现,错误“ORA-03113:通信通道的文件结尾 进程 ID:6320 回话 ID :191 序列号:3”
oracle 11 安装+数据库实例+连接Navicat.docx
orcale 11 安装,其中包含“INS-20802”安装错误代码的解决方式;实例化orcale数据库 ;Navicat连接orcale数据库
Oracle Instant Client 11.2版本安装与使用
资源下载链接为: https://pan.quark.cn/s/3d8e22c21839 当使用Navicat配置数据库连接时,如果遇到ora-03135错误,可按以下方法解决:首先,下载instantclient_11_2.zip文件。接着,打开Navicat,依次点击“工具”“选项”“环境”,将OCI环境设置为instantclient_11_2文件夹中oci.dll文件所在的目录。设置完成后,关闭并重新启动Navicat,再次进行连接测试。若测试结果显示连接成功,那么就可以保存当前的配置信息了。
oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht
oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht
数据库访问类,支持sql和oracle,并同时支持log4net日志记录功能~
数据库访问类,支持sql和oracle,并同时支持log4net日志记录功能,初次学习,期待大家能够多多提出宝贵意见,空间ID:ginni215,谢谢~~



