Recurring Service Error: Out of database page buffers [Service encountered a critical error]
This is happening twice per day currently.
I do have 32GB Memory, but my database server can ramp up to use up to 98% at times. But still i don't think the service should crash out like this.
Other than this it's great at what it does!
The Revalee service stores a copy of each task on disk using the built-in ESE (JET Blue) database engine that comes with Windows. This on-disk database is used to recover the list of pending tasks on a service restart (e.g., following a reboot).
It sounds like the ESE database engine is having problems de-fragmenting the stored tasks. This is certainly not normal behavior. We run the service in production continuously without any database problems.
How many tasks are you scheduling within a 24 hour period?
Some people fixed the Out of database page buffers error by increasing the Windows paging file size. With 32GB RAM, the automatic maintenance processing within the ESE engine may require extra swap space, since your database server is under 98% memory load.
You can also peek at the tasks stored within the ESE engine by executing:
Revalee.Service.exe -export
I just had the same error ("Out of database page buffers") supporting one or two tasks that reschedule themselves at the rate of once per hour or so. After restarting the service I ran Revalee.Service.exe -export as per your recommendation and got
"WARNING: Exporting tasks is not available, because there is no configured task persistence provider."
Which doesn't sound right :) Up until now Revalee had been running fine for a couple of months.
This is running on Windows 7 with 32G of Ram and not a lot else going on on the machine.
Have you tried to increase your swap file size to eliminate the "Out of database page buffers" error? It's curious that the ESE engine is having difficulties with memory on high RAM machines.
Regarding the export command, does your Revalee.Service.config file contain the following connection string?
<connectionStrings>
<add name="TaskPersistence" connectionString="" providerName="Microsoft.Isam.Esent" />
</connectionStrings>
I upped swap space before restarting it so we shall see. On the –export side of things my Config file does have the connectionString definition. Now, however, when I try to –export things are worse:
F:\usr\revalee>Revalee.Service.exe -export
Unhandled Exception: Microsoft.Isam.Esent.Interop.EsentFileAccessDeniedException : Cannot access file, the file is locked or in use at Microsoft.Isam.Esent.Interop.Api.Check(Int32 err) at Microsoft.Isam.Esent.Interop.Instance.Init(InitGrbit grbit) at Revalee.Service.EsePersistence.EseTaskPersistenceProvider.Open(String connectionString) at Revalee.Service.TaskExporter.DumpToConsole() at Revalee.Service.Revalee.Main()
Tnx Alan
The export command cannot run while the service is actively running. Try stopping the service before running Revalee.Service.exe -export.