1

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

}  
4

1 回答 1

0

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

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

SQLNET.AUTHENTICATION_SERVICES=(无)

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

参考: 很长的SQL连接打开时间

于 2013-03-12T07:33:09.320 回答