我们正在HP上运行OpenEdge 10.2b
我们在进度和UNIX之间遇到了一些关于文件可用性的奇怪行为。情况是这样的(请参阅更新2中的完整代码)。
我们在FTP流中发现了错误,即使文件是由程序B创建的,但是这个文件是由程序B创建的。这个错误是断断续续地发生的,而且它总是最后的X个文件数(例如,如果有15个文件要发送,而4个文件由于“主机文件找不到”而失败,它总是列表中的最后4个文件)。通常是3-6个没有发送的文件,它大约每两周发生一次,但有些星期有多次发生(这是一项日常工作)。
有人知道这是怎么回事吗?
目前,我已经将程序B转换为使用UNIX代码,以防出现文件锁定问题。
更新:创建文件的UNIX代码没有帮助,因为问题再次发生在今天
这可能是执行命令的问题吗?当程序C中的ftp流仍在执行时,进程是否正在运行OS-删除程序A(这对我来说是没有意义的,但我在这里掌握)
更新2:完整的代码,我得到编辑错误,不会让我张贴我的代码。所以我把它贴在这里:https://gist.github.com/anonymous/49c84866d2f204f1cf05048abe3008ba https://justpaste.it/1a59k
发布于 2018-04-10 11:48:23
在阅读了一些有关这个主题的文档并进行了一些测试之后,FTP流似乎只有在我关闭输出之后才会启动。根据进度文档,一旦我关闭输出,系统暂停1秒,然后继续运行程序。
这意味着,在我的情况下,FTP将启动,并取决于连接时间和上传速度,可能仍在上传文件的过程中,而我的进步程序试图删除它们。
在我的例子中,解决方案是将delete移到FTP脚本中,但是对于任何可能阅读此脚本的人,请记住以下几点:
如果在这两个流中存在冲突的访问/逻辑的可能性,则可能会导致间歇性问题。
https://stackoverflow.com/questions/45697433
复制相似问题