CeWriteRecordProps Does Not Work on Mounted Database Volume (322292)
The information in this article applies to:
- Microsoft Windows CE Platform Builder 3.0
This article was previously published under Q322292 SYMPTOMS
When you try to add records after you mount two or more database volumes at the same time, you may receive a disk full error message. This may occur even if enough free disk space is available.
CAUSE
Database volume compaction and growth is handled by a thread in the file system. When a second database is mounted, the compaction thread updates the list of database volumes it is monitoring, but that list does not become active until there is activity on one of the previously-mounted databases.
Example
You mount database A, and then you mount database B. When you write many records to database B, you may receive a disk full error message. This may occur because the volume file for database B is not resized by the compaction loop. Writing several records to database A triggers the compaction loop, after which compaction will discover database volume B, and additional activity in database B will also trigger compaction.
RESOLUTIONA supported fix is now available from Microsoft as Windows CE Core OS QFE . To resolve this problem immediately, search for the keyword "QFE" on the following Microsoft Web site:
The English version of this package should have the following file attributes or later:
Size File name
----------------------------------------
477,528 020520_arm720_wce30-q322292.exe
514,392 020520_ppc403_wce30-q322292.exe
514,392 020520_ppc821_wce30-q322292.exe
522,584 020520_r3000_wce30-q322292.exe
522,584 020520_r4100_wce30-q322292.exe
473,432 020520_r4111_wce30-q322292.exe
522,584 020520_r4300_wce30-q322292.exe
477,528 020520_sa1100_wce30-q322292.exe
498,008 020520_sh3_wce30-q322292.exe
498,008 020520_sh4_wce30-q322292.exe
The English version of this fix should contain the following files, with the listed file attributes or later:
Date Time Size File name Platform
-----------------------------------------------------------------
08-May-2002 16:44 439,318 Fsdbase.lib arm\ARM720\debug
08-May-2002 16:44 69,632 Fsdbase.pdb arm\ARM720\debug
08-May-2002 16:44 242,322 Fsdbase.lib arm\ARM720\retail
08-May-2002 16:44 69,632 Fsdbase.pdb arm\ARM720\retail
08-May-2002 16:39 438,834 Fsdbase.lib arm\SA1100\debug
08-May-2002 16:39 69,632 Fsdbase.pdb arm\SA1100\debug
08-May-2002 16:39 241,860 Fsdbase.lib arm\SA1100\retail
08-May-2002 16:39 69,632 Fsdbase.pdb arm\SA1100\retail
08-May-2002 16:41 547,560 Fsdbase.lib mips\R3000\debug
08-May-2002 16:41 69,632 Fsdbase.pdb mips\R3000\debug
08-May-2002 16:41 317,402 Fsdbase.lib mips\R3000\retail
08-May-2002 16:41 69,632 Fsdbase.pdb mips\R3000\retail
08-May-2002 16:41 548,188 Fsdbase.lib mips\R4100\debug
08-May-2002 16:41 69,632 Fsdbase.pdb mips\R4100\debug
08-May-2002 16:41 316,396 Fsdbase.lib mips\R4100\retail
08-May-2002 16:41 69,632 Fsdbase.pdb mips\R4100\retail
08-May-2002 16:42 399,274 Fsdbase.lib mips\R4111\debug
08-May-2002 16:42 69,632 Fsdbase.pdb mips\R4111\debug
08-May-2002 16:42 216,462 Fsdbase.lib mips\R4111\retail
08-May-2002 16:42 69,632 Fsdbase.pdb mips\R4111\retail
08-May-2002 16:42 547,964 Fsdbase.lib mips\R4300\debug
08-May-2002 16:42 69,632 Fsdbase.pdb mips\R4300\debug
08-May-2002 16:42 316,922 Fsdbase.lib mips\R4300\retail
08-May-2002 16:42 69,632 Fsdbase.pdb mips\R4300\retail
08-May-2002 16:43 508,768 Fsdbase.lib ppc\PPC403\debug
08-May-2002 16:43 69,632 Fsdbase.pdb ppc\PPC403\debug
08-May-2002 16:43 253,474 Fsdbase.lib ppc\PPC403\retail
08-May-2002 16:43 69,632 Fsdbase.pdb ppc\PPC403\retail
08-May-2002 16:43 508,768 Fsdbase.lib ppc\PPC821\debug
08-May-2002 16:43 69,632 Fsdbase.pdb ppc\PPC821\debug
08-May-2002 16:43 253,474 Fsdbase.lib ppc\PPC821\retail
08-May-2002 16:43 69,632 Fsdbase.pdb ppc\PPC821\retail
08-May-2002 16:40 458,722 Fsdbase.lib shx\SH3\debug
08-May-2002 16:40 69,632 Fsdbase.pdb shx\SH3\debug
08-May-2002 16:40 273,744 Fsdbase.lib shx\SH3\retail
08-May-2002 16:40 69,632 Fsdbase.pdb shx\SH3\retail
08-May-2002 16:40 458,910 Fsdbase.lib shx\SH4\debug
08-May-2002 16:40 69,632 Fsdbase.pdb shx\SH4\debug
08-May-2002 16:40 273,730 Fsdbase.lib shx\SH4\retail
08-May-2002 16:40 69,632 Fsdbase.pdb shx\SH4\retail
08-May-2002 16:44 451,402 Fsdbase.lib thumb\ARM720\debug
08-May-2002 16:44 69,632 Fsdbase.pdb thumb\ARM720\debug
08-May-2002 16:44 256,154 Fsdbase.lib thumb\ARM720\retail
08-May-2002 16:44 69,632 Fsdbase.pdb thumb\ARM720\retail
08-May-2002 16:39 406,134 Fsdbase.lib x86\i486\CE\debug
08-May-2002 16:39 69,632 Fsdbase.pdb x86\i486\CE\debug
08-May-2002 16:39 197,246 Fsdbase.lib x86\i486\CE\retail
08-May-2002 16:39 69,632 Fsdbase.pdb x86\i486\CE\retail WORKAROUND
To work around this problem, first mount the database volume that will grow most frequently. After you do so, mount the database volumes that grow less frequently, or are read-only.
MORE INFORMATION
The fix adds a trigger of the event that causes a cycle of the compaction loop immediately after you mount a new database volume. When the compaction loop again enters a waiting state, it is waiting on events for both the old and new database volumes.
STATUSMicrosoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
Modification Type: | Minor | Last Reviewed: | 8/18/2005 |
---|
Keywords: | kbbug kbenv kberrmsg kbfix kbQFE KB322292 |
---|
|