Recently, we've had a couple instances where the EXTRACT on a channel *seems* to be failing to prevent other processes from accessing the record, and I'm trying to figure out if that is really the case, or why. I'm not certain that is the problem, but it's really the only logical explanation I can find.
We have an order update process that EXTRACTs the order record and writes the record to a different file, but never touches the extracted channel again until it REMOVEs the record when done. The process hasn't changed for years, and has never been a problem. Recently, a couple of the records were duplicated, which (seemingly) could only happen if two processes had extracted the record at the same time.
The two processes that run are both using the same FID of "IO", but I don't think that should matter. There servers are Linux (RedHat) with multiple CPU's, and are fairly new and fast servers, so the processing time is milliseconds when this occurs. I'm wondering if there is some write caching with the OS or hardware that is affecting this, but don't know how to check that.
In searching these forums and the documentation, I've seen suggestions of using "TIM=0" on the extract, and see that there is a FLUSH command to flush the write buffer to disk. I don't know if either of these would be useful, but would appreciate any feedback or suggestions!