环境: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问题?小弟先谢了~
{
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问题?小弟先谢了~
另外,你是不是用了sys用户?
非sys用户。
请问THREADED_MUTEXED有可能导致core吗?
监听程序应该没问题,只要tnsnames.ora改对就可以正常启动了。
我也把监听关掉测试了很多次,也可以抛出异常,不会core。
- 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 ... 希望对你会有帮助