0

我有一个带有“* .txt”作为触发条件的 fte 监视器,每当一个文本文件到达源 fte 传输文件到目标时,但是当 10 个文件一次到达源时,fte 会同时触发 10 个传输请求和所有传输正在排队和卡住。

请建议如何处理这种情况

4

3 回答 3

2

好的,我刚刚测试了这个案例:

当它们出现在该目录中时,我想从目录中传输四个 *.xml 文件。所以我将监视器设置为 *.xml 并将传输模式设置为 *.xml(请参阅下面的命令)。

使用以下命令创建:

fteCreateTransfer -sa AGENT1 -sm QM.FTE -da AGENT2 -dm QM.FTE -dd c:\\workspace\\FTE_tests\\OUT -de overwrite -sd delete -gt /var/IBM/WMQFTE/config/QM.FTE/FTE_TEST_TRANSFER.xml c:\\workspace\\FTE_tests\\IN\\*.xml

fteCreateMonitor -ma AGENT1 -mn FTE_TEST_TRANSFER -md c:\\workspace\\FTE_tests\\IN -mt /var/IBM/WMQFTE/config/TQM.FTE/FTE_TEST_TRANSFER.xml -tr match,*.xml

根据配置更改,我得到了三种不同的结果:

1) 就像命令一样,默认 agent.properties:

  1. 在转会日志中出现了 4 次转会
  2. 所有 4 次传输都尝试传输所有 4 个 XML 文件
  3. 其中 3 个部分成功,因为代理无法删除源文件
  4. 成功传输所有文件并删除所有源文件

好吧,使用文件到文件的传输类型,最终状态实际上是好的 - 目标目录中有四个文件,因为之前的文件被覆盖了。但是使用 File to Queue 我在目标队列中收到了 16 条消息。

2)fteCreateMonitor命令修改参数“-bs 100”,默认agent.properties:

  1. 在传输日志中,只有一个传输
  2. 本次转让取得部分成功
  3. 此传输尝试传输 16 个文件(每个 XML 4 次)
  4. 代理无法删除任何文件,因此源文件保留在源目录中

因此,总而言之,我传输的文件总数(16)与第一个结果相同。甚至没有删除源文件。

3) 正如命令一样,agent.properties 使用参数“monitorMaxResourcesInPoll=1”修改:

  1. 在传输日志中,只有一个传输
  2. 本次转让成功
  3. 此传输尝试传输四个文件并成功
  4. 代理能够删除所有源文件

所以我只能通过这个设置得到预期的结果。但我仍然不确定将 monitorMaxResourcesInPoll 参数设置为“1”是否合适。

因此对我来说答案是:添加

monitorMaxResourcesInPoll=1

到 agent.properties。但这与此处发布的其他答案相冲突,所以我现在有点困惑。

在版本 7.0.4.4 上测试

于 2014-08-26T15:07:28.053 回答
1

选中“在一个轮询间隔内找到多个触发文件时将文件传输批处理”框(屏幕三)。

确保将 agent.properties 文件中的 maxFilesForTransfer 设置为对您来说足够大的值,但要小心,因为这会影响所有传输。

您还可以在 agent.properties 文件中设置 monitorMaxResourcesInPoll=1。我不建议这样做有两个原因:1)它会影响所有监视器 2)它可能会导致您永远无法赶上您必须传输的所有文件,具体取决于您的音量和轮询间隔。

于 2014-02-20T22:04:46.213 回答
0

将您的“批量文件传输...”设置为大于 10 的值:

Max Batch Size = 100
于 2013-09-30T13:31:51.247 回答