我正在尝试使用带有参数-bs的IBM Websphere MQ FTE传输文件(每个任务匹配)。我认为使用此参数会根据其值将所有trasnfered的文件拆分为多个任务。例如。我使用“-bs 10”并尝试传输16个文件。结果应该是两个单独的传输,一个有10个文件,第二个有6个文件。我对么?但对我来说,结果是一个传输/任务中的所有16个文件:/。
如IBM文档中所述:通过设置资源监视器的批处理大小(例如,设置为100),资源监视器将为其匹配的每100个文件创建一个新的传输。因此,使用1000个.txt文件,您只能启动10个新传输。
我使用这些命令创建转移。
fteCreateTransfer -sa AGENT1 -sm TQM.FTE -da AGENT2 -dm TQM.FTE -dd /var/MQFTE/test -de overwrite -sd delete -gt /var/IBM/WMQFTE/config/TQM.FTE/FTE_TEST.xml c:\\workspace\\FTE_tests\\IN\\*.xml
fteCreateMonitor -ma AGENT1 -mn FTE_TEST_MONITOR -md c:\\workspace\\FTE_tests -mt /var/IBM/WMQFTE/config/TQM.FTE/FTE_TEST.xml -tr match,test.run -pi 30 -pu seconds -f -c -bs 10.
有什么建议吗?谢谢!
答案 0 :(得分:1)
您的理解是正确的,但您遇到的问题是因为在传输模板定义XML中您正在传输源文件" * .xml"这是一个通配符模式,只能匹配单个触发器文件," test.run"。
听起来你想传输你匹配的文件,因为你事先不知道这些。
您的WebSphere MQ FTE目录资源监视器将在轮询中触发x次,其中x是目录中与您的触发器模式匹配的文件数。然后将这些批处理转移到许多转移x / batchSize中。
由于您只匹配一个文件," test.run"资源监视器触发一次。当WebSphere MQ FTE代理处理单个托管传输请求时,您已告诉它查找以.XML结尾的任何文件,以便它们传输所有这些文件。
在信息中心查看"自定义变量替换任务"并在传输模板XML文件中使用该功能。
基本上,您可以在第一个命令(fteCreateTransfer)中更改" c:\ workspace \ FTE_tests \ IN \ * .xml"到" c:\ workspace \ FTE_tests \ IN \ $ {fileName}"然后将第二个命令(fteCreateMonitor)更改为在同一目录中监视" c:\ workspace \ FTE_tests \ IN"并匹配" * .xml"。
当资源监视器触发时,它会将$ {fileName}替换为它已触发一个文件的一个文件的名称,并将重复此x次,因为它将在以.xml结尾的每个文件上触发。如果有16个文件,它将执行16次。
根据您提供的信息,我认为它会为您提供所需的行为。
您需要的任何其他问题或说明,请随时提出。
嗨Miroslav,我似乎无法发表评论,所以我在这里添加一些来评论你的评论。
我很高兴听到建议的更改已经给了你所期待的行为。实际上,不知道要传输的文件的确切名称是常见的,但通过使用通配符和某些命名约定,您可以希望配置WebSphere MQ FTE资源监视器以提供所需的行为。
使用某个名称的触发器文件时,例如" test.run"资源监视器只查找该文件,因此对于以.xml结尾的任何其他文件一无所知。因此,为什么批处理仅适用于资源监视器正在触发/匹配的文件。请记住,fteCreateMonitor命令中的-bs选项用于"匹配每个任务"如命令的信息中心页面中所定义。所以在你的第二种情况下,你看到的行为是预期的。
我希望这有帮助!