Программирование свинки на время ожидания
Я надеюсь, что вы можете помочь мне или направить меня к тому, кто может помочь мне. Я программирую на 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 ..........
Но ни одна из этих проверок не произойдет, если я перестану. Если я не перерываю все работает отлично.
1 ответ
По счастливой случайности я оказался на этом форуме сегодня. Так что, возможно, на этот вопрос уже дан ответ. Во всяком случае, здесь идет:
Ответ на этот вопрос заключается в том, что может быть несколько причин, по которым от удаленного компьютера не получен ответ. Если для передачи ответа требуется слишком много времени, должно работать следующее:
Чтение переменной:15 If '$Test Перейти к ErrorHandler
Однако когда канал связи между двумя системами закрывается, это рассматривается как условие ошибки, поэтому в этом случае должно работать следующее:
Установить $ETrap="Перейти к ErrorHandler"
Чтение переменной Set $ ETrap=""; Обратите внимание, что нам не нужен тайм-аут, чтобы справиться с этим...
Надеюсь это поможет