ShawnStanford
Programmer
A pirate walks up to a bar and says, "Arrr, I'll be havin' a beer." The bartender pours him a beer and sets it down, then notices that the pirate has a steering wheel sticking out of the fly of his pants. "Hey, buddy," the bartender says. "Does that steering wheel bother you at all?" The pirate replies, "Arrr, it be drivin' me nuts."
And this problem is driving me nuts...
Old code, not mine (written by a foreign contractor), so I take no responsibility for its current condition. That being said: I have a program that calls a program, passing a transaction record. The called program attempts to match that transaction up to a VSAM file record before passing back. In the course of this, the called program calls another program that does the VSAM file handling (start, read) via an AIX.
If the first called program isn't happy with the VSAM record, he'll ask for another from the second called program. This goes on until the second called program reaches the end of the file and returns a flag instead of a record. At that point the first called program gives up.
Here's the problem: subsequent calls to this chain don't work. The first called program calls the second called program and the second called program does a 'start' and then a series of 'read's. It gets zero status codes from VSAM for all operations, but no data is returned on the reads: the record is the same as it was when doing the start. Obviously, this is causing the first called program to puke violently.
I've tried everything I can think of to get the file back on track: doing a start with low values before the keyed start, doing an open and close after hitting end of file, carefully manipulating the reads to stop any reads past end of file. Nothing seems to help.
Anybody? Anybody? Bueller?
And this problem is driving me nuts...
Old code, not mine (written by a foreign contractor), so I take no responsibility for its current condition. That being said: I have a program that calls a program, passing a transaction record. The called program attempts to match that transaction up to a VSAM file record before passing back. In the course of this, the called program calls another program that does the VSAM file handling (start, read) via an AIX.
If the first called program isn't happy with the VSAM record, he'll ask for another from the second called program. This goes on until the second called program reaches the end of the file and returns a flag instead of a record. At that point the first called program gives up.
Here's the problem: subsequent calls to this chain don't work. The first called program calls the second called program and the second called program does a 'start' and then a series of 'read's. It gets zero status codes from VSAM for all operations, but no data is returned on the reads: the record is the same as it was when doing the start. Obviously, this is causing the first called program to puke violently.
I've tried everything I can think of to get the file back on track: doing a start with low values before the keyed start, doing an open and close after hitting end of file, carefully manipulating the reads to stop any reads past end of file. Nothing seems to help.
Anybody? Anybody? Bueller?