Hi,
This happens to me ALL THE TIME.
Usually this is due to an LDAP connection that isn't closed properly.
Or if you JavaScript debugger is still on.
1) i would upgrade to 3.2r, it seems to solve a lot of my problems.
2) force shutdown.
In your startup script add a line that takes alfresco's pid and saves it.
In your shutdown script add a wait of : 30 seconds.
Then add a kill, with the pid number.
If you are really lazy add a "killall -9 java" in your shutdown script.
Is that bad?
If you put the wait then the connections are broken off (no connections to the db) and the process if killed.
So the risk of corruption is extremely small.
If you just killall -9 java then the risk is higher.
But i develop on linux, and restart my alfresco maybe 20X a day and i never use the shutdown script.
I might have corrupted my database maybe once in the last two years.
Hope it helps