file created by PROGRESS OUTPUT not available to UNIX

Posted by jamali on 14-Aug-2017 12:35

We have been experiencing some strange behaviour regarding file availability between PROGRESS and UNIX. The situation is this:
Program A calls program B (in a loop, once per file, for 10-15 files).
Program B creates a file using code similar to this:

OUTPUT STREAM ST-strm TO VALUE(filename).
PUT STREAM ST-strm UNFORMATTED CH-first-line SKIP.
OUTPUT STREAM ST-strm CLOSE.
OS-APPEND VALUE(CH-from-file) VALUE(CH-to-file).
END OF PROGRAM B

Program A then calls program C to FTP the file to a certain location:
OUTPUT STREAM ST-ftp THROUGH VALUE("ftp -v -n > " + CH-ftp-log-file + " 2>" + CH-ftp-error-file).
[Connection data here]
[loop over file list of files]
PUT STREAM ST-ftp  UNFORMATTED "put " CH-host-file " " CH-server-file SKIP.
END OF PROGRAM C

Program A then runs the code to cleanup:
if no errors returned from program C (it checks the CH-ftp-error-log) then:
[loop over file list of files]
OS-DELETE VALUE(ENTRY(CH-host-file)).

We are getting errors in the FTP stream where the CH-host-file is not found, even though the file was just created by program B. This error occurs intermittently, and it is always the last X number of files (for example, if there are fifteen files to be sent, and 4 files fail due to "host file not found" it will always be the last 4 in the list). It is usually 3-6 files that are not sent, and it happens about once every two weeks, but some weeks have multiple occurrences (this is a daily job).

We are running OpenEdge 10.2b on an HP UNIX

Anyone else experience this? Any idea why this is happening intermittently?

For the time being, I have switched program B to use UNIX code, in case this is a file locking issue. 

All Replies

This thread is closed