Kbase 20666: SYSTEM-ALERT-BOXES = TRUE Causing PROSHUT to Hang
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/16/2008 |
|
Status: Unverified
SYMPTOM(s):
Proshut appears to hang if no response is given after alert-box is displayed.
Database <name> was disconnected. (1015)
<time> processes still connected. (2262)
Client connection is made via shared memory.
Session has SYSTEM-ALERT-BOXES = TRUE enabled
CAUSE:
PROSHUT is not hanging, but is running a series of processes to ensure that all clients are disconnected and the database can be shut down.
When a Progress session has set SYSTEM-ALERT-BOXES = TRUE and it gets a disconnect request, the message:
Database <db> was disconnected. (1015)
appears as an alert-box, and the session waits until the OK button is pressed.
If no input is received (OK is not pressed), the following algorithm is used to shutdown:
- At shutdown, a loop through the process table (-n) is initiated and sends a shutdown signal to all connected processes.
- Progress waits 30 seconds and sends a SIGALRM to all connected processes. This should wake up all clients from any PAUSE statements.
- After 30 seconds, a ^C is sent to the connected users.
- After another 30 seconds, the shutdown signal is resent.
- Progress keeps prompting the remaining connected users in this manner until 5 ½ minutes have passed. At this point a much more aggressive approach is taken because Progress believes the remaining processes are hanging and it starts keeping track of all database actions the processes are doing.
- If a connected process has been idle for 90 seconds after the tracking begins, a "kill" is sent, forcing the client to exit, and the transactions for the user are backed out.
FIX:
If the time associated with a graceful shutdown is unacceptable, force an emergency shutdown which will delay the transaction roll back and recovery to the next time the database is accessed in either single or multi-user mode.
proshut dbname -by -F