将MQFTE文件传输限制为一次一个文件

时间:2015-03-27 11:01:19

标签: websphere-mq-fte

我有一个MQFTE设置,我们从外部供应商处接收文件。这些文件被转储到DMZ中的服务器上,我们有一个MQFTE代理,它从该服务器中选择文件并下载到我们的服务器。

我们收到文件"套"即,每个传入文件都有一个关联的xml文件,该文件描述并包含有关该文件的元数据。例如。 applicationform.pdf和applicationform.xml。最终应用程序根据xml中的数据/元数据存储pdf文件。

由于针对每个传入文件触发了触发器,因此我们会检查触发器是否已收到XML文件和内容文件(例如PDF)。

但是,我不认为这是最好的方法,因为它增加了大量预订代码,以便在两个文件同时到达时检查并发问题。有办法:

  1. 限制触发器,使其仅在两个文件到达时触发?在我的研究中,这是不可能的。
  2. 在服务器上配置代理,以便一次只接收一个文件?看一下文档,它似乎可以实现,但只能在启动传输的代理上实现,而不是在接收传输的代理上实现?文档提示了monitorMaxResourcesInPoll和-bs参数,但我认为这将在源代理上。由于代理程序与多个系统共享,因此也会对它们产生影响。
  3. 此外,我将非常感谢任何提示和建议,甚至是最能满足要求的替代解决方案。

1 个答案:

答案 0 :(得分:1)

我认为有一种方法可以在监视器触发之前检查两个文件是否存在。一些用户所做的是发送他们想要传输的所有文件,然后最终将“标记”文件放在资源监视器查找的目录中。由于标记文件仅在所有其他文件准备好发送后写入,因此监视器仅在文件全部传输时才传输。

回答2)我可以在目标代理上将maxDestinationTransfers设置为1,以限​​制它一次接收一次传输。如果传输包含多个文件,它们将按顺序传输,因此目标实际上一次只接收1个文件。 monitorMaxResourcesInPoll只是将监视代理程序限制为每个监视器轮询在源目录中解析的文件数。您可以将其设置为1但如果要在同一传输中传输PDF和XML文件,则需要将其设置为2.可能不是您要使用的设置。