Subject Re: [firebird-support] Classic server and never ending connections
Author Helen Borrie
At 11:06 AM 7/12/2004 +0100, you wrote:


>Hi all,
>
>I'm using Classic server (2xP4 Xeon proccessor HT, win2k server),
>Firebird version 1.5.2 RC4, though problem occurs in any 1.5 version.
>Usually there are about 30 concurrent connections in this installation.
>In some cases after closing application the connection isn't released -
>fb_inet proccess is still running. Stopping the service kills only
>default proccess. Task manager is useless, shows only 'access denied to
>proccess'. It complicates backup/restore procedure, since reboot is
>required (database file is locked until every connection ends).
>
>Does IBX have something to do with that? Most of our applications use
>IBX. Not sure, but sometimes IBExpert also causes such situation.

In Firebird, you can't stop a running query; so if you have a long process
or a very large query, any request to close the query and end the
transaction will not complete until all of the rows waiting in the buffer
have been fetched by the application. AFAIK, for the latter, the only way
to achieve that with IBX or with a FIBPlus app like IBExpert is to call the
Last() method of the query.

Of course, the correct precaution is not to write apps that allow huge
numbers of records to sit in the buffer.

Terminating the server process is one way to end a query but it very
UNCOOL. If anyone on the system has unfinished work, it will be lost.
However, if you have to stop a service because an application has painted
you into a corner, use the Services applet inside Administratiive
Tools; or go to the command line and stop it with

NET STOP FirebirdServerDefaultInstance

NET START FirebirdServerDefaultInstance

will restart it, i.e. flash up the caretaker instance of fb_inet_server
that listens for client connections.

./heLen