Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » DBISAM Technical Support » Support Forums » DBISAM Client/Server » View Thread |
Messages 1 to 10 of 10 total |
Server locking at least once a day |
Mon, Nov 26 2007 11:37 PM | Permanent Link |
"Al Vas" | Hi,
We have a client who uses on of our products and they claim that at least once a day (intermittently) they cannot access the product. When the IT admin stops and restarts the DBISAM server it is fine again. He sent me the server log and the following is of interest: 26/11/2007 2:08:01 PM Session not found, re-connection rejected [Address: 10.8.214.34 Version: 3.30 Request: REQUEST_RECONNECT Thread: 204 Session: 0] 26/11/2007 2:08:01 PM Connection closed [Address: 10.8.214.34 Version: 3.30 Thread: 204 Session: 0] Firstly do you know what this means, that session is not found and why this would be occurring and what we can look at to try and ascertain the issue. It is DBISAM V3.30. Thanks Alex |
Tue, Nov 27 2007 1:29 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Alex,
<< Firstly do you know what this means, that session is not found and why this would be occurring and what we can look at to try and ascertain the issue. It is DBISAM V3.30. >> It means the database server removed the session because it was considered to be a "dead" session or else the database server was stopped and restarted, thus permanently removing the session and preventing the remote session from reconnecting. -- Tim Young Elevate Software www.elevatesoft.com |
Tue, Nov 27 2007 6:02 PM | Permanent Link |
"Al Vas" | Hi Tim,
So how does this occur? A timeout? Where should we look to resolve this issue? The client gets lockups at least once a day and has to reset database server to resolve. Any advice appreciated. Alex "Tim Young [Elevate Software]" <timyoung@elevatesoft.com> wrote in message news:6EBC4A2B-3AE5-4DE4-B984-CFADC59E599F@news.elevatesoft.com... > Alex, > > << Firstly do you know what this means, that session is not found and why > this would be occurring and what we can look at to try and ascertain the > issue. It is DBISAM V3.30. >> > > It means the database server removed the session because it was considered > to be a "dead" session or else the database server was stopped and > restarted, thus permanently removing the session and preventing the remote > session from reconnecting. > > -- > Tim Young > Elevate Software > www.elevatesoft.com > |
Tue, Nov 27 2007 8:24 PM | Permanent Link |
"Jeff Cook" | Al Vas wrote:
> Hi Tim, > > So how does this occur? A timeout? Where should we look to resolve > this issue? The client gets lockups at least once a day and has to > reset database server to resolve. > > Any advice appreciated. > > Alex > > Kia Orana Al I think that v4 DBISAM has a ping mechanism to fix this problem but I, like you, am on v3.30, so I have a TTimer in my datamodule that is set for a 60000 interval with code like this:- procedure TapmDM.ConnectionTimerTimer(Sender: TObject); var dOnServer: TDateTime; begin dOnServer := APM.Session.GetRemoteDateTime;//APM is my database end; Kia Manuia Jeff -- Jeff Cook Aspect Systems Ltd www.aspect.co.nz + Joan and Jeff Cook The Cooks Oasis www.cookislandsoasis.com |
Wed, Nov 28 2007 8:38 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Alex,
<< So how does this occur? A timeout? Where should we look to resolve this issue? The client gets lockups at least once a day and has to reset database server to resolve. >> There are two issues at play here. One is the database server not responding (or is it the client application which isn't responding ?), which is a whole separate issue. The other is the issue of the reconnection being rejected, which can be resolved by either: a) Increasing the timeout value for sessions on the database server via this TDBISAMSession method: procedure ModifyRemoteConfig(DenyLogins: Boolean; MaxConnections: Word; ConnectTimeout: Word; DeadSessionInterval: Word; DeadSessionExpires: Word; MaxDeadSessions: Word; const TempDirectory: string; AuthorizedAddresses: TStrings; BlockedAddresses: TStrings); or via the Server Administration Utility. b) Do what Jeff suggested, and create the equivalent of DBISAM 4's ping functionality. -- Tim Young Elevate Software www.elevatesoft.com |
Wed, Nov 28 2007 5:35 PM | Permanent Link |
"Al Vas" | Thanks Tim,
So if I understand this correctly, lets say timeout is 300 seconds (default value), then if the user doesn't use the application for at least 5 minutes but it is still running on the PC, then the database engine disconnects the session and it cannot be recovered? So pinging every minute or so resolves this. Regards Alex "Tim Young [Elevate Software]" <timyoung@elevatesoft.com> wrote in message news:0D5BF9F3-C883-40D9-92B4-547F1059F6EC@news.elevatesoft.com... > Alex, > > << So how does this occur? A timeout? Where should we look to resolve > this issue? The client gets lockups at least once a day and has to reset > database server to resolve. >> > > There are two issues at play here. One is the database server not > responding (or is it the client application which isn't responding ?), > which is a whole separate issue. The other is the issue of the > reconnection being rejected, which can be resolved by either: > > a) Increasing the timeout value for sessions on the database server via > this TDBISAMSession method: > > procedure ModifyRemoteConfig(DenyLogins: Boolean; MaxConnections: > Word; > ConnectTimeout: Word; > DeadSessionInterval: Word; > DeadSessionExpires: Word; > MaxDeadSessions: Word; > const TempDirectory: string; > AuthorizedAddresses: TStrings; > BlockedAddresses: TStrings); > > or via the Server Administration Utility. > > b) Do what Jeff suggested, and create the equivalent of DBISAM 4's ping > functionality. > > -- > Tim Young > Elevate Software > www.elevatesoft.com > |
Wed, Nov 28 2007 6:34 PM | Permanent Link |
Eryk Bottomley | Al,
> So if I understand this correctly, lets say timeout is 300 seconds (default > value), then if the user doesn't use the application for at least 5 minutes > but it is still running on the PC, then the database engine disconnects the > session and it cannot be recovered? So pinging every minute or so resolves > this. No, after 300 seconds the server disconnects the client but keeps the session around in a suspended state until the dead session expiry time is reached (I can't remember the default for that - I think it is 60000 seconds). If the client becomes active again between those two times (300s and 60000s) then it will transparently reconnect and the user can proceed as if nothing had happened. Eryk |
Wed, Nov 28 2007 7:06 PM | Permanent Link |
"Al Vas" | K thanks Eryk,
So there is really no point pinging every minute from the client? Alex "Eryk Bottomley" <no@way.com> wrote in message news:797A55CD-8B01-4D0E-A692-A5EA7D1FA725@news.elevatesoft.com... > Al, > > >> So if I understand this correctly, lets say timeout is 300 seconds >> (default value), then if the user doesn't use the application for at >> least 5 minutes but it is still running on the PC, then the database >> engine disconnects the session and it cannot be recovered? So pinging >> every minute or so resolves this. > > No, after 300 seconds the server disconnects the client but keeps the > session around in a suspended state until the dead session expiry time is > reached (I can't remember the default for that - I think it is 60000 > seconds). > > If the client becomes active again between those two times (300s and > 60000s) then it will transparently reconnect and the user can proceed as > if nothing had happened. > > Eryk |
Wed, Nov 28 2007 7:34 PM | Permanent Link |
Eryk Bottomley | Al,
> So there is really no point pinging every minute from the client? The point of a "ping" is so that you can set the dead session expiration to a low value to ensure that server side resources are freed up promptly in cases where you expect there to be lots of sessions that may go silent and never come back to life. In this scenario the "ping" keeps the client connection active so that the server can aggressively recycle any sessions that stop pinging. Eryk |
Thu, Nov 29 2007 12:49 AM | Permanent Link |
"Al Vas" | Ahh, k thanks for that Eryk.
"Eryk Bottomley" <no@way.com> wrote in message news:B81CC411-0F03-49E7-B388-8E6519BFC43F@news.elevatesoft.com... > Al, > >> So there is really no point pinging every minute from the client? > > The point of a "ping" is so that you can set the dead session expiration > to a low value to ensure that server side resources are freed up promptly > in cases where you expect there to be lots of sessions that may go silent > and never come back to life. In this scenario the "ping" keeps the client > connection active so that the server can aggressively recycle any sessions > that stop pinging. > > Eryk |
This web page was last updated on Sunday, May 5, 2024 at 07:30 PM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |