Subject Re: [SPAM] [firebird-support] Re: Fire Bird Database connection issues.
Author Fabricio Araujo
Or better, have a console app verifying (on the server machine)
the active connections table from time to time.
No need to your app know about this.


On Fri, 07 Apr 2006 04:13:12 -0000, Adam wrote:

>--- In firebird-support@yahoogroups.com, "Jeremy Lim (Tm)"
><lim2000@...> wrote:
>>
>> can you give me some sample or guideline on hwo to start for example
>> where to insert record when new connection and where to delete
>record when
>> user logout
>
>This thread has some possible ideas:
>http://groups.yahoo.com/group/firebird-support/message/73638
>
>You still seem to think Firebird has some mechanism for this. It
>doesn't. The Firebird license allows for an unlimited number of
>connections, the internal limit is 1024, but this is only an
>implementation restriction. It may increase at some point in time.
>
>YOU need to CREATE the table if you want it. After you have created
>it, you may insert into it and delete from it as required. You can
>count the records in it, and decide if a connection has been abandoned.
>
>> and how to check for idle???
>
>You can't check for idle. You can only check for activity, and the
>absence of activity for a period of time is considered abandonned.
>Such a mechanism would require your program to periodically update a
>record (aka keep-alive). If you notice a really old record, then you
>assume it is abandoned.
>
>A suggestion
>
>Create a table
>
>activeusers
>(
> connectionnumber integer,
> lastcheckedin timestamp
>);
>
>Login Process:
>
>Delete from activeusers where connectionnumber = CURRENT_CONNECTION;
>Delete from activeusers where lastcheckedin < CURRENT_TIMESTAMP - (1/24);
>
>select count(*) from activeusers
>
>That will tell you how many users are in there. If you are below the
>limit, continue on, otherwise show an error and exit.
>
>Insert into activeusers values (CURRENT_CONNECTION, CURRENT_TIMESTAMP);
>
>commit;
>
>In Main Screen Using a TTimer or equivalent, every 20 minutes:
>
>update activeusers
>set lastcheckedin = CURRENT_TIMESTAMP
>where connectionnumber = CURRENT_CONNECTION;
>
>commit;
>
>It is not bullet proof due to isolation, but it should be good enough
>for what you need.
>
>Adam
>
>
>>
>> ----- Original Message -----
>> From: "Adam" <s3057043@...>
>> To: <firebird-support@yahoogroups.com>
>> Sent: Thursday, April 06, 2006 7:30 AM
>> Subject: [SPAM] [firebird-support] Re: Fire Bird Database connection
>issues.
>>
>>
>> > Of course, but as you have already said, if the connection is
>> > abandoned (someone just switches off their PC), this record will
>> > remain in the database.
>> >
>> > You will need to create some mechanism, perhaps a keep-alive update of
>> > the record could be sent from your application every 10 minutes. Your
>> > connection counter can remove connection records if they are more than
>> > 20 minutes old.
>> >
>> > But Firebird does not have this ability natively. There is no need for
>> > the database engine because the Firebird licensing allows unlimited
>> > connections. If you want to introduce limitations for your application
>> > licensing, you need to create tables and insert / update / delete
>> > information yourself.
>> >
>> > Adam
>> >
>> >
>> >
>> >> when user login will had a record of from which pc name and ip
>address
>> >> and when user logout when delete it.
>> >>
>> >>
>> >> ----- Original Message -----
>> >> From: "Adam" <s3057043@>
>> >> To: <firebird-support@yahoogroups.com>
>> >> Sent: Wednesday, April 05, 2006 7:38 AM
>> >> Subject: [SPAM] [firebird-support] Re: Fire Bird Database connection
>> > issues.
>> >>
>> >>
>> >> > > The reason is I don't want total user pass from a program
>> >> > > it will not be correct example improple shutdown or
>> >> > > etc the total user still will remains.
>> >> > >
>> >> > > What one want is how many connections from client
>> >> > > connect to fire bird with from which pc name and ip address.
>> >> >
>> >> > And what I have tried to explain is that this information can
>not be
>> >> > read through Firebird unless you pass it in.
>> >> >
>> >> > You did not state that you were after some sort of connection
>limit.
>> >> > All you stated was that you wanted to know the current IP
>address and
>> >> > computer name. The only way Firebird will return that to you is
>if you
>> >> > store it against the current_connection in a table somewhere.
>> >> >
>> >> > You are going to have to maintain your own keep-alive mechanism for
>> >> > crashes clients (which should hopefully be rare).
>> >> >
>> >> > Adam
>> >> >
>> >> >
>> >> > >
>> >> > > --- In firebird-support@yahoogroups.com, "Adam" <s3057043@>
>wrote:
>> >> > > >
>> >> > > > > FireBird 1.5 Super Server version, Delphi 7.
>> >> > > > > I try to use Delphi "Interbase" components
>TIBDatabase.Usernames
>> >> > > > > but only can get user name.
>> >> > > > >
>> >> > > > > Because we need to know total users connected to server
>> >> > > > > and from which pc and ip address.
>> >> > > >
>> >> > > > You will need to insert this information into a table from your
>> >> > > > program when someone 'logs in'. There are reasonably simple
>> > windows
>> >> > > > calls for this information, and lots of sample Delphi
>functions.
>> >> > > >
>> >> > > > > Is it possible to e.g dll to write the function to get
>> >> > > > > local pc name and ip address and use user define function
>> >> > > > > to call this dll.
>> >> > > >
>> >> > > > Well you could write a UDF to get the PC Name and IP
>Address, but
>> >> > > this
>> >> > > > will be executed on the database server and so will contain
>> >> > > > information about the DATABASE SERVER. You don't want
>information
>> >> > > > about the server, you want information about the clients.
>> >> > > >
>> >> > > > > When everytime got user login a trigger
>> >> > > > > to write this information to a table or variable.
>> >> > > >
>> >> > > > There is no trigger on a connection, but there is also nothing
>> >> > > > stopping you from passing in this information from the login
>> > screen.
>> >> > > >
>> >> > > > Adam
>> >> > > >
>> >> > >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> >> >
>> >> > Visit http://firebird.sourceforge.net and click the Resources item
>> >> > on the main (top) menu. Try Knowledgebase and FAQ links !
>> >> >
>> >> > Also search the knowledgebases at http://www.ibphoenix.com
>> >> >
>> >> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> >> >
>> >> > Yahoo! Groups Links
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >>
>> >
>> >
>> >
>> >
>> >
>> >
>> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> >
>> > Visit http://firebird.sourceforge.net and click the Resources item
>> > on the main (top) menu. Try Knowledgebase and FAQ links !
>> >
>> > Also search the knowledgebases at http://www.ibphoenix.com
>> >
>> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> >
>> > Yahoo! Groups Links
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > --
>> > Internal Virus Database is out-of-date.
>> > Checked by AVG Free Edition.
>> > Version: 7.1.375 / Virus Database: 268.2.1/278 - Release Date:
>09/03/2006
>> >
>> >
>>
>
>
>
>
>
>
>
>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
>Visit http://firebird.sourceforge.net and click the Resources item
>on the main (top) menu. Try Knowledgebase and FAQ links !
>
>Also search the knowledgebases at http://www.ibphoenix.com
>
>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
>Yahoo! Groups Links
>
>
>
>
>
>
>
>
>---
>avast! Antivirus: Inbound message clean.
>Virus Database (VPS): 0614-2, 06/04/2006
>Tested on: 7/4/2006 03:02:28
>avast! - copyright (c) 1988-2005 ALWIL Software.
>http://www.avast.com
>
>
>