BizTalk 2013 R2 WCF-SQL适配器具有随机问题

时间:2015-04-08 22:54:11

标签: biztalk biztalk-2013r2

嗨,

我们在BizTalk 2013 R2中有两个BizTalk应用程序似乎有随机问题。两个应用程序都遵循相同的过程

  • 从WCF端点提取数据。
  • 通过存储过程从数据库中删除数据。
  • 插入通过WCF-SQL调用提取的新数据。

这两个应用程序在我们的测试中运行了很长时间。但是,随着时间的推移,我们通过WCF-SQL调用插入了一些问题。

  1. 从网络读取输入流时发生致命错误。会话将终止(输入错误:64,输出错误:0)。
  2. 此错误显示在Sql Server日志中。我们有这个约一天然后它就消失了。其他一切继续在目标sql server上正常工作。只有BizTalk才有问题。

    1. 我们最新的错误是发生对WCF-SQL插入的请求(实际插入数据),但是从来没有响应。因此,发送端口继续尝试发送它的重试,而Orchestration只是脱水。
    2. 我们对整个应用程序中的每个设置进行了修改以尝试解决此问题,但只删除了应用程序并重新部署了这个(至少现在)。


      所以,我想我的问题是,是否有其他人在BizTalk中遇到过这样的问题"随机"这样的错误,它会很好地工作,然后像我们看到的那样走下坡路?

      我真的更喜欢保持稳定的维护。毕竟这是一个企业产品。

1 个答案:

答案 0 :(得分:1)

当在存在数据差异的环境之间移动时,我发生类似的问题,例如: QA中充满NULL的列以及PROD中充满实际数据的列。你可以尝试一些事情。

  1. 使用SQL Sever Profiler捕获来自BizTalk的RPC调用,并尝试直接在SQL Server上运行它BizTalk正在远程调用(如果这是生产,则将其包装在最后回滚的事务中)。运行时间比预期的要长吗?调试程序以找到痛点并尽可能优化。我在这里写了一篇关于如何做到这一点的博客:http://blog.tallan.com/2015/01/09/capturing-and-debugging-a-sql-stored-procedure-call-from-biztalk/
  2. 在发送端口的绑定配置中启动超时设置,以确保在SQL完成其工作之前不会超时。
  3. 在Machine.config中启动System.Transactions超时以确保MSDTC不会导致问题:http://blogs.msdn.com/b/madhuponduru/archive/2005/12/16/how-to-change-system-transactions-timeout.aspxhttp://blog.brandt-lassen.dk/2012/11/overriding-default-10-minutes.html
  4. 如果可能,在TEST / QA和PROD数据库之间进行数据比较。查找显着差异,尤其是在JOIN条件和WHERE子句中使用的列中。