Subject | Re: [firebird-support] unable to allocate memory from operating system |
---|---|
Author | Thomas Steinmaurer |
Post date | 2012-05-21T11:09:50Z |
Hi John,
using dbExpress? ;-)
Memory usage/exhausting are influenced from quite a few parameters.
The following are out of my mind:
* Client-side: Using buffered/non-buffered result set in your access
components
* Firebird page cache: RAM to be used for caching data pages. This is
defined by the database page size, page buffers and your Firebird server
architecture
* Firebird sort cache: RAM to be used for intermediate results while
sorting/grouping data before going to disk. E.g. per default with
Classic or SuperClassic this is 8 MB per connection
* Firebird lock manager size: RAM to be used for the lock manager. Can
defined in firebird.conf and inspected via fb_lock_print
* Windows 2008 Server, if it isn't the R2 release, AFAIK has a bug,
which can lead to the Windows file system cache exhausting the available RAM
--
With regards,
Thomas Steinmaurer (^TS^)
Firebird Technology Evangelist
http://www.upscene.com/
Do you care about the future of Firebird? Join the Firebird Foundation:
http://www.firebirdsql.org/en/firebird-foundation/
> Our main database is Firebird 2.1 running on a windows 2k8 serverTDBXError is an exception from the dbExpress layer, so I guess you are
>
> In the middle of the night with no real users, a single program was running updating data from a file into the database. This runs every night, there were no changes to the programs and automatic server updates are turned off. Part way through the program failed and then repeatedly gave the following errors each time it tried to write to the database.
>
> Exception class = TDBXError; message = invalid request handle
> Exception class = TDBXError; message = unable to allocate memory from operating system
using dbExpress? ;-)
Memory usage/exhausting are influenced from quite a few parameters.
The following are out of my mind:
* Client-side: Using buffered/non-buffered result set in your access
components
* Firebird page cache: RAM to be used for caching data pages. This is
defined by the database page size, page buffers and your Firebird server
architecture
* Firebird sort cache: RAM to be used for intermediate results while
sorting/grouping data before going to disk. E.g. per default with
Classic or SuperClassic this is 8 MB per connection
* Firebird lock manager size: RAM to be used for the lock manager. Can
defined in firebird.conf and inspected via fb_lock_print
* Windows 2008 Server, if it isn't the R2 release, AFAIK has a bug,
which can lead to the Windows file system cache exhausting the available RAM
--
With regards,
Thomas Steinmaurer (^TS^)
Firebird Technology Evangelist
http://www.upscene.com/
Do you care about the future of Firebird? Join the Firebird Foundation:
http://www.firebirdsql.org/en/firebird-foundation/