Mnesia question

Mickael Remond <>
Thu Jun 16 17:49:45 CEST 2005


Hello,

I have encountered potentially strange behaviour with Mnesia, when the
changes applied to the database where made in a script-like fashion in a
short-lived program.

I had a program that was starting the database, then was inserting a
record in the database and last was stopping mnesia and the Erlang VM with
init:stop().

My record where not found in the database after a restart of the VM and
Mnesia. It where correctly written by my script however (I put a read and
print instruction to check).

I found that the record was in the log file in the database directory, but
was not replayed by Mnesia when restarted.
I thought that it might have to do with log threshold options (Dump log is
not triggered as the size of the transaction or the max time before dump
is not reached).

Finally adding a mnesia:dump_log instruction before stopping Mnesia in my
short lived script solve the problem.

I was wondering if this was the expected behaviour. I would have guessed
that Mnesia should have read the log on startup or that shutdown would
have dump the log.

I was using Erlang/OTP R10B-3.

Thank you for your feedback

-- 
Mickaël Rémond



More information about the erlang-questions mailing list