• Sound like transactions are being opened without being closed. The easy & immediate solution would be to go through and kill all SPIDs that have open transactions, that are suspended that are more than N seconds old.
    Of course you want to get to the root of the problem... Based on your description, it sounds like either the application or a stored proc is allowing a user action to open a transaction and relying on a second user action to commit the transaction. That of course is a recipe for disaster. When you test the application yourself, odds are you're testing it like a developer, and using the application as it was designed to be used... Users, on the other hand, seem to be constantly finding new and innovative ways to use the application in the most horrific manner possible.
    The mane thing is to pin down the action(s) that are opening the transactions and what is preventing the commit....