繁体   English   中英

IIB(IBM Integration Bus)中文件输出节点的干净mqsitransit目录

[英]clean mqsitransit directory of file output node in IIB (IBM Integration Bus)

我正在“文件输出节点”上工作,并在完成文件之前将文件暂存到mqsitransit目录。 当我在LocalEnvironment中传递文件名以完成文件终端时,来自mqsitransit目录的文件将移至输出目录。 现在,如果在我可以将控制权传递给完成文件终端之前发生异常,则流程退出。 在这种情况下,文件仍然存在于mqsitransit目录中,但是我不希望这些文件存在于其中。 如何从mqsitransit目录中删除这些文件?

一种解决方案是使用FileRead Node读取和删除文件,但是这种解决方案并不好,因为我们必须为此节点指定输入目录,该目录将是mqsitransit,并且IIB反复使用mqsitransit,因此我们不应指定此路径任何节点。

有解决方案吗?

FileOutput节点本身无法执行此操作,因为这样做会导致数据丢失。

如果要暂存文件,通常会将单个记录写入文件,这些记录可能源自多个单独的事务,因此删除文件将删除这些事务的结果。

如果您在整个文件模式下运行,并且在这种情况下遇到异常,则文件将被删除。

当您说流程退出时,我假设流程已回滚到输入节点,在这种情况下,假定输入消息可用于重新处理,在这种情况下,如果您生成具有相同文件名的输出文件并设置“如果文件存在则采取措施”属性,以替换旧文件,或使用可选的时间戳对其进行存档。

我不建议将其他文件节点指向mqsitransit目录,因为它们将尝试在同一文件上创建锁,并可能影响原始流。

如果您需要一种自动清除永远不会成功处理的文件的方法,则需要在以下URI处提高此功能的RFE:

https://www.ibm.com/developerworks/rfe/?PROD_ID=532

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM