Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 4 of 4 total
Thread TDBISAMEngie does not fire OnServerDisconnect Event
Fri, Mar 10 2006 9:19 AMPermanent Link

Andreas Kardin
Hello

I'm using Delphi 6 Professional and DBISAM Server Version 4.22.

I use event handlers for ServerConnect, ServerDisconnect and
ServerLogEvent. The connections and the log events will be triggerd but I
get no disconnect event. Quite interesting is that I get a log event for
the disconnection.

Now I've done a workaround with the ServerLogEvent and LogRecord.EventType
to detect client connects and disconnects but I think that's not the idea.

Am I doing something wrong?

Regards

--
Andreas Kardin - Software Developer - E-Mail : mail@mephzara.com
- Main Web Site                 : www.mephzara.com
- Particle Systems Screen Saver : www.mephzara.com/particle-systems/
Fri, Mar 10 2006 5:24 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Andreas,

<< I use event handlers for ServerConnect, ServerDisconnect and
ServerLogEvent. The connections and the log events will be triggerd but I
get no disconnect event. Quite interesting is that I get a log event for the
disconnection.>>

Under what circumstances is the disconnect occurring ?  Is the user logging
out or is the session being disconnected because the server has waited on a
request for the connection timeout duration and has disconnected the session
?

--
Tim Young
Elevate Software
www.elevatesoft.com

Fri, Mar 10 2006 7:20 PMPermanent Link

Andreas Kardin
Tim Young [Elevate Software] wrote :

[...]
> Under what circumstances is the disconnect occurring?

I did a connection test with the Database System Utility delivered with
dbisam. The server was running localy on the same machine (admin server
stopped, just main server running). I used the open table command in the
database system utility. As soon as I click on the "Remote
(Client/Server)" option button I get a connect event in the server. After
that I press cancel in the login dialog and I get a log event with a
logrecord indicating that the client has disconnected but I do not get a
disconnect event. Also when I login, open a table and close the Database
System Utility I get the log event but no disconnect event.

The server engine is initalized as follows...

ServerConfigPassword:=something;
ServerName:=myName;
ServerAdminAddress:='127.0.0.1'; //[1]
ServerMainPort:=currently the same a the default;
ServerConfigFileName:=something in the temp dir

If FileExists(ServerConfigFileName) then Delete(ServerConfigFileName);

Active:=True;
AddServerUser(one user);
AddServerDatabase(one db);
AddServerDatabaseUser(one user);
StopAdminServer;

[1] paranoia to prevent a remote connections for the short period until
the admin server will be stopped

Regards

--
Andreas Kardin - Software Developer - E-Mail : mail@mephzara.com
- Main Web Site                 : www.mephzara.com
- Particle Systems Screen Saver : www.mephzara.com/particle-systems/
Mon, Mar 13 2006 12:05 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Andreas,

<< I did a connection test with the Database System Utility delivered with
dbisam. The server was running localy on the same machine (admin server
stopped, just main server running). I used the open table command in the
database system utility. As soon as I click on the "Remote (Client/Server)"
option button I get a connect event in the server. After that I press cancel
in the login dialog and I get a log event with a logrecord indicating that
the client has disconnected but I do not get a disconnect event. Also when I
login, open a table and close the Database System Utility I get the log
event but no disconnect event. >>

This is normal - you only get a disconnect event in the case of a session
being disconnected, but still being present on the database server.
Otherwise, you get a logout event, which indicates that the session logged
out properly.  If you look at the dbsrvr.dpr project (main.pas) you will see
how the events work in terms of logging in/logging out.

--
Tim Young
Elevate Software
www.elevatesoft.com

Image