出口入口点注册调用 (MQXEP)

使用此信息来了解 MQXEP , MQXEP C 语言调用和 MQXEP C 函数原型。

使用 MQXEP 调用来执行以下操作:
  1. 注册要在其中调用出口函数的前后 IBM® MQ API 出口调用点
  2. 指定出口函数入口点
  3. 注销出口函数入口点
您通常会在 MQ_INIT_EXIT 出口函数中对 MQXEP 调用进行编码,但可以在任何后续出口函数中指定这些调用。

如果使用 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') 没有要报告的原因。
如果完成代码为 MQCC_FAILED:
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_SUBRQ
MQXR_BEFORE
MQXR_AFTER
MQXF_数据转换获取时 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 */