LoadRunner 12.00 - Error: Server Handle has not been allocated (NULL)

LoadRunner 12.00 - Error: Server Handle has not been allocated (NULL)

我在 LoadRunner 12.00 中使用 Oracle 2 Tier 协议录制了一个脚本。这是脚本失败的一小段代码:

    lrd_init(&InitInfo, DBTypeVersion);
    lrd_initialize_db(LRD_DBTYPE_ORACLE, 1, 0);
    lrd_env_init(LRD_DBTYPE_ORACLE, &OraEnv1, 0, 0);
    lrd_ora8_handle_alloc(OraEnv1, SERVER, &OraSrv1, 0);
    lrd_ora8_handle_alloc(OraEnv1, SVCCTX, &OraSvc1, 0);
    lrd_ora8_handle_alloc(OraEnv1, SESSION, &OraSes1, 0);
    lrd_server_attach(OraSrv3, "xyz.abc.com", 24, 0, 0);

错误发生在lrd_server_attach行:

Action.c(24): Server Handle has not been allocated (NULL)
Action.c(24): server_attach: ERROR, return-code=LRDE2090 

我已经用正确的连接语句更新了 tsnames.ora 文件。是什么导致了这个错误?我应该从哪里开始寻找?请帮忙

好的,让我们看一下 lrd_server_attach() 的示例代码,然后是您的代码

一、例子

lrd_initialize_db(LRD_DBTYPE_ORACLE, 2, 0);
lrd_env_init(LRD_DBTYPE_ORACLE, &OraEnv1, 0, 0);
lrd_handle_alloc_ora(OraEnv1, SERVER, &OraSrv1, 0);  // See OraSrv1 here
lrd_handle_alloc_ora(OraEnv1, SVCCTX, &OraSvc1, 0);
lrd_handle_alloc_ora(OraEnv1, SESSION, &OraSes1, 0);
lrd_server_attach(OraSrv1, "rman", -1, 0, 0);        // See OraSrv1 here

现在,你的代码

lrd_init(&InitInfo, DBTypeVersion);
lrd_initialize_db(LRD_DBTYPE_ORACLE, 1, 0);
lrd_env_init(LRD_DBTYPE_ORACLE, &OraEnv1, 0, 0);
lrd_ora8_handle_alloc(OraEnv1, SERVER, &OraSrv1, 0);   // See OraSrv1 here
lrd_ora8_handle_alloc(OraEnv1, SVCCTX, &OraSvc1, 0);
lrd_ora8_handle_alloc(OraEnv1, SESSION, &OraSes1, 0);
lrd_server_attach(OraSrv3, "xyz.abc.com", 24, 0, 0);   // See OraSrv3 here

对我来说,您似乎有一个尚未分配的 OraSrv3 句柄标签。你的第三个参数也有点 henky,因为它通常是第二个参数的长度,但这里更长。