Question Old database user sessions not terminated, not "in limbo"

Hi Everybody,

I am wondering why Progress doesn't seem to clean old sessions lingering in the DB sessions. Some users run reports that can use a lot of space in /tmp, so I have to terminated them manually. This is what I see:

Code:
$ proshut /bcp/pack/package -C list | grep -v "\." | grep -v root
usr    pid    time of login           user id     Type  tty                  Limbo?
 56  26704 Mon Mar  2 08:42:31 2020   gjohn       BAT   batch                no
 57  27167 Mon Mar  2 08:44:48 2020   gjohn       BAT   batch                no
 58  27185 Mon Mar  2 08:44:58 2020   gjohn       BAT   batch                no
 59  27284 Mon Mar  2 08:45:22 2020   gjohn       BAT   batch                no
 60  27672 Mon Mar  2 08:47:56 2020   MWojcik     BAT   batch                no
 61  27341 Mon Mar  2 08:45:52 2020   gjohn       BAT   batch                no
 62  27740 Mon Mar  2 08:48:19 2020   MWojcik     BAT   batch                no
 63  27794 Mon Mar  2 08:48:47 2020   gjohn       BAT   batch                no
 64  28438 Mon Mar  2 08:52:13 2020   gjohn       BAT   batch                no
 65  27782 Mon Mar  2 08:48:39 2020   gjohn       BAT   batch                no
 66  28459 Mon Mar  2 08:52:24 2020   gjohn       BAT   batch                no
 67  28509 Mon Mar  2 08:52:50 2020   gjohn       BAT   batch                no
 68  28579 Mon Mar  2 08:53:37 2020   MWojcik     BAT   batch                no
 99  26492 Mon Mar  2 08:40:59 2020   gjohn       BAT   batch                no
100  26768 Mon Mar  2 08:43:10 2020   gjohn       BAT   batch                no
101  27298 Mon Mar  2 08:45:31 2020   gjohn       BAT   batch                no
102  28555 Mon Mar  2 08:53:27 2020   gjohn       BAT   batch                no
103  28726 Mon Mar  2 08:54:22 2020   kmaj        BAT   batch                no
172  28727 Mon Mar  2 08:54:22 2020   gjohn       BAT   batch                no
173  28729 Mon Mar  2 08:54:22 2020   gjohn       BAT   batch                no
483  17388 Fri Mar  6 07:44:54 2020   pstephens   REMC  XAWPU09029           no
484  25596 Fri Mar  6 07:36:20 2020   MWojcik     REMC  XAWPU19112           no

Notice the old sessions from 2 March are as "batch", the actual proper sessions today 6 March are connected from Citrix server (XAWPU09029).

When I check the first PID=26704 there is a process associated with it:
Code:
$ ps -ef | grep 26704

root     26704  3587  0 Mar02 ?        00:09:10 /bcp/dlc/bin/_proapsv -logginglevel 4 -logfile /bcp/log/AccordLive.server.012477.log -ubpid 3587 -Ms 1 -logn                                    ame AccordLive -logentrytypes ASPlumbing,DB.Connects -logthreshold 1024000 -numlogfiles 2 -ASID 42 -ubpropfile /bcp/dlc/properties/ubroker.properties -ipver                                     IPv4 -db /bcp/pack/package -pf back.pf

When I terminate the old sessions no one complains, so I assume I can kill them safely. Also, when I terminated some old ones I freed a lot of space in /tmp from Used=90% down to Used=44%.

My question is, why wouldn't Progress terminate those old sessions? Is there a background process responsible for this?
Should I see them as "Limbo? = Yes"?

I know this can happen mainly when users loose network connections at their sites or have a session hang, so they reboot their machines.
Is there any DB settings in the config files that is not set?

Kind Regards,
Richard
 
Ah, just an update. I stumbled across this interesting thread, which may answer any questions you have about "why am I having a problem".

The problem I have is that we have to use Citrix. Bare in mind I am not in control of if, it's with other admins. The problem I've got is that when a Citrix session is idle for like ... 2 hours we are disconnected. If someone has the Progress App open it will be killed. That is probably why we end up with these dead old sessions with a process attached.

So we have the Progress Watchdog process that probably won't clean up a session, because the Linux process is still associated with it.

The database on Linux does not have a global parameter where I can define a length of time when a user session can be idle.
So this can only be done programmatically in the App, we would have to ask our third party App supplier to do that (rather awkward).

I cannot shutdown the database at night, as there are about 100 background processes the App runs and we would have to restart them manually every morning, and also users work at night 24/6 with only Saturdays when we can actually shutdown the database.

Users who run certain heavy reporting using SQL tend to generate "lock" files in /tmp, which can run into 2-5GB in size. If sessions like these are terminated and new ones are created (and even worse also terminated) I am left with no option but to find them and terminated them with kill -9, because the Progress wathdog doesn't count them as "in limbo)".

Scripting this will be difficult, but I think I have found the source of our problems with running out of space on Linux partitions.

Let me know if my thinking is correct.

Thanks
Richard
 
Top