【DM版本】:DM8
【操作系统】:centos 7
【CPU】: x86_86
【问题描述】*:
DM8 OCI方式OCISessionPoolCreate创建连接池失败
报错信息:
$ ./bin/dm_test
envhp: 0x4040d0, errhp: 0x4040d8, poolhp: 0x4040f0
Error - OCI_INVALID_HANDLE
Session Pool Created Error
Error - 0,
./run.sh:行 3: 28996 段错误 核心已转储)./bin/dm_test
源码如下(参考oracle_oci_examples\cdemosp.c):
void checkerr(OCIError *errhp, sword status)
{
text errbuf[512];
sb4 errcode = 0;
switch (status)
{
case OCI_SUCCESS:
break;
case OCI_SUCCESS_WITH_INFO:
(void)printf("Error - OCI_SUCCESS_WITH_INFO\n");
break;
case OCI_NEED_DATA:
(void)printf("Error - OCI_NEED_DATA\n");
break;
case OCI_NO_DATA:
(void)printf("Error - OCI_NODATA\n");
break;
case OCI_ERROR:
(void)OCIErrorGet((dvoid *)errhp, (ub4)1, (text *)NULL, &errcode,
errbuf, (ub4)sizeof(errbuf), OCI_HTYPE_ERROR);
(void)printf("Error - %d, %.*s\n", errcode, 512, errbuf);
break;
case OCI_INVALID_HANDLE:
(void)printf("Error - OCI_INVALID_HANDLE\n");
break;
case OCI_STILL_EXECUTING:
(void)printf("Error - OCI_STILL_EXECUTE\n");
break;
case OCI_CONTINUE:
(void)printf("Error - OCI_CONTINUE\n");
break;
default:
(void)printf("Error - unknown error, status: %d\n", status);
break;
}
}