【问题标题】:Check a Connection is still active or not in libpqxx (postgres)检查连接是否在 libpqxx (postgres) 中仍然处于活动状态
【发布时间】:2013-10-28 06:11:41
【问题描述】:

如何检查特定连接是否已完成工作或在 postgres 中仍处于活动状态? 我正在创建一个到我的数据库的连接数组,并且我想获得一个不在任何事务中的连接。我正在使用 C++ 和 libpqxx 库来连接数据库。谁能告诉我如何检查这个。

我想做这样的事情,

 connection* conList;
    for(int i=0;i<10;i++)
        {
            conList[i]=new connection("dbname=test user=postgres password=abc123 hostaddr=127.0.0.1 port=5432");
        }

    int i=0;
    while(true)
    {
      if(conList[i] has not any active transaction )
      {
       //do something   
      }
     i++;
    }

【问题讨论】:

  • 您找到解决方案了吗?

标签: c++ postgresql libpqxx


【解决方案1】:

假设 tbis 是因为您有一个多线程应用程序,那么您无论如何都需要知道哪个线程有哪个连接。就用那个吧。

【讨论】:

  • 没错,这是一个多线程应用程序。当我使用这些连接时。它给了我这样的错误 - Started transaction while transaction still active
  • 一个线程需要声明一个连接,做它需要做的并将它交还给池。无论如何,您不能依赖连接的状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
  • 1970-01-01
  • 1970-01-01
  • 2020-01-11
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多