Rodrigo Guerreiro

"The purpose of a programming system is to make a computer easy to use", in The Mythical Man-Month
posts - 61, comments - 16, trackbacks - 14

Web service call timeout in BizTalk...using Role Link

I'm working in a BizTalk project that has an orchestration published has a web service, that receives messages that are going to be routed to one of several another web services. For this, I used a Role Link that dynamically invokes the web service based on a specific qualifier. But, in production environment I've started to receive some messages with more than 1 MB. When the message was being delivered to the other endpoint it was getting a timeout. Reading the Microsoft documentation I've noticed that the SOAP Adapter has a property (SOAP.ClientConnectionTimeout) that can be assigned inside the orchestration. But the problem emerges when the orchestration doesn't have a Send Port (bonded to a SOAP Adapter) on which I can assign that property, like in my case. I only have the Role Link.

Fortunately, Tiago found a post from Tomas Restrepo (read it here). Basically he explains that we can also affect the SOAP.ClientConnectionTimeout on a Message Assignment shape when constructing the message that is going to be delivered. Something like this:

MyRequestMessage(SOAP.ClientConnectionTimeout) = 600000; // Equals to 10 minutes

Remember that this property receives an Int32 represented in milliseconds.

Now I simply construct the message and assign the SOAP.ClientConnectionTimeout property and the problem is solved :)

Print | posted on Tuesday, October 30, 2007 12:11 PM

Powered by: