Subject Re: Classic Server leaves "ghosts" connections behind
Author Adam
--- In, "Eduardo A. Salgado"
<eas@o...> wrote:
> New to working in a Citrix environment. Using FB version 1.5.2 in
> Classic Server mode on a 4 processor box with hyperthreading (making
> it look like 8 processors) and 3.5 Gig of RAM.
> Even though I set GuardianOption = 0 and disabled Guardian, I find a
> lot of "ghost" connections, most just using some 50 KB of memory,
> even at midnight when no one is using our apps.
> To me they appear to be left behind by Citrix timeouts of the
> connections to the database (even when set to 6 hours) when users
> leave their machines on and do not terminate the program that uses
> the database connections. With growing number of users, we may exceed
> the server limits on concurrent connections even though they are not
> really being used.

Hang on a tick. Are they really "ghost" connections, or are they
connections created by sessions that are still technically active but
no-one is connected to it?

At first I would have suspected the guardian (there is or at least was
a bug in the windows installer that would not disable guardian in a
classic install).

If they are connections with no active transactions running, then
unless you are worried about the 1024 connection limit, then they are
not using substantial resources. If they do contain active
transactions, then you have a problem, because they are probably
keeping old record versions interesting.

While I do not have much experience with Citrix, we offer an ASP
solution over terminal services, which I believe is pretty similar
conceptually. When creating users in TS, you are able to set session
limits (in fact you can do it globally for all users). We
automatically end the sessions of users who have disconnected for over
30 minutes.

> Have you guys any experience with these left over connections? How
> can we make sure they are cleared up? Is there some code that needs
> to be invoked or conf setting that needs to be turned on?

This sort of application is generally handled better with some sort of
data abstraction layer that can pool database connections.