This framework has 3 components to it:
- a classification scheme for connection exceptions that tells you which ones are worth trying to reconnect, since not all of them are
- a set of strategies for actually doing the re-connect: things like “retry immediately”, or, “retry every 5 seconds”, etc. The client application has to choose one of these strategies.
- execution: when an exception is encountered, carry out the chosen reconnect strategy.
Two points that might not have been clear from my post:
- this framework can be used for all forms of Windows Azure storage, not just SQL Azure, but also Azure tables, and Azure queues
- it looks to me like this framework could be used for non-Azure SQL Server connections as well: I haven’t tried this, but may be verifying it in the next month or two.
To me it looks like this framework, or something similar, ought to be pulled into the .Net Framework. I have no knowledge of any plans in this regards (and even if I knew, I likely couldn’t tell you), but it seems like a pretty logical thing to do.
I should probably add the usual disclaimer about these blog posts representing my own opinions and not those of my employer, unless otherwise explicitly stated, so consider it done!