Subject | Re: [firebird-support] Excessive server resource utilization |
---|---|
Author | Helen Borrie |
Post date | 2003-11-03T14:42:58Z |
At 01:38 PM 3/11/2003 +0000, you wrote:
server, none of your database changes will ever get written to disk until
you DO a server shutdown? The Linux server should be OK with FW off but I
hope you've got a UPS with lots of minutes. You have backversions piling
up in memory too.
Why do you think you need FW off?
using local connect?
Since you're pooling connections, are you testing them for InTransaction
before dropping the connection?
if MyDbConnection.InTransaction then
MyDbConnection.Rollback;
Could be something going on with dropout clients, maybe. Could the
connections be going back into the pool too soon because you're assuming
that, once the client disconnects, the connection is available? This won't
be the case if the transaction is still pulling rows into the buffer in the
WebModule.
instantaneous. Also make sure you're not relying on Autocommit to get you
out of trouble if the client just simply decides to surf off somewhere.
disappearing without hitting the Submit button.
heap of backversions in memory and risking losses in the event of a server
crash. Reduce the number of rows in queries so the connections get freed
up in a timely fashion. Make sure a connection really *is* available
before releasing it to the pool. Sweep. Put a timer in the webapp to
detect neglected webmodule instances.
One or more of the above, probably.
>Here is some further information: This problem has been found onAnd you are doing manual sweeps instead?
>both the Win2K and Linux Superserver platforms (for the database
>server). We are using dbExpress data access components. The
>database configuration has automatic housekeeping disabled (0),
>Forced Writes turned off,There's a big chunk of memory growth. Do you realise that, on your Win2K
server, none of your database changes will ever get written to disk until
you DO a server shutdown? The Linux server should be OK with FW off but I
hope you've got a UPS with lots of minutes. You have backversions piling
up in memory too.
Why do you think you need FW off?
>4K page size and 16384 pages. ConnectionsHow are the connections being made? via localhost (local loopback) or
>are pooled (on average, around 5 simultaneous connections found).
>There is only one UDF registered (strlen from IB_UDF), but it is not
>used currently.
>
>Other observable behavior includes: at the start of the working
>day, the clients often encounter the dbExpress error "duplicate
>transaction id". This seems unlikely, though,
using local connect?
Since you're pooling connections, are you testing them for InTransaction
before dropping the connection?
if MyDbConnection.InTransaction then
MyDbConnection.Rollback;
Could be something going on with dropout clients, maybe. Could the
connections be going back into the pool too soon because you're assuming
that, once the client disconnects, the connection is available? This won't
be the case if the transaction is still pulling rows into the buffer in the
WebModule.
>since the databaseIf you're pulling large datasets, commit or rollback won't be
>connection component is dropped on the Webmodule (there is,
>therefore, only one connection per thread) and the transaction is
>started in the OnBeforeDispatch of the WebModule (before handling
>the user's request) and committed (if an exception did not
>necessitate a rollback in between) in the OnAfterDispatch.
instantaneous. Also make sure you're not relying on Autocommit to get you
out of trouble if the client just simply decides to surf off somewhere.
>Also, once every two days or so (and always in working hours) the FBThose could be "wanderers" - flotsam and jetsam left behind from clients
>server terminates abnormally, with only "inet_error"s 104 and 110
>taking up the rest of the FB log. These errors do not occur
>directly before the server terminating, though, and are from the
>Linux SS server.
disappearing without hitting the Submit button.
>How could I go about finding out what's wrong? Which diagnosticEnable FW on the Win2K server for starters so you're not building a big fat
>steps could you suggest? Your help is much appreciated.
heap of backversions in memory and risking losses in the event of a server
crash. Reduce the number of rows in queries so the connections get freed
up in a timely fashion. Make sure a connection really *is* available
before releasing it to the pool. Sweep. Put a timer in the webapp to
detect neglected webmodule instances.
One or more of the above, probably.