我在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;
}
答案 0 :(得分:0)
我在RH 6.3上运行基于Oracle rpm的客户端机器遇到了类似的问题。我使用以下值更改了$ ORACLE_HOME / network / admin中的sqlnet.ora文件
NAMES.DIRECTORY_PATH =(TNSNAMES,EZCONNECT)
SQLNET.AUTHENTICATION_SERVICES =(NONE)
我重新启动了程序并解决了连接问题。