Biztalk 接收端口似乎未轮询

Biztalk 接收端口似乎未轮询,biztalk,biztalk-2013,Biztalk,Biztalk 2013,我有一个单向接收端口,其WCF自定义XMLReceive位置使用sqlBinding类型。接收位置绑定设置为每分钟轮询一次并执行SQL Server存储过程。“polledDataAvailableStatement”和“PollingStatement”中有一个过程。问题是,这些过程从未执行过,也没有生成我可以找到的错误 我有多个这样的端口/位置设置,除了一个端口/位置外,所有端口/位置都正常工作。这一个可以在我自己的机器上正常工作,但当我部署到生产环境时,它就不能正常工作了。SQL探查器告诉

我有一个单向接收端口,其WCF自定义XMLReceive位置使用sqlBinding类型。接收位置绑定设置为每分钟轮询一次并执行SQL Server存储过程。“polledDataAvailableStatement”和“PollingStatement”中有一个过程。问题是,这些过程从未执行过,也没有生成我可以找到的错误

我有多个这样的端口/位置设置,除了一个端口/位置外,所有端口/位置都正常工作。这一个可以在我自己的机器上正常工作,但当我部署到生产环境时,它就不能正常工作了。SQL探查器告诉我存储过程从不触发。我对绑定中的所有内容使用默认设置,但过程名称和轮询时间除外。biztalk中未记录任何错误。跟踪的消息事件显示其他业务流程,但不显示映射到相关端口的业务流程


我已尝试重新导出和导入MSI。我已在数据库服务器上将服务帐户设置为sysadmin。我已经通过从另一个正在工作的接收位置复制/粘贴连接字符串来验证连接字符串。我已经重新启动了托管实例,当然还有应用程序。我所做的一切似乎都不会让那个地方着火。查找故障排除提示。

您的主机实例帐户是否有权运行该存储过程?

我以前遇到过此问题,这反映了此特定SQL server和BTS之间的DTC通信问题

当您将“UseAmbinetTransaction”属性设置为false时,可以尝试解决此问题。 这就避免了两台服务器之间的分布式事务协调器出现问题。 请注意,每当此属性设置为False时,都不会执行PollDataAvailableStatement

之后重新启动主机

UseAmbinetTransaction的影响:


配置DTC:

发生这种情况似乎很奇怪,尤其是您在(接收主机运行的服务器的EventViewer日志)中没有看到任何错误。只有在以下情况下才能发生:

  • 您在接收端口上有一个服务窗口,即它将在一天中的特定时间处于活动状态
  • 您的接收主机实例正在节流,但在这种情况下,某些调用应该到达SQL server
  • 您的接收端口错误地连接到不同的数据库服务器

如果所有设置均按预期进行,则尝试创建新的接收端口,并使用简单的select语句对其进行测试。

重新启动的主机实例确实是接收位置配置要使用的主机实例?接收位置正在运行,没有自行关闭,并且(主机实例所在服务器的)事件日志或SQL server中没有显示任何内容?全部正确。。。我们还在性能监视器中查看活动端口的数量。有2个(应该是3个)。它是说端口不活动?昨天晚上晚些时候,通过一系列的重启/重新部署/重新创建,这个问题神奇地消失了。我们实际更改的唯一一件事是:我们将端口绑定直接指向SQL框,而不是友好的DNS。注意:其他端口仍然指向DNS并且工作正常。很奇怪。我害怕再把这个换回来/玩它。Lol这是一个问题,而不是一个答案-我知道你没有足够的代表发表评论,但也许你可以将其重新表述为一个答案-例如,“这可能是由帐户权限引起的”,并解释为什么以及如何修复它。我不认为接收端口正在运行/活动。如果我们在Perf Mon中添加活动接收位置的计数,它将显示2(应该有3个)。然而,这是最有用的答案,因为我们尝试了最后一件事:创建一个新的测试端口。我们无法让它工作(即使我们正在从工作端口复制连接字符串)。因此,我们稍微更改了字符串,并将其直接指向SQL框(使用了友好的DNS),突然间一切正常。注意:这只是一个DNS名称,不是vip。仍然不理解为什么这在某些端口上有效,而在其他端口上无效。请检查接收主机运行的服务器上的DNS,以及它是否使用ping进行响应。是否有其他端口与此端口在同一服务器上运行是的。。。同一服务器上有2个其他服务器。我可以使用PING获得响应,PING作为sql框的fqdn返回。这两个其他人正在使用相同的友好DNS,它的工作。奇怪!您是否可以尝试设置WCF-SQL适配器并使用配置选项创建FQDNYR连接字符串您是否有多个接收位置在同一SQL server上侦听同一SQL请求?您有多少台BizTalk服务器?