由 OpenEdge "OUTPUT" 创建的文件不适用于 FTP 的 UNIX
File created by OpenEdge "OUTPUT" not available to UNIX for FTP
我们是 运行 HP UNIX 上的 OpenEdge 10.2b
我们在 PROGRESS 和 UNIX 之间遇到了一些关于文件可用性的奇怪行为。情况是这样的(请参阅下面更新 #2 中的完整代码)。
我们在 FTP 流中遇到错误,其中找不到 CH-host-file,即使该文件是由程序 B 刚刚创建的。此错误间歇性出现,并且始终是最后一个X 个文件(例如,如果有 15 个文件要发送,并且 4 个文件由于 "host file not found" 而失败,它将始终是列表中的最后 4 个)。一般是3-6个文件没有发送,大约每两周发生一次,但有些周有多次发生(这是每天的工作)。
有谁知道发生了什么事吗?
目前,我已将程序 B 切换为使用 UNIX 代码,以防这是文件锁定问题。
更新:
用于创建文件的 UNIX 代码没有帮助,因为今天再次出现该问题
可能是执行顺序问题?当程序 C 中的流 ftp 仍在执行时,进度可以是 运行 来自程序 A 的 OS-DELETE(这对我来说没有意义,但我在这里掌握)
更新 #2:
完整代码
我收到编辑错误,不允许我 post 我的代码。所以我 post 在这里编辑了它:
https://gist.github.com/anonymous/49c84866d2f204f1cf05048abe3008ba
https://justpaste.it/1a59k
阅读了有关该主题的一些文档并进行了一些测试后,似乎 FTP 流仅在我关闭输出后才开始。根据进度文档,一旦我关闭 OUTPUT,系统会暂停 1 秒,然后继续 运行 程序。
这意味着,在我的情况下,FTP 将启动,并且取决于连接时间和上传速度,当我的 Progress 程序试图删除它们时,它可能仍在上传文件的过程中。
我的解决方案是将删除移动到 FTP 脚本中,但对于可能阅读此内容的任何人,请记住以下几点:
- 流中的任何 UNIX(或 OS)命令仅在流关闭后执行。
- OUTPUT STREAM 完全独立于您的进度应用程序运行(进度在 OUTPUT CLOSE 后暂停 1 秒,然后继续)
如果两个流中有任何冲突 access/logic,可能会导致间歇性问题。
我们是 运行 HP UNIX 上的 OpenEdge 10.2b
我们在 PROGRESS 和 UNIX 之间遇到了一些关于文件可用性的奇怪行为。情况是这样的(请参阅下面更新 #2 中的完整代码)。
我们在 FTP 流中遇到错误,其中找不到 CH-host-file,即使该文件是由程序 B 刚刚创建的。此错误间歇性出现,并且始终是最后一个X 个文件(例如,如果有 15 个文件要发送,并且 4 个文件由于 "host file not found" 而失败,它将始终是列表中的最后 4 个)。一般是3-6个文件没有发送,大约每两周发生一次,但有些周有多次发生(这是每天的工作)。
有谁知道发生了什么事吗?
目前,我已将程序 B 切换为使用 UNIX 代码,以防这是文件锁定问题。
更新: 用于创建文件的 UNIX 代码没有帮助,因为今天再次出现该问题
可能是执行顺序问题?当程序 C 中的流 ftp 仍在执行时,进度可以是 运行 来自程序 A 的 OS-DELETE(这对我来说没有意义,但我在这里掌握)
更新 #2: 完整代码 我收到编辑错误,不允许我 post 我的代码。所以我 post 在这里编辑了它: https://gist.github.com/anonymous/49c84866d2f204f1cf05048abe3008ba https://justpaste.it/1a59k
阅读了有关该主题的一些文档并进行了一些测试后,似乎 FTP 流仅在我关闭输出后才开始。根据进度文档,一旦我关闭 OUTPUT,系统会暂停 1 秒,然后继续 运行 程序。
这意味着,在我的情况下,FTP 将启动,并且取决于连接时间和上传速度,当我的 Progress 程序试图删除它们时,它可能仍在上传文件的过程中。
我的解决方案是将删除移动到 FTP 脚本中,但对于可能阅读此内容的任何人,请记住以下几点:
- 流中的任何 UNIX(或 OS)命令仅在流关闭后执行。
- OUTPUT STREAM 完全独立于您的进度应用程序运行(进度在 OUTPUT CLOSE 后暂停 1 秒,然后继续)
如果两个流中有任何冲突 access/logic,可能会导致间歇性问题。