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.