最近经常有人问我这个问题,所以我想我会在这里发布问题和答案。
FTE 退出和 FTE 调用有什么区别?它们有什么用,我什么时候使用它们?
背景
WebSphere MQ File Transfer Edition (WMQ FTE) 是一个基于 WebSphere MQ 构建的 Java 应用程序,它提供了一个企业文件传输平台。转移发生在两个代理之间,一个在源,一个在目的地。在传输的生命周期中有四个点可以调用外部代码 - 在源代理和目标代理开始传输之前,以及在源代理和目标代理完成传输之后。可以调用外部代码的两种方法是退出和调用。
出口
出口以Java 类的形式实现,并从代理代码中调用。这些范围是每个代理,一旦启用,每次传输都会调用出口。这使得它们适用于执行全局策略或提供无处不在的服务,例如病毒扫描。
调用
调用作为传输生命周期中的(大部分)独立任务实现,可以是 Ant 脚本或命令行可执行文件。这些是在传输作业定义中定义的,如果传输失败,则不会触发传输后调用。这使得它们适用于提供特定于传输或取决于传输结果的功能。例如,传输后目标调用是执行解密的好地方,因为这是您通常为特定传输定义的内容,并且如果传输失败,解密步骤将不会触发。
退出和调用的顺序
退出和调用都在传输开始之前和传输完成之后在源代理和目标代理处触发。但是文档还没有显示调用和退出之间的关系。通过创建一组更新相同日志文件的调用和退出,可以演示触发顺序。
以下是文件传输期间退出点和调用的时间线。出口的名称与 Java 接口定义一致。调用的名称与传输定义的 XML 模式一致。
成功转移
2011 年 2 月 6 日星期日 20:20:21 EST:onSourceTransferStart Exit 被触发 2011
年 2 月 6 日星期日 20:20:21 EST:PreSourceCall 被解雇 2011 年
2 月 6 日星期日 20:20:21 EST 2011 年:onDestinationTransferStart 退出被解雇 2 月 6 日星期日
20:20: 2011 年
2 月 6 日美国东部标准时间:PreDestinationCall 于 2011 年 2 月 6 日星期日发射:onDestinationTransferEnd 出口
于 2 月 6 日星期日发射 2011 年 20:20:22:PostDestinationCall于 2 月 6 日星期日发射 2011 年 2 月 6 日星期日 20:20:22:onSourceTransferEnd 出口
于 2 月 6 日
发射
2011 年美国东部标准时间 20:20:22:PostSourceCall 被解雇
转移失败
2011 年 2 月 6 日星期日 20:28:49 EST : onSourceTransferStart 出口
于 2011 年 2 月 6 日 20:28:50 EST 发射: PreSourceCall 于 2011 年
2 月 6 日 20:28:50 EST 发射: onDestinationTransferStart 出口
于 2 月 6 日 20:28 发射: 50 EST 2011:PreDestinationCall
于 2011 年 2 月 6 日星期日 20:28:50 被解雇:onDestinationTransferEnd 出口被解雇
2011 年 2 月 6 日星期日 20:28:50 EST :onSourceTransferEnd 出口被解雇
其他资源
有关对 WMQ FTE 调用和退出进行编程的更多信息,请参阅WMQ FTE 信息中心。