Paul,
You may have requirements that will not let you do this, but I would not block and wait within an IS service flow for 3 hours if I didn’t have too. I would consider making this an asynch call and allow the C client to respond back via a simple publish when it is done. You may need to split up your flow logic into multiple services to do this. Kind of an asynch callback pattern. You may even need some sort of correlation id if the transaction needs to be associated with something else. I think this would end up being more reliable than a very long running block and wait.
As far as the email goes, that sounds like monitoring to me. I would generally suggest monitoring outside of the system that is being monitored. Many ways to do that… simple shell script to look for a file status, or database flag etc. It can then send alerts based upon your rules. Then if the IS server fails or the C client, your monitoring and alerting will not.
Last thought is if you have the process modeler and workflow, it is kind of made for this kind of stuff.
If you still need to do what you originally ask for you could I guess, set the timeout high and then start a background java thread within the flow service(before the publish step) that would be in charge of sending an email every 5 minutes. You would have to name and keep track of the thread so you could stop it once the reply comes back.
markg
http://darth.homelinux.net
#webMethods#Integration-Server-and-ESB#broker#Universal-Messaging-Broker