Consultor Eletrônico



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