首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在BizTalk 2010中处理空文件

在BizTalk 2010中处理空文件
EN

Stack Overflow用户
提问于 2013-12-09 23:25:16
回答 3查看 997关注 0票数 1

我在BizTalk 2010项目中有一个接收位置,有时该接收位置会接收一个空文件。接收流水线是PassThruReceive。然后我们有一个发送端口,它有一个针对该接收端口名称的筛选器。因此,我们要做的就是将文件从接收位置移动到发送位置。

我遇到的问题是,如果我们在接收位置得到一个空文件,我的客户端希望该文件仍然被移动到发送端口。我知道开箱即用,文件适配器丢弃空文件,并向事件日志写入一个事件,声明它已被删除。

我关注了一些文章,这些文章展示了一个定制的文件适配器来完成这个任务。我已经在这个自定义适配器上取得了一些成功。该文件将被拾取。由BizTalk接收,发送端口成功发送文件。然而,即使使用这种解决方案,我在接收端也遇到了文件被锁定且无法删除的问题。我关注了关于这个主题的各种文章,每次当文件被锁定且无法删除时,我都会遇到同样的问题。

我的问题是。即使正在调用batchMessage.Message.BodyPart.Data.Close();,流仍然是锁定的。有没有办法让我找到BizTalk锁定文件的其他地方?有没有其他方法来处理这个问题?

我关注的一篇文章位于以下位置:http://biztalkwithshashikant.blogspot.com/2011/04/processing-empty-files-in-biztalk.html

EN

回答 3

Stack Overflow用户

发布于 2013-12-10 16:33:03

在我看来,您在运行自定义文件适配器多服务器时遇到了问题。我打赌您在BizTalk组中运行多台服务器?

我自己没有做到这一点,但我听说让适配器在多服务器上流畅地运行是BizTalk中最难做的事情之一。诀窍是找到一种方法,能够在同一个BizTalk主机的多个实例之间分担负载。

当实例仅在1台服务器上运行而不是在2台服务器上运行时,是否仍然存在相同的问题?

票数 0
EN

Stack Overflow用户

发布于 2016-05-26 01:42:53

在自定义管道组件编码方法中:

代码语言:javascript
运行
复制
IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)

您应该返回pInMsg,而不是设置为null,并且.BodyPart流位于末尾。如果pInMsg为空,BizTalk将以静默方式丢弃该消息。您不需要关闭它,但您需要将它移到末尾,以便让BizTalk知道您已读取并处理了所有内容。

票数 0
EN

Stack Overflow用户

发布于 2017-07-12 12:33:04

解决此问题的一种方法是使用FTP适配器来拾取文件,FTP适配器不会丢弃空文件。

对于创建文件的系统来说,它很可能仍然是一个文件位置,但也可以通过FTP访问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20474225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档