当前位置:  技术问答>linux和unix

****关于PostgreSQL的连接在多进程程序中的问题****

    来源: 互联网  发布时间:2015-02-28

    本文导语:  我在主程序fork之前创建了一个PostgreSQL的连接PGconn,PGconn是一个全局变量,然后fork了n个子进程,但是当我在主进程中PQfinish(PGconn)以后,子进程中的PGconn也被关闭了。 在fork以后,子进程中的变量因该是独立的呀?难道P...

我在主程序fork之前创建了一个PostgreSQL的连接PGconn,PGconn是一个全局变量,然后fork了n个子进程,但是当我在主进程中PQfinish(PGconn)以后,子进程中的PGconn也被关闭了。
在fork以后,子进程中的变量因该是独立的呀?难道PostgreSQL返回的变量是可以在各个进程中共享的么?

|
我觉得这个问题可以这么理解:
PGconn可以看做一条连接的标识,尽管主进程和每个子进程都拥有这个标识,并可以通过它和数据库连接。但是对于数据库那一段看来,连接线路只有一条。任意一个进程关闭这条连接后,其他进程与数据库的连接也随之关闭,自然就不能访问数据库了。
解决问题的办法可以为每个进程建立一条连接,这样它们就不会相互影响了。
#define MAX_CHILD_NUM 5

PGconn* conn;
void main() {
   /*设置数据库名,端口,用户名,密码等
   ......
   */
   conn = PQConnectdb(...); /*填上前面设置的参数,为主程序建立连接*/
   for(int i=0; i 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python的PostgreSQL驱动 py-postgresql
  • 有没有人懂PostGreSQL这种数据库?MySQL是收费的,决定用PostGreSQL,但不会....
  • 数据库迁移工具 DBConvert for MySQL & PostgreSQL
  • linux下的postgresql好像不完整,不带ecpg吗?
  • PostgreSQL JDBC Driver
  • PostgreSQL Data Sync
  • PostgreSQL PHP Generator
  • PostgreSQL日志分析 pgFouine
  • 免费PostgreSQL监控工具 pgwatch
  • PostgreSQL Studio
  • Database Designer for PostgreSQL
  • 数据库服务器 PostgreSQL
  • 全新的PostgreSQL的Tcl接口 pgtcl-ng
  • PostgreSQL的图像处理扩展 PostPic
  • PostgreSQL的ETL工具 Benetl
  • PostgreSQL 可视化工具 VisualDB
  • PostgreSQL的BI解决方案 Bizgres
  • PostgreSQL管理接口 pgAdmin
  • PostgreSQL Query Cache
  • PostgreSQL建模工具 pgModeler


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3