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 に答える