从BizTalk动态发送端口执行SP

时间:2018-01-25 18:58:54

标签: biztalk biztalk-2013

我有一个sp,我正在从BizTalk业务流程执行。

当我在SQL服务器中执行SP时,它需要10秒,但是当我使用下面的代码从业务流程执行它时,它需要1小时。

  sqlStoredProcRequestXml = reportRequestXml;

  sqlStoredProcRequestXml(WCF.Action)= sqlProcedureName;
  sqlStoredProcRequestXml(WCF.BindingType)="sqlBinding";
  sqlStoredProcRequestXml(WCF.EnableTransaction) = false;

  sqlStoredProcRequestXml(WCF.BindingConfiguration)= @"<binding name=""sqlBinding"" sendTimeout=""02:30:00"" />";  

SndRcvSqlStoreProcRequestResponsePort(Microsoft.XLANGs.BaseTypes.Address)=“mssql://”+ dbServer +“//”+ dbDatabase; SndRcvSqlStoreProcRequestResponsePort(Microsoft.XLANGs.BaseTypes.TransportType)= “WCF-SQL”;

任何人都可以解释为什么执行SP时会有1小时差异。

2 个答案:

答案 0 :(得分:0)

这并不能解释这种差异(1小时对10秒很多),但是当您从业务流程调用时:

  1. 您的消息首先转到消息框
  2. 邮件由发送端口
  3. 捕获
  4. 发送端口调用SP
  5. 然后响应转到消息框
  6. Orchestration从消息框
  7. 获取响应消息

    你不是从业务流程直接调用你的SP,消息通过BizTalk传播,但这并没有解释如此大的区别,除非你的MsgBox有问题。

答案 1 :(得分:0)

没有什么特别的BizTalk延迟sp调用这么多。您可以尝试以下方法找到根本原因:

  1. 使用SQL事件探查器通过BizTalk查看SP的实际执行时间
  2. 检查环境中的其他延迟,例如SQL性能,msgbox db,BizTalk主机限制
  3. 检查事件查看器日志,了解发送端口主机上的任何警告或错误
  4. 确保您使用相同的数据和环境来测试BizTalk外部的SP来比较结果,有时根据数据的大小,您的查询可以在diff env中长时间运行。
  5. 您也可以通过DBA帮助sql配置您的sp呼叫