BizTalk 2006 - 将收到的文件复制到新目录

时间:2010-01-26 17:12:49

标签: file biztalk

我希望能够将我的XML文件复制到服务器上的新文件夹位置。基本上我想在新文件夹中备份输入文件。

到目前为止,我所做的是尝试按照此论坛帖子所说的内容进行操作 - link text

起初我尝试了最后一个没有做任何事情的方法(在阅读时重命名文件)。所以我尝试了其他选项之一并更改了业务流程并在接收形状之后放置了一个Send形状。因此,相同的消息将被发送到逻辑端口。我导出了MSI,我在管理控制台中创建了一个发送端口,该端口已设置为指向我的复制位置。它会复制文件,但会继续每秒创建一个文件。事件查看器还会报告“文件存在”的警告。我已将端口的复制模式设置为'覆盖'和'新建',两者都不起作用。

我看过谷歌,但没有任何帮助 - 顺便说一句,我支持BizTalk,但我不知道管道,端口如何工作。所以任何帮助都会受到赞赏。


感谢您的快速回复。

正如David建议我希望能够在BizTalk对其进行任何处理之前跟踪消息。

我尝试过Ben提供的CodePlex链接及其指向'Atomic-Scope的BizTalk消息存档管道组件',看起来我的客户将需要付费。我已下载试用版,看看我是否有运气。

David - 我同意业务流程应该代表业务流程,并且制作文件的副本不是业务流程的一部分。我只是假设当我开始修修补补时,我可以按照我发布的链接上的建议自行完成。

我还宁愿不依赖消息框数据库中的BizTalk跟踪,因为我认为需要定期修剪跟踪的消息。这是正确的还是我在胡说八道?

然而,有没有办法可以做到Atomic-Scope所做的哪些可能更便宜?

**嗨再次,我已经从大卫的原始帖子中发现它,如我所示,我还创建了一个发送端口,它只有一个“过滤器”表达式,如 - BTS.ReceivePortName == ReceivePortName

全部谢谢**

2 个答案:

答案 0 :(得分:3)

正如您链接的帖子所示,有几种方法可以实现这种结果。

第一个问题是:您需要跟踪什么?

听起来在你的案例中有两个可能的答案,我将单独讨论。

您需要在BizTalk触摸之前跟踪从线路收到的消息

这种情况经常出现在您需要证明您的BizTalk解决方案不是消息中出现任何消​​息损坏或降级的来源的地方。

有两种常见方法:

  1. 使用Ben Runchey建议的管道组件

    codebetter.com上有另一个用于存档的管道组件示例。它看起来不错 - 如果您使用其他组件,并且放置此组件的位置,请注意,您仍然遵循BizTalk流模型正确的做法。 BizTalk管道都是前向流,这意味着您的流只读一次,并且所有工作都以事件方式发生。

    这是一个很好的方法,但有以下注意事项:

    • 您需要注意管道组件中使用的流媒体
    • 您实际上并没有跟踪有线消息 - 您的管道实际看到的是它通过BizTalk适配器后的消息(例如HTTP适配器,文件等...)
  2. 依靠BizTalk开箱即用的跟踪

    BizTalk会自动将所有邮件保留到邮箱文件夹中,如果启用BizTalk跟踪,则可以使BizTalk保留这些邮件。

    这里的主要缺点是启用此跟踪会导致服务器性能下降 - 具体情况视情况而定,这可能不是很大,但它可能非常重要。

  3. 您可以在完成初始接收管道

    后跟踪消息

    使用这种方法有两个主要选项,即使用订阅接收端口的纯消息传递端口来使用业务流程发送端口。

    我个人不喜欢使用业务流程发送端口的想法。业务流程通常最适合用于模拟所需的业务流程。除非这种归档是标准用户理解的业务流程的一部分,否则它可能会混淆解决方案中的内容。

    我倾向于使用的方法是在BizTalk管理控制台中创建一个订阅接收端口的消息发送端口。然后,发送端口将使用标准的BizTalk文件适配器,并通过管道。

答案 1 :(得分:0)

我认为您应该查看Biztalk Message Archiving管道组件。您可以在Codeplex(http://www.codeplex.com/btsmsgarchcomp)上找到它。

您必须创建一个新管道并将其部署到您的biztalk组。然后更新您的接收管道,将该文件存档到该接收位置正在运行的主机可以访问的位置。

相关问题