`
lcmlcm
  • 浏览: 25230 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

WebSphere MQ FTE 中的资源监控功能

阅读更多
简介:
   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 WebSphere MQ 安装包

    WebSphere MQ是这类中间件的代表之一,其强大的功能和广泛的支持平台使其在业界备受推崇。 2. **特性与优势**: - **平台兼容性**:WebSphere MQ支持多种操作系统,包括Windows、Linux、Unix、IBM AIX等,使得跨...

    Java监控WebSphere MQ 7.5中间件信息

    虽然描述中提到的是PCF,但JMS也可以用于监控WebSphere MQ,它提供了消息生产者和消费者的概念,允许程序发送和接收消息。 4. **使用Java PCF连接MQ**:Java程序可以通过com.ibm.mq.pcf.PCFConnection类建立到MQ...

    IBM WebSphere MQ入门教程.pdf

    IBM WebSphere MQ入门教程 IBM WebSphere MQ 是一种基于消息队列的中间件,用于实现不同的应用程序之间的异步通信。...IBM WebSphere MQ 是一种功能强大且灵活的中间件产品,能够满足各种需要异步通信的应用场景。

    IBM WebSphere MQ 技术白皮书.doc

    WebSphere MQ 的产品功能特性包括: * 增强了订阅/发布的易用性:WebSphere MQ 支持订阅/发布式的消息传递,能够满足企业的实时业务需求。 * 支持多种集成方式:WebSphere MQ 支持多种集成方式,包括点对点式、发布...

    MQ,websphere mq

    4. **管理和监控**:学习如何配置、管理和监控WebSphere MQ环境,包括性能监控、故障排查和日志分析。 5. **安全性与认证**:深入理解WebSphere MQ的安全机制,包括用户权限设置、SSL/TLS加密和Kerberos认证。 6. ...

    WebSphere MQ 系统管理指南 6.0

    性能监控和调优也是重要的内容之一,涉及监控资源使用情况、调整系统参数以优化消息处理速度和响应时间。 #### 高级主题 对于更深入的学习,指南提供了对高级主题的讨论,例如,如何设计高可用性架构、实施负载...

    WebSphere_MQ_V6.0.zip

    2. **队列管理器**:负责管理队列、通道和其他资源,是WebSphere MQ中的核心组件。 3. **通道**:用于在不同队列管理器之间传输消息,分为发送通道和接收通道。 4. **消息模型**:包括点对点(P2P)和发布/订阅(Pub...

    websphere MQ 8.0 自带jar包

    描述中提到“部分 JAR 包必须用于 JDK 1.7 及以上版本”,这意味着 WebSphere MQ 8.0 的某些功能可能需要更高版本的 Java 运行时环境。这可能是由于该版本的 MQ 使用了 Java 7 的特定特性或更新的安全协议。 5. **...

    WebSphere MQ 7.0 .net API 文档

    WebSphere MQ .NET API为此提供了必要的支持,但开发者仍需仔细规划线程安全和资源管理策略。 #### 四、配置与问题解决 **配置WebSphere MQ队列管理器**以接受TCP/IP客户端连接是实现远程通信的基础。这通常涉及到...

    Websphere MQ入门教程-使用IBM Websphere MQ

    通过阅读提供的“WebSphere MQ入门教程7.doc”,你可以更深入地学习这些概念,并实践如何在实际项目中部署和使用WebSphere MQ。无论你是初学者还是有经验的开发者,这个教程都将为你提供宝贵的指导。

    Websphere MQ入门教程

    Websphere MQ 是一款强大的中间件,用于在企业系统中...总之,Websphere MQ入门教程全面覆盖了该中间件的基础知识、系统管理以及各种编程接口的使用,为初学者和开发者提供了深入理解及实践Websphere MQ的强大资源。

    WebSphereMQ_V7.5.0.2_for_Windows(4-1)

    通过为重要的消息和事务提供可靠的、一次且仅一次的传递,Websphere MQ 可以处理复杂的通信协议,并动态地将消息传递工作负载分配给可用的资源。 IBM 消息中间件MQ以其独特的安全机制、简便快速的编程风格、卓越不凡...

    WebSphere MQ - Messages.pdf

    综上所述,《WebSphere MQ - Messages.pdf》是一本非常全面且实用的手册,它不仅详细介绍了WebSphere MQ中的消息处理流程,还提供了丰富的错误代码及其解释,对于WebSphere MQ的使用者来说是不可或缺的参考资料。

    WebSphere MQ介绍教程

    11. WebSphere MQ Explorer:通过WebSphere MQ Explorer,开发人员和系统管理员可以直观地配置和监控消息队列。 总结来说,WebSphere MQ为开发者提供了一个强大的消息传输平台,它不仅在性能上有所提升,而且在用户...

    Websphere MQ入门教程7

    【Websphere MQ入门教程7】是一本专为初学者和WebSphere MQ系统管理员及开发者设计的实用指南。全书涵盖了WebSphere MQ...通过阅读此书,读者可以系统地学习并逐步精通WebSphere MQ,从而在实际项目中发挥其强大功能。

    精通 WebSphere MQ

    学习WebSphere MQ需要了解如何配置队列管理器、创建和管理队列、设置安全性以及监控系统性能。这包括定义通道、创建传输队列和队列对、设置权限和认证、以及使用管理工具进行日志分析和故障排查。 四、WebSphere MQ...

    IBM Websphere MQ入门教程

    Websphere MQ是一个功能强大且广泛应用的中间件,提供了一个高度可靠的异步通信机制,实现了不同应用程序之间的数据交换和集成。但是,Websphere MQ的配置和管理也存在一定的复杂性和高昂的成本。

    WebsphereMQ查看软件

    在WebsphereMQ中,可以使用telnet来测试TCP/IP连接到MQ监听端口,验证队列管理器是否正在运行和监听。 “具体代码”这部分可能包含了Java或其他编程语言的示例代码,用于操作WebsphereMQ,例如打开队列、发送和接收...

Global site tag (gtag.js) - Google Analytics