What is the guy on in the field doing that you are not? Are you using his
device for the testing?
Since it takes minutes for him to encounter the error it can't be that hard
to recreate. Follow him around for an hour or so and see how he uses the
program. It could easily be something he's doing that you aren't...

On 4/17/07, Joel Cochran <[EMAIL PROTECTED]> wrote:

The saga continues...

I was very excited by the idea that there was something wrong with the CF
Card.  The theory fits all the facts: it explains why the original
database
threw unspecified errors, it explains why now SQLite is throwing errors,
it
explains why I can't reproduce the problem in house or on my machine.  It
just seemed to explain everything, so yesterday I went out and bought a
brand-spankin' new SanDisk CF card.  I loaded it up with the database,
installed it on my tester's machine, and this morning it went back out to
the field for testing.

Within minutes, he encountered the same error.

Now I just don't believe the problem is with the card, so I feel that I am
right back at square one.  I'm really at my wits end and don't know what
to
do next.  I am going to go ahead and install the database on the device
memory instead of removable media, just to test it out, but I have no
faith
that it will change anything.  When that fails, I will send the tester out
with another device entirely, but again I expect the same results.

I'm convinced now that the problem is with the application architecture,
but
I have no idea what to look at anymore.  I've stared and fiddled with this
code so much that I'm ready to throw in the towel.  But since I'd like to
keep my job that isn't an option.  If I had hair, I'd pull it out.

Any help at all would be appreciated.

--
Joel Cochran



On 4/13/07, Michael Ruck <[EMAIL PROTECTED]> wrote:
>
> Unless things have changed recently, the following should still be valid
> for
>
> Windows Mobile/Windows CE devices: Usually these devices do not power
off,
> but
> stay in a standby state where the memory is always powered. Check if
> that's
> the
> case with your system and move as much as possible into RAM or a RAM
disk,
> if that
> feature is provided by the windows mobile kernel built for your device.
>
> If that's not possible, I'd suggest replacing CF cards with micro drives
-
> these
> are regular hard drives in a CF card format. I'm not up to date on
storage
> space,
> but should be sufficient for your needs.
>
> To test the cards I'd put them in a card reader format it and fill it
> completely
> up with zeros. When a flash card erases a byte, it sets all bits to ones
> and
> upon
> write clears those, which need to be zero. So to test all bits you
really
> need to
> zero out the entire card. This will also give the controller in the card
a
> chance
> to remap bad sectors with spares. Finally you determine the file size of
> the
> card,
> when you receive the first write error. This is (approximately) the
number
> of bytes
> the card can store (at that point in time) and falling.
>
> It seems some cards even return "read errors", when they hit a defective
> sector
> upon read. Maybe the actual error code just gets lost/mangled on the way
> up
> and the
> actual error is just a simple read error ;) I've seen reports about this
> with some
> digital cameras, which would not even let people view the pictures taken
a
> minute
> ago.
>
> Mike
>
> -----Ursprüngliche Nachricht-----
> Von: John Stanton [mailto:[EMAIL PROTECTED]
> Gesendet: Freitag, 13. April 2007 23:44
> An: sqlite-users@sqlite.org
> Betreff: Re: [sqlite] Still getting "Insertion failed because database
is
> full." errors
>
> You might find some joy in the baby disk drives such as installed in the
> original ipods.
>
> Can you substitute RAM with a battery backup if the memory card is
always
> in
> the device?
>
> Joel Cochran wrote:
> > Thanks John and Dennis,
> > At least now I have something to look at.  I will look into the CF
> > problem next.
> >
> > The database itself gets generated on a PC and then transferred to the
> > CF Card.  During testing and development, this could have been 20-30
> > times a day, constantly erasing and recreating the existing DB.  We
> > have also sent large numbers of JPGs along with the database in the
> > past (there are none now, but have been before).  So these cards have
> > been written over a lot, perhaps that is the problem.
> >
> > I think to test this, I will send the device back to the field with a
> > brand new card and see if the problem persists.  If the user can go
> > several days of normal use without the problem, then I'll be convinced
> > that it is the card.  Out of curiosity I just checked the CF cards
> > we've been using: on the development machine (which has NEVER shown
> > the error) I have a SanDisk CF Card.  On the Testing machine that is
> > having the problem, there is a PNY Technologies CF Card.  I wouldn't
> > be surprised if the SanDisk card isn't simply better than the PNY
> > card, so there is something else to consider.
> >
> > Once actual field use begins, the database will be replaced every week
> > or so, along with a fair number of images (like 100-300 a week).  The
> > purpose of the application would have every record in the database
> > being updated and some new ones created.  And it would be that way
> > week in and week out, essentially forever.  We may eventually port it
> > over to very small Tablet PCs, but right now it is all Windows Mobile
> > 5.  This is one of the reasons I went with SQLite, so that down the
> > road I wouldn;t have to reinvent the database piece of the software
> > for a different platform.
> >
> > Given all this, I will definitely look into the link Dennis sent.  The
> > company is not going to be happy replacing CF cards all the time, so
> > if that can extend the wear then it will be welcome.
> >
> > Thanks a lot,
> >
> > Joel
> >
> > On 4/13/07, Dennis Cote <[EMAIL PROTECTED]> wrote:
> >
> >>
> >> Joel Cochran wrote:
> >> >
> >> > Or do you mean over the course of the lifetime of a CF card it can
> >> > only be used so much?  That might apply to this scenario, these
> >> > cards have been written over continuously for the last 6 months.
> >> >
> >> Joel,
> >>
> >> Yes, that is exactly the problem. You should look at using a flash
> >> file system such as http://sourceware.org/jffs2/ that uses "wear
> leveling"
> >> algorithms to spread the writes over all the flash devices blocks if
> >> you are writing often.
> >>
> >> HTH
> >> Dennis Cote
> >>
> >>
>

Reply via email to