ConnectionPool使用OCCI在Oracle上创建连接需要很长时间

ConnectionPool使用OCCI在Oracle上创建连接需要很长时间,oracle,Oracle,我在RedHat 5上安装了Oracle 11g2,默认安装了Oracle 当我运行下面的测试程序时,从连接池获取连接需要30秒。连接池本身会立即创建。来自同一程序内同一池的后续createConnection调用也需要类似的长时间才能完成 相反,如果我尝试直接获得连接,即不使用连接池,我会毫不延迟地获得连接 谢谢 #include <iostream> #include <occi.h> #include <map> using namespace

我在RedHat 5上安装了Oracle 11g2,默认安装了Oracle

当我运行下面的测试程序时,从连接池获取连接需要30秒。连接池本身会立即创建。来自同一程序内同一池的后续createConnection调用也需要类似的长时间才能完成

相反,如果我尝试直接获得连接,即不使用连接池,我会毫不延迟地获得连接

谢谢

#include <iostream>  
#include <occi.h>  
#include <map>

using namespace std;

int main(){

  oracle::occi::Environment* environment;  
  oracle::occi::Connection *con;  
  oracle::occi::Statement* stmt;  
  oracle::occi::ResultSet* res;  
  oracle::occi::ConnectionPool* connPool;  

  try{  

    environment = oracle::occi::Environment::createEnvironment(oracle::occi::Environment::DEFAULT);  
    connPool = environment->createConnectionPool("hr", "abcabc", "", 3, 5, 2);  
    con = connPool->createConnection("hr", "abcabc");  

    connPool->terminateConnection(con);  
    environment->terminateConnectionPool(connPool);  
  }  

  catch(oracle::occi::SQLException &e){  
    std::cout << e.what();  
  }  

  return 0;  

}  

我在Rh6.3上运行基于Oracle rpm的客户机时遇到了类似的问题。我用以下值更改了$ORACLE_HOME/network/admin中的sqlnet.ora文件

name.DIRECTORY_PATH=TNSNAMES,EZCONNECT

SQLNET.AUTHENTICATION\u SERVICES=NONE

我重新启动了我的程序,连接问题得到了解决

参考: