Recent versions of both the IBM and Oracle JVMs support late attach functionality. This allows you to "inject" either a native JVMTI or Java agent into a running JVM which can run arbitrary code without having to restart the JVM. For IBM Java, the versions are Java 5 >= SR10 (disabled by default) [WAS >= 18.104.22.168], Java 6 >= SR6 (enabled by default on non-z/OS platforms) [WAS >= 22.214.171.124], Java 6 R26 [WAS 8], and Java 7.
If you're in a really sticky situation where you can't restart a server, but you need to do something to it to make it healthy or gather diagnostics, using a late attach agent would be one way to do this (albeit very advanced). So I recommend every customer starts their IBM Java, WAS 6.1 JVMs (and WAS 7 on z/OS) with the following generic JVM argument (your security team should review any potential security issues). It may save you one day.