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

时间:2012-10-28 06:47:32

标签: oracle

我在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;  

}  

1 个答案:

答案 0 :(得分:0)

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

  

NAMES.DIRECTORY_PATH =(TNSNAMES,EZCONNECT)

     

SQLNET.AUTHENTICATION_SERVICES =(NONE)

我重新启动了程序并解决了连接问题。

参考: Very long SQL connection opening time