BizTalk WCF SQL适配器接收超时尝试从池中获取连接

时间:2011-01-21 16:23:33

标签: wcf biztalk

我有一个非常简单的BizTalk业务流程,它将HIPAA 837文件放入其中,将其分解为各自的声明,并将完整的xml消息保存到数据库中。我有一个WCF SQL发送端口,调用存储过程来执行此操作... proc只执行一个没有返回值的插入。问题是我保持(随机)获得超时错误:

详细信息:“Microsoft.ServiceModel.Channels.Common.InvalidUriException:Timeout expired。从池中获取连接之前经过的超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。

我只是用一个小文件尝试了这个 - 只有5个个人声明(所以我只需要从池中连接5个,对吧?)。 BT服务器在过去10个小时内一直没有做任何事情(没有处理消息)。然而,我仍然收到这个错误...我的MaxConnectionPoolSize设置为100,这意味着100个连接已经保持打开并闲置至少10个小时?这是怎么回事?

感谢。

1 个答案:

答案 0 :(得分:2)

我会看一下herehere。说实话,WCF SQL适配器非常挑剔和古怪,它适用于什么SQL,不适合它。我通常会寻找一种自定义解决方案,用于插入SQL以更好地控制插入或更新,而无需为SQL适配器编写特定于SQL的SQL。我发现如果我插入或更新多个表或返回复杂的记录,我会避免使用WCF SQL适配器。

如果这不是一个选项,请查看重写SQL。