
[英]IBM Integration Bus Java Compute Node: output a w3c.dom.Document or String
[英]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:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.