Hmm. I agree with you, but this approach also causes problems. On a site with heavy load this can cause problems. If all the connections disconnect at once (i.e. after an hour) then this can cause a bottleneck as the connections reconnect. This is what happens on our site:
Initially only about 2-3 connections are created. After an hour they are disconnected A delay is caused by having to reconnect (averaging > 0.5 < 1 second) In a peak period our site generates a lot of database hits (perhaps 10 a second). This means that dropping the connection may result in a build up of 10 or more requests waiting to be served. What I have noticed from tracing the connections in Oracle is that immediately after dropping the connections after the hour has elapsed, Turbine creates more connections that it dropped: i.e. if 3 connections were in use, dropping them will result in 10 connections immediately being created to cope with the backlog. This spiking is bad for performance. I can see two solutions, implement a more standard timeout (i.e. inactivity based), or have connections expire more gradually, rather than all at once. The second option would probably be a very messy solution. You said database connections go stale, but were vague about why/how. Any more info on this? Do you know whether it would be possible for me to alter Turbine to drop sessions only if they have been inactive? Gareth > -----Original Message----- > From: jmcnally [mailto:jmcnally]On Behalf Of John McNally > Sent: Wednesday, October 31, 2001 19:50 > To: Turbine Users List > Subject: Re: Database expiry > > > It is a good idea to expire a connection after several hours > or possibly > a day or two, regardless of whether the connection is being > used during > that time. I do not know the reason for this, but connections tend to > get stale. If you set the expiration to only occur after the > connection > has not been used for the given amount of time, it likely will never > expire until it goes bad. > > john mcnally > > Gareth Coltman wrote: > > > > We are having problems with database connections > disconnecting unexpectedly after 1 hour, whether or not that > have been used during > > this period. After exploring our network and database > configurations, it seems the only culprit can be Turbine (we > are using 2.1). I > > have tried to track down the code in Turbine which causes > the connections to expire but can't. I have found the > isExpired method in > > the ConnectionPool class : > > > > return ((System.currentTimeMillis() - > > connection.getTimestamp()) > expiryTime); > > > > - this is interesting because it expires whether or not it > has been active during that period. However I can't find any > thread that > > monitors the connections and expires them. Obviously > missing something. Ideally what one would want is for > connections to remain > > cached up to expiry_time after they were last used. Anyway, > please help! > > > > Gareth > > > > -- > > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > > -- > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
