I'm making some tests using ManagedEsent interface and I wonder if someone here can clarify on this:
- Inside a transaction I do an update(insert a record) and then rollback the transaction
If I look at the database with EseDatabaseView I can see the "uncommitted" record listed in the table. Going esent.dll again doesn't give me the record.
So, using the esent api the record is not committed (and not visible); and using EDV (I guess it reads directly from the file) the record is there.
Is this "normal" behaviour, does ESENT "always" write record into the file and if it is not committed it just does not reads it? Is it a bug in EDV showing it then? Or I'm missing something here?
As in most databases, esent is using transactions. They are stored in the LOG files that you can find in the same directory with the EDB file. If you want to access the data within the transaction LOG files, you need to flush them into the database. Use the following command to do that: eseutil /MH database.edb
More information about esent's transaction log: http://support.microsoft.com/kb/240145/en-us