BUG: Access Driver Ignores Pagetimeout in Datasources

ID: Q155232


The information in this article applies to:
  • Microsoft Open Database Connectivity, version 3.40


SYMPTOMS

The Access ODBC driver ignores the Pagetimeout parameter specified in ODBC datasources.

WORKAROUND

WARNING: Using Registry Editor incorrectly can cause serious, system-wide problems that may require you to reinstall Windows NT to correct them. Microsoft cannot guarantee that any problems resulting from the use of Registry Editor can be solved. Use this tool at your own risk.

To work around this problem:
  1. Run Registry Editor (Regedt32.exe).


  2. From the HKEY_LOCAL_MACHINE subtree, go to the following key:


  3. \SOFTWARE\Microsoft\Jet\3.0\Engines
  4. From the Edit menu, select Add Key, and then enter the following key: Jet


  5. Select the Jet key.


  6. From the Edit menu, select Add Value.


  7. Add the following:


  8. 
          Value: PageTimeout
          Data Type: REG_DWORD
          Data: <Decimal value in milliseconds> 
    NOTE: If this value is set too low, performance may degrade due to Jet increasing its reading of the .mdb file. Do not set the value lower than the Jet 2.0 default of 0.5 second. The PageTimeout parameter is expressed in 100 millisecond units. So, a value of 5 stands for 500 milliseconds or .5 seconds.

  9. Click OK.


  10. Quit Registry Editor.


  11. Shut down and restart Windows NT.



STATUS

Microsoft has confirmed this to be a problem in the ODBC Access 3.40.2829 Driver.


MORE INFORMATION

The Access ODBC driver is built on the Jet Database Engine. Jet buffers the pages read from a .mdb file. The interval at which Jet reads pages from the .mdb file to refresh the buffer is controlled by a Pagetimeout parameter. Jet does not refresh its internal buffer from the .mdb file until the Pagetimeout interval has expired (even if you issue a Select against the table whose data is in those pages). If you do Select Jet provides the information from the buffer. It does not actually read pages in from the .mdb file until the Pagetimeout interval has expired.

If multiple instances of Jet (such as separate connections through the Access driver or separate instances of Access) are working with the same .mdb file, updates made by one task is not visible to a second task until after the second task's Pagetimeout interval has expired. For example, if the second task's Pagetimeout interval is set to 20 seconds, the updates made by the first task is not visible to the second task for 20 seconds.

In Jet 2.0, which is the version used in the ODBC Desktop Drivers version 2.0, the Jet Pagetimeout interval defaults to 0.5 second. In Jet 3.0, which is the version used in the ODBC Desktop Drivers 3.0, the default has been raised to 5 seconds. Therefore, users have noticed that updates, inserts, and deletes made in one Jet task (either the ODBC Access driver or Access itself) does not appear in another Jet task for 5 seconds.

The Pagetimeout interval can be specified in two places. The default for all instances of Jet on a computer is stored in the following Windows NT Registry subkey:

HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\3.0\Engines\Jet
In addition, the Access ODBC driver supports a distinct Pagetimeout value for each ODBC datasource. This can be specified in Advanced options when you configure a data source manually in the ODBC Administrator. The value specified in the datasource is ignored. The ODBC driver always uses the Pagetimeout value from the registry location mentioned above. If the Jet key does not exist or does not include a specified Pagetimeout value, the driver always uses the Jet default of 5 seconds.

Additional query words: odbc 3.40.2829

Keywords :
Version : WINDOWS:3.40
Platform : WINDOWS
Issue type : kbbug


Last Reviewed: December 10, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.