There is probably nothing you can do to get your preStop() method to run if someone forcefully kills the WebLogic process.
You should educate the system administrators that they should never forcefully kill WebLogic, and you should design your software so that it isn't left in a corrupt state whenever it's killed forcefully.
Suppose someone pulls the power plug from the server. There's absolutely no way you can get your preStop() method run when something like that happens. The only thing you can do is make your application robust so that it doesn't get into a corrupt state when something like that happens.
[ July 18, 2008: Message edited by: Jesper Young ]