由 OpenEdge 创建的文件"OUTPUT" UNIX for FTP 不可用



我们在HP UNIX上运行OpenEdge 10.2b

我们一直在经历一些关于PROGRESS和UNIX之间文件可用性的奇怪行为。情况是这样的(请参阅下面的更新 #2 中的完整代码(。

我们在 FTP 流中收到错误,其中找不到 CH 主机文件,即使该文件刚刚由程序 B 创建。此错误间歇性发生,并且始终是最后 X 个文件数(例如,如果有 15 个文件要发送,并且 4 个文件由于"找不到主机文件"而失败,则始终是列表中的最后 4 个(。通常是 3-6 个文件没有发送,大约每两周发生一次,但有些星期会多次发生(这是日常工作(。

有谁知道发生了什么?

目前,我已经将程序B切换为使用UNIX代码,以防这是文件锁定问题。

更新: 创建文件的 UNIX 代码没有帮助,因为问题今天再次出现

这可能是执行顺序问题吗?当程序 C 中的流 ftp 仍在执行时,可以从程序 A 运行 OS-DELETE 吗(这对我来说没有意义,但我在这里抓住(

更新#2: 完整代码 我收到编辑错误,不允许我发布我的代码。所以我把它贴在这里: https://gist.github.com/anonymous/49c84866d2f204f1cf05048abe3008ba https://justpaste.it/1a59k

在阅读了有关该主题的一些文档并进行了一些测试后,FTP流似乎仅在我关闭输出后才会启动。根据进度文档,一旦我关闭 OUTPUT,系统就会暂停 1 秒钟,然后继续运行程序。

这意味着,就我而言,FTP将启动,并且根据连接时间和上传速度,当我的进度程序尝试删除文件时,可能仍在上传文件。

在我的情况下,解决方案是将删除移动到FTP脚本中,但对于任何可能阅读本文的人,请记住以下几点:

  1. 中的任何 UNIX(或操作系统(命令仅在流关闭后执行。
  2. 输出
  3. 流完全独立于进度应用程序运行(进度在输出关闭后暂停 1 秒,然后继续(

如果两个流中的访问/逻辑发生冲突,则可能会导致间歇性问题。

最新更新