This project has moved and is read-only. For the latest updates, please go here.

Wow! Two Days no progress

Jun 18, 2011 at 8:47 AM


Please help, I am trying to get a working solution without any progress for the past two days.
Running on a Vista machine. 

I have program, it creates several processes (console), but one at a time.
Each process will create and used both directly and through the PersistentDictionary the Esent database.

Without settings the ff. parameter in the direct use of the Interop library... 
SystemParameters.DatabasePageSize != 8192 

I get an exception with the information

EsentPageSizeMismatchException: The database page size does not match the engine

If I sent it I get the following...

EsentAlreadyInitializedException: Database engine already initialized

when from the used of the PersistentDictionary in a different code.

How does this database really work? I am now confused :(

Best regards,

Jun 18, 2011 at 3:39 PM


It seems the problem is due to design of the PersistentDictionary class, which assumes that
no one will be using it and directly using the Interop API in the same application.

What I did was to expose the Microsoft.Isam.Esent.Collections.Generic.Globals class
and call the Globals.Init() method in my code before the direct Interop API use is
started and it works without any single problem!

Best regards,

Jul 5, 2011 at 11:36 PM

Sorry, I should have called out in the documentation that using the PersistentDictionary alongside the interop library would be weird.