免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2695 | 回复: 4
打印 上一主题 下一主题

处理小文件时正常,大文件则oracle连接出现lost contact,不知道为什么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-14 17:53 |只看该作者 |倒序浏览
我的程序把zip包解压后,解析 解压出来的文件,然后把解析所得的数据 放到oracle数据库中;

当压缩包是5,499KB的时候,程序正常运行 并且把数据存到了数据库中;
但当压缩包是89,100KB的时候,错误日志显示:
2007-09-11 16:58:04 : Module xx0_user_DB.cpp Line 93,OCI_ERROR errcode is 3135
2007-09-11 16:58:04 : ErrorInfo is ORA-03135: connection lost contact
2007-09-11 16:58:04 : Error in OCISessionBegin, -1
显然是连接不了oracle;

这个程序用多线程 处理 zip解压后得到的 不同类型的文件,线程之间没有通信,而且各自 使用自己的数据库连接,总之,设计是:主线程负责创建 解压线程,以及 各种文件类型的 解析处理线程(这个其实是同一个线程函数,不同文件类型的参数而已)。

根据错误日志,上面的错误是随机出现在 不同文件类型的 解析处理线程 中的,但处理少量的文件或小的压缩包则没有这个问题,不知道为什么

希望哪位朋友能帮我解决下啊?谢谢了!

论坛徽章:
0
2 [报告]
发表于 2008-05-15 11:10 |只看该作者
多少个线程?有没有可能是连接数超了?

论坛徽章:
0
3 [报告]
发表于 2008-05-15 11:13 |只看该作者
网络有没有问题?

论坛徽章:
0
4 [报告]
发表于 2008-05-15 11:59 |只看该作者
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.

论坛徽章:
0
5 [报告]
发表于 2008-05-15 12:38 |只看该作者
谢谢各位,问题找到了,是因为连接超时了。

开始我总是怀疑线程之间没有协调好,因为我一直把调试的重点放在线程处理这里,没有注意到数据库那一块,那个模块是同事以前写的,他把OCIServerAttach放在数据库的初始化那里了(粗心还是后来修改变成这样了),间隔一段时间才调用OCISessionBegin,这时就超时了。大的zip包解压需要时间,所以问题就出现了。压缩包小 或者 自己放置文件 处理时间都是很短,所以调试一直没有注意到这个问题 。再次谢谢了,小弟没有分
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP