+2  A: 

Assuming that a bit of 2x4 and a plane ticket to your outsource 'partners' is out of the question,

you may want to have a look around at something like postsharp (http://www.sharpcrafters.com/) to produce an aspect oriented solution. Basically write some code that gets to hook in to various methods. You could then wire up the events on SqlCommand; disposed, info and state change could yield something useful if you are lucky.

I would say that the best solution to to persuade your managers that a proper code fix is the only sane solution. I am very familiar with your pain but any company that allows others to write their software needs to be able to take responsibility to validate the quality of that software or be prepared to ignore the low quality and accept the consequences.

There may be mileage in identifying the really poor SQL performance code to see if that can free up some of your SQL server resource.

Good Luck

adam straughan
A: 

Have you thought of simple utility method that does what you need and becomes the standard for making DB calls? Granted it is along the lines of your wrapper thought, however it will not allow resistance from the offshore team as they will not have to use a differing type. It could simply be a reason for abstracting the work to a single place.

We need to centralize our DB handling, etc...toss in some fancy words to management...and away you go...

Seems like you could pull that one off from a political stance no?

Aaron
A: 

If you can afford the overhead, one option would be to write some kind of a "DB proxy".

Your code would point to the proxy (via its connection string). The proxy in turn would point to the actual DB (via its connection string). The proxy would intercept the DB requests, execute them on the real DB, and return the results. But in doing so, it could implement an algorithm to make the queries more reliable (by implementing retries etc).

Just saying. It would be a way to implement retries without changing the code all over.

Ziffusion