BizTalk NSoftware SFTP - 仅在收到第二个文件时读取第一个文件

时间:2012-01-30 03:38:30

标签: biztalk sftp correlation sequential adaptor

我有一个客户端删除XML和.FINISHED文件的场景。一旦完成编写XML文件,客户端就会创建.FINISHED文件。两个文件都有相同的名称。如你所见,我无法在.FINISHED创建之前开始阅读.XML。将XML复制到目标后,我想从客户端位置删除这两个文件。

这看起来很典型,但我认为SFTP和SSO已经使它成为非典型问题。

我正在开发BizTalk 2009上使用/ n软件SFTP Adapter for BizTalk with SSO进行身份验证。

备注:

  • 我必须使用SFTP,因为我无法使用FTP协议。

  • 我有一些Google搜索和试用的解决方案,但都是FTP 基于和/或使用相关。

  • 我必须使用SSO来管理凭据。

  • 软件SFTP Adapter提供了使用SSO的功能,它在正常情况下工作正常,我必须在不等待.FINISHED文件的情况下进行读/写。

我使用了以下方法:

相关 - 并行/顺序

  • 花了一些时间后,我意识到我不能像我这样使用Correlation 在开始阅读.XML之前必须等待.FINISHED文件。客户 首先开始编写XML然后完成

  • 当我放弃.XML接收位置选择文件而不等待.FINISHED和Orchestration通过异常取决于 在情况下。

    对于这个解决方案,我从以下博客获得了帮助

    http://www.paulvanbrenk.com/blog/CategoryView,category,BizTalk.aspx

如果我的理解错误,请纠正我。

使用.Net组件从SFTP位置获取XML文件一次.FINISHED收到:

另一种可能的解决方案是在运行时在Orchestration中更改软件或任何其他SFTP适配器的接收位置或URI,即最初将其设置为.FINISHED一旦收到将其更改为.XML并获取它。

不知道如何实现它,但是在编排中是否可能?

2 个答案:

答案 0 :(得分:3)

/ nsoftware SFTP适配器的另一个选项是使用MonitorFileGrowth设置。

这会记录轮询间隔之间的文件大小,并且在文件停止增加之前不会尝试下载文件(因此不再写入文件)。您可以在适配器的Other属性中设置它,如:

  

MonitorFileGrowth =真

或者,如果您可以控制使用与FileMask不匹配的文件的临时扩展名在服务器上创建文件的进程(因此接收位置不会尝试下载它)也可以。< / p>

或者,如果你想等待像Fabio所说的.FINISHED文件,你可以配置接收位置只查找.FINISHED文件,并且在你的业务流程中收到后,使用发送适配器按照这个下载XML文件文章:http://www.nsoftware.com/kb/showentry.aspx?entry=09170901

答案 1 :(得分:1)

为什么不将接收位置设置为仅激活以.FINISHED结尾的文件。然后编写您的业务流程以获取相应的XML文件 - 这可行吗?