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.

RESOLUTION

A 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.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MinorLast Reviewed:8/18/2005
Keywords:kbbug kbenv kberrmsg kbfix kbQFE KB322292