简介:
WebSphere MQ File Transfer Edition(以下简称 WebSphere MQ FTE)在多个 IT 系统之间提供无需编程的可靠的、可审计的和可管理的文件传输,并且对文件大小没有限制。本文将向您描述几个场景,以展示如何使用 WebSphere MQ FTE 资源监控功能。
资源监控概述:
资源监控功能是 IBM® WebSphere® MQ FTE V7.1 新添加的功能,该功能提供一种更灵活的任务启动方法。这个新的 Ant 功能支持启动一个文件传输任务和其他多种任务。本文主要关注文件传输功能,下面的场景将描述文件移动过程,这种文件移动是资源监控器的触发器条件得到满足后的结果
资源监控最常见的形式是监控一个资源并在触发器条件满足时启动预定义的任务。在 WebSphere MQ FTE V7.0.1 中,受监控的资源的范围是一个目录或多个子目录。触发条件是受监控的目录中发生文件到达、更新或移除事件。
本文描述两个场景,这两个场景中的所有示例都基于 WebSphere MQ FTE 提供的命令行命令,而不是 MQ Explorer WMQFTE Plug-in。但是,本文介绍的概念也适用于 MQ Explorer WMQFTE Plug-in。执行以下任务之前,需要正确配置 MQ 网络并定义和启动特定代理。无论代理是否驻留在相同的机器或使用相同的队列管理器,只要它们能够在 MQ 网络上互相联系就行。这些场景在单个 Windows 机器上创建,但相同的概念也适用于 WebSphere MQ FTE 支持的任何平台。这两个场景是:
•简单资源监控
•使用变量替代的资源监控
简单资源监控:
这个场景涉及一个源代理和一个目标代理,代理队列管理器的名称和代理名称相同。您将创建一个在源代理上定义的资源监控器(因为在 WebSphere MQ FTE V7.0.1 中,资源监控器必须在源代理上定义,原因是要监控的目录对源代理必须是可访问的)。资源监控器将检查受监控目录 C:\monitored 中的文件 trigger.go 是否存在或被更新。如果触发条件被满足,定义的任务是通过目标代理将文件 C:\source\sourcefile.txt 从源代理传输到 C:\destination\destinationfile.txt。
创建任务文件:
首先,创建一个名为 task.xml 的文件,该文件定义当监控器的触发条件得到满足时将启动的传输任务。在 fteCreateTransfer 命令中使用 -gt 选项,这不是为了启动一个传输任务,而是为了编写一个 XML 文件,该 XML 文件将定义某个文件的传输,该文件被指定为 -gt 选项的一个参数。这个 XML 文件可以被手动放置到源代理的命令队列上,也可以用于 fteCreateMonitor 命令(本例采用这种方法)。
清单 1. 创建一个简单的资源监控器任务文件
C:\WMQFTE\bin> fteCreateTransfer -sa SOURCEAGENT –sm SOURCEAGENT -da DESTINATIONAGENT–dm DESTINATIONAGENT -de overwrite -t text -df
C:\destination\destinationfile.txt -gt C:\monitored\task.xml
C:\source\sourcefile.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008, 2009.
ALL RIGHTS RESERVED BFGCL0204I: Transfer request has been output to
C:\monitored\task.xml
这个任务 XML 文件可以在使用之前进行编辑,下一个场景将介绍这方面的内容。但是,对于这个简单的传输任务,生成的任务文件已经足够满足需求。
创建资源监控器:
定义任务后,现在可以创建资源监控器了。在这个示例中,在源代理 SOURCEAGENT 上定义新监控器 SimpleResourceMonitor,用于监控目录 C:\monitored 中的文件 trigger1.go 是否存在或被更新。
清单 2. 创建一个简单的资源监控器
C:\WMQFTE\bin> fteCreateMonitor -ma SOURCEAGENT -mn SimpleResourceMonitor -md
C:\monitored -mt C:\monitored\task.xml -tr match,trigger.go -jn SimpleMonitorJob
5655-U80, 5724-R10 Copyright IBM Corp.
2008, 2009. ALL RIGHTS RESERVED BFGCL0188I: The request to create a monitor has
been submitted with a request id of 414d5120434f4d4d414e442020202020f3b48b4a20001f03.
BFGCL0251I: The request has successfully completed.
执行带有详细输出的 fteListMonitors 命令将显示已定义的监控器:
清单 3. 显示一个简单的资源监控器
C:\WMQFTE\bin>fteListMonitors -v
5655-U80, 5724-R10 Copyright IBM Corp. 2008, 2009. ALL RIGHTS RESERVED
Monitor Information:
Name: SIMPLERESOURCEMONITOR
Agent: SOURCEAGENT
Status: Started
Root directory: C:\monitored
Condition: Match
Pattern: trigger.go
测试资源监控器:
现在您有两个代理和一个资源监控器,它们将主动检查目录 C:\monitored 中是否存在文件 trigger.go。此时,确保 C:\source\sourcefile.txt 存在于源代理的文件系统中,C:\destination\ 存在于目标代理的文件系统中。现在,在 C:\monitored 中创建文件 trigger.go 将导致监控器在 1 分钟的默认检查间隔内启动预定义的传输任务。可以通过两种方法检查传输结果:一是检查文件 C:\destination\destinationfile.txt,该文件现在应该存在于目标代理的文件系统中;二是检查 WebSphere MQ Explorer GUI WMQFTE Plug-in,该插件应该显示文件在两个代理之间成功传输。如果文件 trigger.go 被更新,进而导致修改日期更改,则监控器将在 1 分钟检查间隔内再次触发并再次传输文件 C:\destination\destinationfile.txt。由于原始任务拥有 -de 覆盖选项,即使目标文件自上次传输后已经存在,新传输任务仍将成功执行。
使用变量替代的资源监控:
这个场景涉及 4 个代理:一个资源代理和 3 个目标代理。这 3 个目标代理分别命名为 AccountsAgent、FinanceAgent 和 HRAgent。与第一个场景一样,代理队列管理器的名称与代理名称一样,您创建了一个在源代理上定义的资源监控器。这个资源监控器检查受监控目录 C:\monitored 或其任意子目录中是否存在扩展名为 .txt 的文件或这些文件是否被更新,子目录最大递归检查级别为一级。当触发条件满足时,预定义任务将执行,将触发器文件从源代理传输到由触发器文件所在的子目录名定义的目标代理。另外,预定义任务将基于源文件名重命名目标文件,将扩展名 .txt 更改为 .<AGENTNAME>,其中 <AGENTNAME> 是文件传输到的目标代理的名称。这个场景展示如何使用资源监控器提供的变量替代功能将一个静态任务文件转换为多个动态文件传输任务。
创建任务文件:
与基本场景相似,首先需要一个任务文件。由于任务文件需要进行手动编辑,因此您可以使用上一个场景生成的任务文件(参见 清单 1. 创建一个简单的资源监控器任务文件)。这个初始任务文件如下所示:
清单 4. 基本任务文件
<?xml version="1.0" encoding="UTF-8"?>
<request version="2.00"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
<managedTransfer>
<originator>
<hostName>localhost</hostName>
<userID>Laurence</userID>
</originator>
<sourceAgent qmgr=”SOURCEAGENT” agent="SOURCEAGENT"/>
<destinationAgent qmgr=”DESTINATIONAGENT” agent="DESTINATIONAGENT"/>
<transferSet>
<item mode="text" checksumMethod="MD5">
<source recursive="false" disposition="leave">
<file>C:\source\sourcefile.txt</file>
</source>
<destination type="file" exist="overwrite">
<file>C:\destination\destinationfile.txt</file>
</destination>
</item>
</transferSet>
</managedTransfer>
</request>
据场景描述,以下内容在这个场景中被视为是动态的。
将被变量替代的部分
描述 旧的静态值 新的动态值
源文件名 C:\source\sourcefile.txt ${FilePath}
目标代理 DESTINATIONAGENT ${FilePath{token=-2}{separator=/}}
目标 Qmgr DESTINATIONAGENT ${FilePath{token=-2}{separator=/}}
目标文件名 C:\destination\destinationfile.txt C:/destination/${FileName{token=1}{separator=.}}.${FilePath{token=-2}{separator=/}}
${FilePath} 将在任务执行时被它当前拥有的完整路径值(包括触发器文件名)所替代并被资源监控器读取。只需使用这个变量,您就可以执行一些操作以实现一些有趣的传输任务。要了解其他几个可以以类似方法使用的变量的相关信息,请参见 WebSphere MQ FTE V7.0.1 信息中心。对于对目录分隔符的所有引用,我们使用 Unix 样式的目录分隔符 “/”。由于这种分隔符适用于 Windows 和 Unix,它使任务文件看起来似乎是平台通用的。
资源监控器使用与 ${FilePath} 相似的值读取 ${FilePath{token=-2}{separator=/}}。但是,在这个示例中,您使用分隔符 / 分隔这个值,然后从右至左提取第二个标记值并用该值替代。在这个场景中,这将是 C:\monitored\ 目录下的子目录名。例如,在这个变量替代中,触发器文件 C:\monitored\FinanceAgent\reports.txt 将变为 FinanceAgent。关于可用的操作方法的更多信息,请参见 WebSphere MQ FTE V7.0.1 信息中心。
C:\destination\${FileName{token=1}{separator=.}}.${FilePath{token=-2}{separator=/}} 在任务执行时被资源监控器读取并替代。在这个示例中,您使用 ${FilePath} 和 ${FileName} 替代变量。${FileName} 计算忽略路径的触发器文件名,${FileName{token=1}{separator=.}} 计算由 “.” 分隔的第一个标记值,有效地保留文件名并移除扩展名。由于标记被指定为正值而不是负值,提取的值将使用从左到右的顺序。而 ${FilePath{token=-2}{separator=/}} 计算出与前面的目标代理相同的值。因此,在这个变量替代中,触发器文件 C:\monitored\FinanceAgent\reports.txt 将变为 C:\destination\reports.FinanceAgent。
通过使用 3 个新的动态值替换旧的静态值,这 3 个值在监控器每次发现一个匹配值并触发一个传输任务时都会不同,这种动态变化完全基于匹配的触发文件的名称和它在子目录中的位置。这个任务文件现在应该类似如下所示:
清单 5. 使用变量替代后的任务文件
<?xml version="1.0" encoding="UTF-8"?>
<request version="2.00"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
<managedTransfer>
<originator>
<hostName>localhost</hostName>
<userID>Laurence</userID>
</originator> <sourceAgent QMgr="SOURCEAGENT" agent="SOURCEAGENT"/>
<destinationAgent QMgr="${FilePath{token=-2}{separator=/}}"
agent="${FilePath{token=-2}{separator=/}}"/>
<transferSet>
<item mode="text" checksumMethod="MD5">
<source recursive="false" disposition="leave">
<file>${FilePath}</file>
</source>
<destination type="file" exist="overwrite">
<file>C:/destination/${FileName{token=1}{separator=.}}.
${FilePath{token=-2}{separator=/}}</file>
</destination>
</item>
</transferSet>
</managedTransfer>
</request>
创建资源监控器
现在任务文件已经修改为包含本场景需要的变量替代标记,下一步是定义资源监控器。在这个示例中,您可以在源代理 SOURCEAGENT 上定义新的监控器 VarSubResourceMonitor,检查目录 C:\monitored 中是否存在扩展名为 .txt 的文件或那些文件是否被更新。
清单 6. 创建变量替代资源监控器
C:\WMQFTE\bin> fteCreateMonitor -ma SourceAgent
-mn VarSubResourceMonitor -md C:\monitored -mt C:\monitored\task.xml
-tr match,*.txt -rl 1 -jn VariableSubstitutionMonitorJob
5655-U80, 5724-R10 Copyright IBM Corp. 2008, 2009. ALL RIGHTS RESERVED
BFGCL0188I: The request to create a monitor has been submitted with a request id of
414d5120434f4d4d414e442020202020f3b48b4a20002203.
BFGCL0251I: The request has successfully completed.
执行带有详细输出的 fteListMonitors 命令将显示已定义的监控器:
清单 7. 显示变量替代资源监控器
C:\WMQFTE\bin>fteListMonitors -v
5655-U80, 5724-R10 Copyright IBM Corp. 2008, 2009. ALL RIGHTS RESERVED Monitor
Information:
Name: VARSUBRESOURCEMONITOR
Agent: SOURCEAGENT
Status: Started
Root directory: C:\monitored
Condition: Match
Pattern: *.txt
测试资源监控器
您现在有 4 个代理和一个资源监控器,它们动态监控目录 C:\monitored 及其下一级子目录,检查是否存在扩展名为 .txt 的文件或那些文件是否被更新。确保目录 C:\destination\ 存在于目标代理的文件系统中。如果您现在在源文件系统中创建一个名为 C:\monitored\FinanceAgent\results.txt 的文件,监控器将在 1 分钟的默认检查间隔内启动预定义传输任务。您将看到 FinanceAgent 的文件系统的 C:\destination 目录中将出现一个名为 results.FinanceAgent 的文件。与上一个场景一样,您也可以使用 MQ Explorer WMQFTE Plug-in 检查传输结果,该插件将显示文件在两个代理之间成功传输。对 C:\monitored\HRAgent\results.txt 和 C:\monitored\AccountsAgent\results.txt 重复上述过程将会为这两个代理生成类似的结果。
故障诊断
尽管这些故障诊断方法并不是特定于资源监控的,但当传输任务没有按预期发生,或监控器在定义时没有显示为已注册,可以按照以下方法找出产生问题的原因:
•检查代理的 Output0.log 文件,获取关于您预期要发生的动作的相关信息。
•订阅 SYSTEM.FTE 主题以提取按代理分类的审计和日志消息输出:在 MQ Explorer 中,在协调 Queue Manager 上右键单击 SYSTEM.FTE 主题并选择 Test Subscription。指定主题字符串 SYSTEM.FTE/# 以获取发送到 SYSTEM.FTE 主题的所有消息。
•检查代理队列和传输队列以查看正在出现的消息,这些消息可能会指出一个 MQ 网络问题。
要了解关于故障诊断的更多信息,请参阅 WebSphere MQ FTE V7.0.1 信息中心。
结束语:
本文介绍了几个受益于资源监控的应用程序,资源监控开启了 WebSphere MQ FTE 应用的新领域,这些新应用是 V7.0.1 之前的版本所不能实现的。本文描述的场景不可能涵盖资源监控功能的所有应用和变化,但您可以从中体会 WebSphere MQ FTE 中的资源监控功能的强大力量。
分享到:
相关推荐
IBM FTE(MQ File Transfer Edition)是基于WebSphere MQ的一种高级文件传输解决方案,它利用了WebSphere MQ的强大功能,提供了一个稳定且高效的文件传输环境。FTE能够实现可靠的数据传输、文件移动控制、传输审计...
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf
内容概要:本文详细介绍了基于瞬时无功功率理论的三电平有源电力滤波器(APF)仿真研究。主要内容涵盖并联型APF的工作原理、三相三电平NPC结构、谐波检测方法(ipiq)、双闭环控制策略(电压外环+电流内环PI控制)以及SVPWM矢量调制技术。仿真结果显示,在APF投入前后,电网电流THD从21.9%降至3.77%,显著提高了电能质量。 适用人群:从事电力系统研究、电力电子技术开发的专业人士,尤其是对有源电力滤波器及其仿真感兴趣的工程师和技术人员。 使用场景及目标:适用于需要解决电力系统中谐波污染和无功补偿问题的研究项目。目标是通过仿真验证APF的有效性和可行性,优化电力系统的电能质量。 其他说明:文中提到的仿真模型涉及多个关键模块,如三相交流电压模块、非线性负载、信号采集模块、LC滤波器模块等,这些模块的设计和协同工作对于实现良好的谐波抑制和无功补偿至关重要。
内容概要:本文探讨了在工业自动化和物联网交汇背景下,构建OPC DA转MQTT网关软件的需求及其具体实现方法。文中详细介绍了如何利用Python编程语言及相关库(如OpenOPC用于读取OPC DA数据,paho-mqtt用于MQTT消息传递),完成从OPC DA数据解析、格式转换到最终通过MQTT协议发布数据的关键步骤。此外,还讨论了针对不良网络环境下数据传输优化措施以及后续测试验证过程。 适合人群:从事工业自动化系统集成、物联网项目开发的技术人员,特别是那些希望提升跨协议数据交换能力的专业人士。 使用场景及目标:适用于需要在不同通信协议间建立高效稳定的数据通道的应用场合,比如制造业生产线监控、远程设备管理等。主要目的是克服传统有线网络限制,实现在不稳定无线网络条件下仍能保持良好性能的数据传输。 其他说明:文中提供了具体的代码片段帮助理解整个流程,并强调了实际部署过程中可能遇到的问题及解决方案。
基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档