【问题标题】:clean mqsitransit directory of file output node in IIB (IBM Integration Bus)清理 IIB 中文件输出节点的 mqsitransit 目录(IBM 集成总线)
【发布时间】:2016-01-06 21:52:47
【问题描述】:

在完成文件之前,我正在处理文件输出节点并将文件暂存到 mqsitransit 目录。当我在 LocalEnvironment 中传递文件名以完成文件终端时,mqsitransit 目录中的文件被移动到输出目录。 现在,如果在我可以通过控制完成文件终端之前发生异常,则流程退出。在这种情况下,文件仍然存在于 mqsitransit 目录中,但我不希望这些文件存在于那里。如何从 mqsitransit 目录中删除这些文件?

一个解决方案可以通过使用 FileRead 节点来读取和删除文件,但是这个解决方案并不好,因为我们必须为这个节点指定输入目录,它将是 mqsitransit,并且由于 mqsitransit 被 IIB 内部使用,我们不应该指定此路径到任何节点。

有什么解决办法吗?

【问题讨论】:

    标签: ibm-mq messagebroker


    【解决方案1】:

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

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

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

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

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

    如果您需要一种方法来自动清理永远不会成功处理的文件,那么您需要在以下 URI 中为此功能提出 RFE:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2019-10-11
      相关资源
      最近更新 更多