Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
SERIOUS FRUSTRATION - Transactions and data corruption
Message
From
06/07/1999 10:46:30
Andrzej Majlich
Vulcan sp. z o. o.
Wroclaw, Poland
 
General information
Forum:
Visual FoxPro
Category:
Troubleshooting
Miscellaneous
Thread ID:
00236192
Message ID:
00237755
Views:
20
My clients reports similiar bugs as Eric's, despite my app is written in VFP 5.0a.
After a short investigation I've traced two messages in the UT archive reporting similiar bugs (Shihchau Tai 11/11/97 and Matt Slay 13/11/98). All of them stated a problem but weren't solved (or even confirmed as a VFP x.x bug).
Common feature is:
adding records to the table with optimistic row buffering mode on with generating a new_id() as default value, in multiuser enviroment.
Hold on, hold on Eric - I see you talking: "What this has common with my header corruption problem?!". In my opinion these are different shapes of the same VFP bug.
In my app (please don't teach me how to generate an new_id and how to set a lock):

1. User 1 adds a record. The generated id is read from a buffer and used to mark all child records (view or cursor or even a table). The record exists only in RAM of station1, I suppose.

2. User 2 does the same - and has different id and different record (or VFP wants us to think it has).

3. Users issue save command (TRANSACTION, TABLEUPDATE etc.). Effect: all child records from two different parents are assigned to the one of them. Second parent record contains only zeros - even in the "id" field and has no child records.

The app2 thinks it has a unique record with unique id. In effect it has id of record from user1 (how?!!! - the record is only in memory of station1 - adding request happens a long before save attempt). But the corresponding record is added (with zeros).
It sounds like for the moment of adding second record the dbf header is corrupted (or CDX at least). And the first record exists not only in memory for a long time before users try to save (TABLEUPDATE) them both!!!
I haven't sufficient knowledge about VFP internals to solve or even explain the VFP behaviour. But I count on the most brilliant minds reading this on UT.

I hope that me, Eric, Shihchau and Matt are not experiencing collective hallucination...
_________________

*|| Andrzej [NJ].
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform