Synopsis: The downside of Microsoft's attempt to provide data persistence
If you’ve read my review of the Motorola MC70, you know that my one complaint was that it seemed to hang from time to time, but on further investigation, we discovered that this doesn’t have to do with the MC70, it has to do with the operating system. You see Microsoft is trying to solve the data persistence problem, and their method makes the device (any WM5 device) randomly slow down, speed up, and seem to hang.
With earlier versions of Windows CE or PocketPC, losing power or performing a hard re-boot meant losing anything stored in RAM, like all of today’s orders, for instance. We overcome the problem by writing every order, (every line item, actually) to ROM as soon as it is committed. That way you never lose any of your data. With any of our Mobiquity™ route applications if the battery dies in the middle of creating an order, you won’t lose any of the line items you’ve already entered.
Of course, not all software is so conscientious. Microsoft decided to provide data persistence as part of WM5, which we applaud. No good intention comes without unintended consequences, however. In order to provide persistence, WM5 periodically (and without notice) performs a compaction thread. In layman’s terms, it writes everything in RAM to ROM storage (it’s actually more than that, and if you want to read more about it go here). Unfortunately, the user sees this as the program slowing down without explanation. Before discovering this, we thought the unit was hanging (even worse, our customers thought so). Not so. Just wait a few minutes, and the operating system finishes what it is doing and you can continue on. As software developers, we hate this, since it tends to make it look like our application is having problems. We’re not the only ones upset about this issue. There are many discussion groups devoted to developers airing their feelings about this problem. Hopefully if enough people complain to Microsoft about the issue there will be a patch coming to fix it, or maybe Windows Mobile 6 will deal with it a little more elegantly.
Brett Birdsong
Sr. Editor