出口入口点注册调用 (MQXEP)
使用此信息来了解 MQXEP , MQXEP C 语言调用和 MQXEP C 函数原型。
使用 MQXEP 调用来执行以下操作:
- 注册要在其中调用出口函数的前后 IBM® MQ API 出口调用点
- 指定出口函数入口点
- 注销出口函数入口点
如果使用 MQXEP 调用来注册已注册的出口函数,那么第二个 MQXEP 调用将成功完成,从而替换已注册的出口函数。
如果使用 MQXEP 调用来注册 NULL 出口函数,那么 MQXEP 调用将成功完成,并且将注销该出口函数。
如果 MQXEP 调用用于在连接请求的生命周期内注册,注销和重新注册特定出口函数,那么将重新激活先前注册的出口函数。 仍分配并与此出口函数实例相关联的任何存储器都可供出口函数使用。 (此存储器通常在调用终止出口函数期间释放。)
MQXEP 的接口为:
MQXEP (Hconfig, ExitReason, Function, EntryPoint, &ExitOpts, &CompCode, &Reason)
其中:- Hconfig (MQHCONFIG)-输入
- 配置句柄,表示包含正在初始化的函数集的 API 出口。 此值由队列管理器在调用 MQ_INIT_EXIT 函数之前立即生成,并在 MQAXP 中传递到每个 API 出口函数。
- ExitReason (MQLONG)-输入
- 正在注册入口点的原因,来自以下原因:
- 连接级别初始化或终止 (MQXR_CONNECTION)
- 在 IBM MQ API 调用之前 (MQXR_BEFORE)
- 在 IBM MQ API 调用之后 (MQXR_AFTER)
- 函数 (MQLONG)-输入
- 函数标识,有效值为 MQXF_ * 常量 (请参阅 外部常量 )。
- EntryPoint (PMQFUNC)-输入
- 要注册的出口函数的入口点的地址。 值 NULL 指示未提供出口函数,或者正在注销出口函数的先前注册。
- ExitOpts(MQXEPO)
- API 出口可以指定用于控制 API 出口注册方式的选项。 如果为此字段指定了空指针,那么将采用 MQXEPO 结构的缺省值。
- CompCode (MQLONG)-输出
- 完成代码,有效值为:
- MQCC_OK
- 成功完成。
- MQCC_FAILED
- 调用失败。
- 原因 (MQLONG)-输出
- 限定完成代码的原因码。如果完成代码为 MQCC_OK:
- MQRC_NONE
- (0, X'000') 没有要报告的原因。
- MQRC_HCONFIG_ERROR
- (2280,X'8E8')提供的配置句柄无效。 使用 MQAXP 中的配置句柄。
- MQRC_EXIT_REASON_ERROR
- (2377 , X' 949 ') 提供的出口函数调用原因无效或对提供的出口函数标识无效。请使用其中一个有效的出口函数调用原因 (MQXR_ * 值) ,或者使用有效的函数标识和出口原因组合。 (请参阅 表 1。)
- MQRC_FUNCTION_ERROR
- (2281,X'8E9') 由于 API 退出原因,提供的函数标识符无效。 下表显示了函数标识和 ExitReasons的有效组合。
表 1. 函数标识和 ExitReasons 的有效组合 函数 ExitReason MQXF_初始化
MQXF_终止MQXR_连接 MQXF_CONN
MQXF_CONNX
MQXF_DISC
MQXF_OPEN
MQXF_CLOSE
MQXF_PUT1
MQXF_PUT
MQXF_GET
MQXF_INQ
MQXF_SET
MQXF_BEGIN
MQXF_CMIT
MQXF_BACK
MQXF_STAT
MQXF_CB
MQXF_CTL
MQXF_CALLBACK
MQXF_SUB
MQXF_SUBRQMQXR_BEFORE
MQXR_AFTERMQXF_数据转换获取时 MQXR_BEFORE - MQRC_RESOURCE_PROBLEM
- (2102 , X'836 ') 由于资源问题,尝试注册或注销出口函数失败。
- MQRC_UNEXPECTED_ERROR
- (2195 , X'893 ') 尝试注册或注销出口函数意外失败。
- MQRC属性名称错误
- (2442,X'098A')ExitProperties名称无效。
- MQRC_XEPO_ERROR
- (2507,X'09CB') 退出选项结构无效。
MQXEP C 语言调用
MQXEP (Hconfig, ExitReason, Function, EntryPoint, &ExitOpts, &CompCode, &Reason);
参数列表的声明:
MQHCONFIG Hconfig; /* Configuration handle */
MQLONG ExitReason; /* Exit reason */
MQLONG Function; /* Function identifier */
PMQFUNC EntryPoint; /* Function entry point */
MQXEPO ExitOpts; /* Options that control the action of MQXEP */
MQLONG CompCode; /* Completion code */
MQLONG Reason; /* Reason code qualifying completion
code */
MQXEP C 函数原型
void MQXEP (
MQHCONFIG Hconfig, /* Configuration handle */
MQLONG ExitReason, /* Exit reason */
MQLONG Function, /* Function identifier */
PMQFUNC EntryPoint, /* Function entry point */
PMQXEPO pExitOpts; /* Options that control the action of MQXEP */
PMQLONG pCompCode, /* Address of completion code */
PMQLONG pReason); /* Address of reason code qualifying completion
code */