Configurable EDB Volume Options (Windows CE 5.0)

Send Feedback

EDB allows you to set various options on each EDB volume. These options are set using the CEVOLUMEOPTIONS structure and the CeMountDBVolEx function.

Once a volume has been mounted, you cannot change the volume options. Therefore, the volume options are considered only once, when the volume is first mounted.

The following table shows the settings you can adjust on an EDB volume. The paragraphs that follow the table provide further information on each of the settings.

EDB volume setting Description Default value (and range)
BufferPoolSize Specifies the size, in bytes, of the buffer pool. 640 KB
AutoShrinkPercent Specifies the amount of free space (an integer from 0 to 100) to allow before automatically shrinking the database. 60

(0-100)

FlushInterval Specifies the interval (in seconds) in which the dirty pages in a volume are flushed to disk. 10 seconds

(1-1000 seconds)

MaxNotifyChanges Specifies the maximum number of changes to queue during a transaction. 1000
DefaultTimeout Specifies the number of milliseconds a transaction waits before abandoning the wait on a lock. 2000
Password Password-protects and encrypts the volume. (no password)
  • BufferPoolSize

    The buffer pool is used to cache pages and to manage transactions. The larger the buffer pool size, the better performance becomes, but the buffer pool consumes memory and so you need to adjust the BufferPoolSize setting for your specific needs.

  • AutoShrinkPercent

    The value assigned to AutoShrinkPercent represents the percentage of the database that is free space. For example, a setting of 70 causes EDB to shrink the database automatically when the free space exceeds 70% of the database size. A value of 0 disables automatic shrinking.

    Note   Automatic shrinking does not affect the OIDs of the database.

  • FlushInterval

    You can change the FlushInterval setting to determine how often EDB writes changes to disk. The shorter you set the flush interval, the more often EDB writes to disk. The longer you set the flush interval, the fewer the disk writes. However, if the application crashes before changes have been flushed, the changes are lost (but no corruption occurs).

    Note   A flush occurs only if the data in the volume has changed.

  • MaxNotifyChanges

    You use this setting to improve performance during long-running transactions. When the MaxNotifyChanges threshold is exceeded, notification clients do not receive insert, update, and delete notifications. Instead, they receive only DB_NOTIFY_VOLUME_CHANGED notifications.

    For more information on notifications, see Using Notifications with EDB.

  • DefaultTimeout

    This setting specifies the time (in milliseconds) that a transaction will wait for another transaction to release a lock. If the timeout time elapses, the transaction fails. When choosing a setting for DefaultTimeout, consider your concurrency scenario on the volume. If your application requires data to be flushed immediately, you should set DefaultTimeout to a low value or call the CeFlushDBVol function. However, flushing is a resource-intensive operation and may affect performance.

    Note   EDB flushes data only after modifications have occurred.

  • Password

    In addition to providing password protection, this setting also encrypts the data in the volume. The maximum password length is 40 characters.

    Note   EDB does not support a shared volume.

See Also

CEVOLUMEOPTIONS | CeMountDBVolEx | Using Notifications with EDB

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.