You can manually disable the truncate functionality from the build.
Do that by opening the db-X.X.X/build_wince/db_config.h
file, and change the line that reads
#define HAVE_FTRUCATE 1
to read
#undef HAVE_FTRUNCATE
Making this change disables DB->compact() for btree databases.
The Windows CE/Mobile platform does not have a concept of a working directory. This means that the DB_ARCH_REMOVE and DB_ARCH_ABS flags do not work properly within Windows CE, since they rely on having a working directory.
To work around this issue, you can call log_archive with the DB_ARCH_LOG flag, the list of returned file handles will not contain absolute paths. Your application can take this list of files, construct absolute paths, and delete the files.
Yes.
Berkeley DB relies on a subset of the Windows API, and some standard C library APIs. These are provided by Windows CE. Windows Mobile is built "on top" of Windows CE.
The default behavior of Berkeley DB is to use memory mapped files in the environment. It seems that Windows CE does not allow memory mapped files to be created on flash storage.
There are two workarounds: