Jet Latency - overcoming the delay between writes and reads

From: Dave Blake (barnswood_at_hotmail.com)
Date: 07/29/04


Date: Thu, 29 Jul 2004 10:19:42 +0100

With ADO and the Jet 4 OLE DB provider by default there is a delay of 5s
before changes made by one connection can be seen by another connection.
Work arounds for this latency "feature", how to synchronise reads and
writes, are described at

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q200300
and
http://81.130.213.94/myforum/forum_posts.asp?TID=54&PN=2

In summary:
1. Use transactions to make writes.
2. Use JRO JetEngine.RefreshCache method before reads.
3. Set connection property Jet OLEDB:Flush Transaction Timeout
4. Set connection property Jet OLEDB:Page Timeout

Knowing all that, there are some things I would like to clarify.
Firstly, 1) and 2) must be used in combination (according to Q200300), so do
they make the property changes unnecessary? Conversely does doing 3) and 4)
make 1) and 2) unnecessary? Or is it a belt and braces affair? Finally, are
there other consequences of making these timeout property changes?

I also note that other threads have suggested setting both these timeout
properties to 1. Doing this to Page Timeout at runtime raises an exception,
a minimum value of 500 seem to apply. So I suspect that a manual registry
setting for Page timeout lower than 500 gets ignored. Possibly why belt and
braces get applied - the braces ain't buttoned at the back!

Comments, experiences, and even better knowledge all welcome! Sources for
tips when using Jet in (small)multi-user situations still welcome too. Yes I
know that Jet and mdb files are superseded, but I am stuck with them. Take
pity on me.

Dave