环境:linux,代码如下:bool CDatabaseProxy::connnect()
{
try
{
if (m_env == NULL)
{
m_env = Environment::createEnvironment (Environment::THREADED_MUTEXED);
}

if (m_p_conn == NULL)
{
if(!(m_p_conn = m_env->createConnection (m_sz_user,m_sz_password,m_sz_dsn)))
{
return false;
} }
}
catch (SQLException ex)
{
WriteFormatLog(TYPE_RUN,LEVEL_FATAL,IDS_CREAT_DB_CONNECT_ERROR,ex.what()); return false;
} return true;
}core文件堆栈信息:
Thread 1 (process 20118):
#0  0x00002b07364379aa in OCIPClearMxCtr () from /opt/oracle/product/11g/lib/libclntsh.so.#1  0x00002b0734f685e6 in oracle::occi::OCCIErrorGet () from /opt/oracle/product/11g/lib/libocci.so.11.1
#2  0x00002b0734f5d561 in _ZN6oracle4occi16SQLExceptionImplC9EPvS2_i () from /opt/oracle/product/11g/lib/libocci.so.11.1
#3  0x00002b0734f5d4fe in oracle::occi::SQLExceptionImpl::SQLExceptionImpl () from /opt/oracle/product/11g/lib/libocci.so.11.1
#4  0x00002b0734f5ebd9 in oracle::occi::SQLExceptionCreate () from /opt/oracle/product/11g/lib/libocci.so.11.1
#5  0x00002b0734f5ee4c in oracle::occi::Environment::createEnvironment () from /opt/oracle/product/11g/lib/libocci.so.11.1
#6  0x000000000041e59f in CDatabaseProxy::connnect (this=0x55a458) at ../src/common/DatabaseProxy.cpp:369
测试人员说由于tnsnames.ora文件配置错误导致,并且重现不了,后续测试都会抛出异常,打印日志。
google不到可以解决的办法,请问有木高手给点意见,可能会是什么问题导致此core问题?小弟先谢了~

解决方案 »

  1.   

    Environment::THREADED_MUTEXED 换成default试试?
    另外,你是不是用了sys用户?
      

  2.   


    非sys用户。
    请问THREADED_MUTEXED有可能导致core吗?
      

  3.   


    监听程序应该没问题,只要tnsnames.ora改对就可以正常启动了。
    我也把监听关掉测试了很多次,也可以抛出异常,不会core。
      

  4.   

    needed to include aditional libraries :
    - occiius
    - ociei
    - occi
    - clntshneeded to include theirs locations directories :
    - $ORACLE_HOME/lib
    - $ORACLE_HOME/instantclient
    - $ORACLE_HOME/instantclient/lightyou have made your Oracle installation by oracle universal installer ... 希望对你会有帮助