While the "
asbman -i [name] -kill" will get rid of the AppServer processes, it will not necessarily generate a stack trace for parallel investigations with the associated log files. The following suggests another method. Please note simply issuing a kill against the process is not necessarily the best way forward in all cases and needs to be taken under advisement. Before proceeding refer to Article
How to perform an emergency shutdown of an AppServer Broker? Once a hang occurs, ie the ASBMAN command stops responding, while undertaking the Steps below, be sure to keep track (by PID) which _proapsv processes were killed before killing the broker and which needed to be killed afterwards.
STEPS:Where "
asbroker1" is the name of the AppServer;
1a) Find the PID's of _proapsv processes:
$ ps -ef | grep asbroker1 | grep _proapsv
1b) Then 'kill -8' half the _proapsv processes (ie the AppServer Agents) one-by-one:
$ kill -8 PID
NOTE: Killing of a process that is connected to a database via shared memory may cause the database to shutdown to preserve its integrity if the process killed is holding a lock, a latch, or a buffer.
1c) Copy the "core" (the core file will be in working directory) to
core.<PID> and then kill the next _proapsv process.
2a) Find the PID of the AppServer Broker:
$ ps -ef | grep asbroker1 | grep AppServer
2b) Then 'kill -8' the Broker process, where the resulting "
javacore" will be in working directory:
$ kill -8 `ps -ef | grep asbroker1 | grep AppServer | awk '{print $2}'`
3) Determine if the remaining
_proapsv processes die on their own.
$ ps -ef | grep asbroker1 | grep _proapsv
4) 'kill -8' the remaining _proapsv processes .. all in one go this time:
$ kill -8 `ps -ef | grep asbroker1 | grep _proapsv | awk '{print $2}'`
NOTE: Killing of a process that is connected to a database via shared memory may cause the database to shutdown to preserve its integrity if the process killed is holding a lock, a latch, or a buffer.