【问题标题】:Mumps programming checking for timeout腮腺炎编程检查超时
【发布时间】:2014-03-23 09:31:48
【问题描述】:

我希望您能帮助我或将我引向可以帮助我的人。我在 M(UMPS) 中编程,但遇到了问题。在程序中,我正在等待来自大型机的响应,我读取 (R x:15) 我知道,如果我没有得到答案,15 秒后我将停止等待答案。我检查了我的 $T,如果那里什么都没有,或者它等于零,我想停止程序。

这有时可行,但大多数情况下程序会在检查 $T 之前中止,我什至没有机会看到 x 中的内容,我怎样才能在它中止之前捕获它。我查看了控制台日志和任何地方,但没有看到任何错误。我看到的唯一错误是当我查看不成功的任务时它说 err (getr+9 这是我阅读的行。

R x:15   (IT STOPS HERE AND ABORTS if I run out of time)

我试过了

G:'$T END  
OR
I '$T G END
OR
S TEST=$T
IF TEST=0 ..........

但是如果我超时,这些检查都不会发生。如果我不超时,一切都会很好。

【问题讨论】:

  • 这个问题可能更适合 StackOverflow。我建议把这个问题移到那里。
  • 您使用的是哪个版本的 MUMPS(尽可能具体)。
  • 另外,你从什么设备上读取?一个港口?您是否尝试过设置错误陷阱并查看错误?

标签: programming-languages error-detection mumps


【解决方案1】:

我今天偶然来到了这个论坛。 所以,也许这个问题已经回答了。无论如何,这里是:

这个问题的答案是没有收到来自远程机器的响应可能有多种原因。 当响应的传输时间太长时,以下应该起作用:

读取变量:15 If '$Test Goto ErrorHandler

但是,当两个系统之间的通信通道关闭时,这将被视为错误情况,因此在这种情况下,以下应该起作用:

设置 $ETrap="Goto ErrorHandler"

读取变量 Set $ETrap="" ;请注意,我们不需要超时来处理这个...

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 2011-06-27
    相关资源
    最近更新 更多