How to disconnect a forgotten promon session? (proshut does

Posted by slacroixak on 08-Jan-2019 08:38

Hi all, promon connections appear with a type of MON in another promon session.  Fine.  However they do not appear in the connected users list given by proshut. Perhaps this explains why we cannot disconnect/close another promon session..

The following command does not work for a promon session:

    proshut <dbname> -C disconnect <usernum>   

Saying:

    User 24 not logged on . (6799)

Is there a smart way to close a promon session left running in another OS session, other than killing its process?

If no, is there a good reason for that?  Is there a risk to damage a database by kiling a promon process?

Posted by Ruanne Cluer on 08-Jan-2019 11:12

This was improved in 11.5

Take a look at knowledgebase.progress.com/.../000052723

Posted by George Potemkin on 08-Jan-2019 13:34

> Now it seems to work, but sometimes after some delay

On Unix proshut -C disconnect sets the "usrtodie" flag in shared memory /and/ sends a signal (SIGEMT, SIGTRAP or SIGUSR2 depending of Unix flavors). I guess there is a reason for sending a signal. On Windows Progress can't use the signals. Maybe it's why there is a delay on Windows.

All Replies

Posted by George Potemkin on 08-Jan-2019 08:57

> Is there a smart way to close a promon session left running in another OS session, other than killing its process?

No. But try to get a protrace file first. BTW, _mprshut processes (including promon) are "fragile" to the SIGUSR1 signal. Under the normal circumstances on the receiving the signal they generate protrace file but then they are terminated.

> Is there a risk to damage a database by kiling a promon process?

I guess that in our case the promon sessions (more than one) hung because they all are waiting for some database resource. So killing them will crash the database.

Does new promon session will hang as well?

Do you start them with the -NL?

Do you change working area to 3. Primary Recovery Area?

Posted by Ruanne Cluer on 08-Jan-2019 11:12

This was improved in 11.5

Take a look at knowledgebase.progress.com/.../000052723

Posted by slacroixak on 08-Jan-2019 12:56

Thank you for your input George.  Actually, I did not say the first old promon was hanging of hitting any system issue.

Recently we had a case of a colleague that was not capable of restarting a database in production because a local IT had left a promon session running in his windows session on a server.  That's why I was wondering whether there would be a way to nicely disconnect such a forgotten promon, and especially why it seems to not be possible.

Posted by slacroixak on 08-Jan-2019 13:09

Hi Ruanne, thank you for pointing out KBase 52723 (weird I could not find it myself, cause I did search...).  This morning with 11.6.2 I had the impression Proshut -C disconnect was not effective for another promon (both promon running in same win10 session).  Now it seems to work, but sometimes after some delay

BTW it now says

User 20 disconnect initiated. (6796)

Wondering what I may have missed...

Posted by George Potemkin on 08-Jan-2019 13:34

> Now it seems to work, but sometimes after some delay

On Unix proshut -C disconnect sets the "usrtodie" flag in shared memory /and/ sends a signal (SIGEMT, SIGTRAP or SIGUSR2 depending of Unix flavors). I guess there is a reason for sending a signal. On Windows Progress can't use the signals. Maybe it's why there is a delay on Windows.

This thread is closed