I have a BizTalk send port that sends small xml messages via HTTP to a RESTful WCF service. Things are getting clogged up at the service due to some crappy code causing DB deadlocks. Just over 3000 messages were sent at a 100 message per minute. BizTalk appears to be able to attempt to send them all. IIS on the receiving end appears to get saturated and can no longer process. The messages just sit on the BizTalk server with a Message Status of In Process and a Serice Status of Active. I did see a small handful that got suspended due to time out (see err msg below). Eventually, we reset IIS on the subscribing web server and messages began to get processed on the BizTalk server again.
My questions is, how does BizTalk know that the receiving server is saturated or does it? If it is smart enough to detect the subscribing service as busy then why the few suspended messages?
Error Message:
The adapter failed to transmit message going to send port “EnterpriseMsgToProducerMgmtSubscriberSvcSendPort” with
URL “http://blah.blahcorp.com/serviceproducermanagement/serviceproducermanagement.svc/xml/event“.
It will be retransmitted after the retry interval specified for this Send Port. Details:”The HTTP send adapter
cannot complete the transmission within the specified time.
Destination: http://blah.blahcorp.com/serviceproducermanagement/serviceproducermanagement.svc/xml/event “.