If you have a server that crashed without a clean shutdown, you may have transactions that are in progress and need to be recovered. In development, you would likely jusy delete the tranlog. On a production machine, you will likely need the following useful command line option when starting your server:
startServer <server> -recovery
This is the preferred way to clear any in-doubt transactions. It will start the server, allow you to recover transactions and then shut it down again. Once the in-doubt transactions are resolved, the following normal start of the server should be clean.
Note that this really doesn’t do anything that the server doesn’t do on a normal restart. Its main use if you have some reason for wanting the server in question not to start processing new workload.
Hi David,
Yes, but it’s nice to have a way to bring a screwy server up while isolating it from new transactions. I was almost at the point of telling the admin to be ‘really quick’ on the mouse trigger to turn off the ‘front door’ ears 🙂
Also, sometimes it’s hard to tell the ‘normal rollback’ exceptions from new business exceptions. In one case a server spent a long time down because the admin didn’t understand that rollbacks after a crash are (cough) ‘normal’.
It would also be cool to have a -recovery -noshutdown option when you need to tweak the config of a server but want to keep the front door closed.