views:

382

answers:

2

Calling a WCF published orchestration from a C# program usually is sub-second response time. However, on some occasions, it can take 20-50- seconds between the call in the C# program and the first trace message from the orchestration. The C# that runs calls the WCF runs under HIS/HIP (Host Integration Services/CICS Host-Initiated Processing).

Almost everytime I restart the HIS/HIP service, we have a very slow response time, and thus a timeout in CICS. I'm also afraid it might happen during the day if things "go cold" - in other words maybe things are being cached. Even JIT first-times compiles shouldn't take 20-50 seconds should they? The other thing that seem strange is that the slow response time seems to be the load of the orchestration, which is running under the BizTalk service, not the HIP/Service which I cycled.

The fear is that when we go live, the first user in the morning (or after a "cold-spell" will get the timeout). The second time they try it after the time-out, it is always fast.

I've done a few tests by restarting each of the following: 1) BizTalk services 2) IIS 3) HIS/HIP Transaction Integrator (HIP Service)

Restarting any one of them tends to cause about a 20 second delay. Restarting all 3 is like the kiss of death - about a 60 second delay before first trace appears from orchestration.

The HIP program always gives its first trace quickly, even when the HIP service is restarted. Not sure why restarting HIP slows down the starting of the orchestration.

Thanks,

Neal Walters

+1  A: 

I have seen this kind of behavior with the MQSeries adapter as well. After a period of inactivity the COM+ components which enable communication with MQSeries will shut down due to inactivity.

What we had was a 10 minute timer which would force some sort of a keep-alive message. I don't know if you have a non-destructive call which can be sent, or if you can build one into the system just for this purpose.

Ben Runchey
Yes, I was thinking about scheduling a C# query to run every x minutes through task manager or SQL Agent. The query and update run through the same orchestration. But I might have other orchestrations that attach to other sources (such as Adobe forms) that might not be that easy. Seems very "cludgy" to have to do it that way.
NealWalters
A: 

Same here (calling WCF from BizTalk) after recycling the IIS app pool can result in > 60 second response time 1st call of the day.

Fortunately, latency wasn't an issue in our case and just increased the timeout to 5 mins on the WCF Send Port. (Also note that WCF can retry - default of 3 retries, 5 mins apart)

nonnb