免费注册 查看新帖 |

Chinaunix

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

父进程连接数据库后,连续fork几个子进程后,读数据库时出问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-13 23:56 |只看该作者 |倒序浏览
父进程连接数据库后,连续fork几个子进程后,几个子进程都操作数据库时出问题(错误:Error: msg=ORA-03113: end-of-file on communication channel),这是为什么?不能这样用吗?
如果我只fork一个子进程,查询数据库就没问题,这就奇怪了?

论坛徽章:
0
2 [报告]
发表于 2011-06-14 00:00 |只看该作者
父进程不操作数据库的,数据库操作由子进程去完成

论坛徽章:
0
3 [报告]
发表于 2011-06-14 01:22 |只看该作者
每个进程应该使用各自创建的数据库连接。

论坛徽章:
0
4 [报告]
发表于 2011-06-14 11:04 |只看该作者
问题可能在于数据库连接的会话session是基于各自进程的

论坛徽章:
0
5 [报告]
发表于 2011-06-14 11:16 |只看该作者
这中情况 DB2 是没问题的。Oracle就是会出这样的问题,每个子进程创建一个数据库连接吧。

论坛徽章:
0
6 [报告]
发表于 2011-06-14 12:29 |只看该作者
共享文件句柄这种应该是没有问题的,不过由于数据库本身会有锁表操作,这类效率其实没什么提高,反而会成为鸡肋,可以用数所据库连接池,开源连接池很多,比如apache下mod_mysql_pool都可以参考使用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP