We had the error that the Microsoft Distributed Transaction Coordinator (MS DTC) has cancelled a transaction of BizTalk which causes some stuck messages in the Receive Port, it has never happened before for years but it just occurs recently in 1 minute which causes few stuck messages. Is there anyway to make the Receive Location retries on error? What caused the DTC issue? I notice all the instances of stuck messages having in active running service instances, is it an issue? and how can I fix it?
Error from BizTalk:
There was a failure executing the receive pipeline: "CargoWise.eHub.Gateway.Pipelines.Rcv_ResolveInboundGatewayMessage, CargoWise.eHub.Gateway.Pipelines, Version=3.0.0.0, Culture=neutral, PublicKeyToken=4f570df270576350" Source: "Unknown " Receive Port: "Gateway_SelectInboxMessageByStatus_CACustoms" URI: "mssql://ehubtransactions.db.wisegrid.net//eHubTransactions?InboundId=SelectInboxMessagesByStatus&Category=CACustoms" Reason: 0x8004d00e
Error from SQL Server:
Microsoft Distributed Transaction Coordinator (MS DTC) has stopped this transaction Error: 8522, Severity: 18, State: 1
It is a WCF-SQL receive port which pulls a message from database and its pipeline will dissemble and add properties to the message. The pipeline components don't access to database. However, there is no error in the query as it will update the db status to 1:
UPDATE top (1) Inbox WITH (ROWLOCK) SET Status = 1 WHERE PK = @PK AND Status = 0
SELECT PK,MessageTrackingID,Content FROM InboxMessage WITH (ROWLOCK) WHERE PK = @PK and InsertUTC = @InsertUTC
User contributions licensed under CC BY-SA 3.0