我有一个MQFTE设置,我们从外部供应商那里接收文件。文件被转储到DMZ中的服务器上,我们有一个MQFTE代理,它从该服务器中提取文件并放到我们的服务器上。
我们接收"集合"中的文件,即每个传入文件都有一个相关的xml文件,该文件描述并包含有关该文件的元数据。例如applicationform.pdf和applicationform.xml。最终的应用程序根据xml中的数据/元数据存储pdf文件。
由于每个传入文件都会触发触发器,因此我们会在触发器中检查是否已收到XML文件和内容文件(例如PDF)。
然而,我不认为这是最好的方法,因为当两个文件同时到达时,它会添加大量的预订代码来检查并发问题。有没有办法:
- 限制触发器,使其仅在两个文件都到达时激发?在我的研究中,这是不可能的
- 在服务器上配置代理,使其一次只接收一个文件?从文件上看,它似乎可以实现,但只能在发起转让的代理人身上实现,而不是在接收转让的代理人?文档提示了monitorMaxResourcesInPoll和-bs参数,但我想这将在源代理上。由于代理与多个系统共享,这也会影响它们
此外,我将感谢任何提示和建议,甚至替代解决方案,以最好地满足要求。
我认为没有办法在监视器触发之前检查这两个文件是否存在。一些用户所做的是发送他们想要传输的所有文件,然后最终在资源监视器查找的目录中放置一个"标记"文件。因为标记文件只有在所有其他文件都准备好发送后才写入,所以监视器只有在文件都在那里时才会传输这些文件。
在回答2)I时,您可以在目标代理上将maxDestinationTransfers设置为1,以限制其一次接收一次传输。如果传输包含多个文件,它们将按顺序传输,因此目的地一次只接收一个文件。monitorMaxResourcesInPoll只是将监视代理限制为每次监视轮询在源目录中解析的文件数。您可以将其设置为1,但如果您想在同一传输中传输PDF和XML文件,则需要将其设置成2。这可能不是你想要使用的设置。