hhblaze/DBreeze

Multiple DBreezeEngine instances to the same db files

dosh1974 opened this issue · 1 comments

It seems like DBreeze doesn't support multiple (active) instances using the same files, correct?

It's quite common to have one process producing data (for instance logging as I saw a question about).
Then another process that queries data (maybe displaying the log on a web page etc).

When constructing the second DBreezeEngine instance I get the following exception:
DBreeze.Exceptions.DBreezeException
HResult=0x80131500
Message=Creation of the database folder failed!
Source=DBreeze
StackTrace:
at DBreeze.DBreezeEngine.InitDb()
at DBreeze.DBreezeEngine.ConstructFromConfiguration(DBreezeConfiguration dbreezeConfiguration)
at DBreeze.DBreezeEngine..ctor(DBreezeConfiguration dbreezeConfiguration)

Inner Exception 1:
DBreezeException: Database is not operable, please find out the problem and restart the engine! FSR INIT FAILED: _DBreezeSchema

Inner Exception 2:
IOException: The process cannot access the file '_DBreezeSchema' because it is being used by another process.

I guess this is by design so it can't easily be "fixed", which is a shame because it limits the usability quite a bit IMO.

No it is not supporting multiple instances connecting the same files. And it should not. One instance can handle multiple parallel transactions. Please, read docu.