However, when I tried to get the thread dump for the oc4j thread started via OPMN, I always got a blank response. According to http://mike-lehmann.blogspot.com/2006/10/thread-dump-with-oracleas-on-windows.html ,
However, when you go to the normal Oracle Application Server deployment environment on Windows which uses the Oracle Process Manager OPMN to manage OracleAS, getting a thread dump is a little trickier because OPMN is a second process which is spawning the JDKs which run each OC4J instance.
So whenever running "kill -3", you'll not get the thread dump from the output. Instead, it goes to the opmn log files, which usually is in folder $ORACLE_HOME/opmn/logs, with the name like "default_group~oc4j_soa~default_group~1.log".