On my latest project I had a need to implement a Parallel Receive to receive three files before proceeding in the orchestration. There was another requirement to email support staff if all three files were not received within a certain timeframe. Due to time constraints, I pretty much gave up on the latter requirement since I couldn’t figure out how to have a timeout in a parallel shape. My co-worker Mathew had a couple suggestions but I don’t think they would’ve worked.
I was just reading Colestocks article on Parallel actions, exceptions, and timeouts and had a thought that may work to solve my timeout issue. I don’t know why I didn’t think of this before, but Scott mentioned some similarities between parallel exception handling and BizTalks handling of long running scopes after a set timeout has expired. Why can’t I add a scope around my parallel receive that is long running with a timeout, then send the failure email in the exception handler that will be called when the timeout is reached? I don’t know why either. I’ll have to give that a shot if I get some time.