Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Sql Server Service Broker如何与MSDTC交互_Sql Server_Database_Transactions_Service Broker - Fatal编程技术网

Sql server Sql Server Service Broker如何与MSDTC交互

Sql server Sql Server Service Broker如何与MSDTC交互,sql-server,database,transactions,service-broker,Sql Server,Database,Transactions,Service Broker,在这种情况下,我们在ServiceBroker队列上发送消息,作为分布式事务的一部分。显然,我们只希望在事务完成时发送消息 然而,我们发现,在这种情况下,队列的接收端在事务提交之前接收消息,以某种方式也被注册。如果发送方随后回滚,这将导致连锁反应问题,最终导致队列因有毒消息而被禁用 这是预期的行为吗?如果是这样,我们如何以事务方式发送消息?是否会这样,您正在阅读带有NOLOCK提示的队列?在这种情况下,您可以在队列中看到消息,但实际上您无法接收它!只有在事务提交后,才能接收它 我很惊讶发送的回滚

在这种情况下,我们在ServiceBroker队列上发送消息,作为分布式事务的一部分。显然,我们只希望在事务完成时发送消息

然而,我们发现,在这种情况下,队列的接收端在事务提交之前接收消息,以某种方式也被注册。如果发送方随后回滚,这将导致连锁反应问题,最终导致队列因有毒消息而被禁用


这是预期的行为吗?如果是这样,我们如何以事务方式发送消息?

是否会这样,您正在阅读带有NOLOCK提示的队列?在这种情况下,您可以在队列中看到消息,但实际上您无法接收它!只有在事务提交后,才能接收它

我很惊讶发送的回滚会触发有毒消息检测。去测试!这就是问题所在!似乎接收方也在同一个分布式事务中结束,因此发送和接收方在同一个事务中结束!与WCF事务和DCOM的大量交互使事情变得更加复杂