Программирование свинки на время ожидания

Я надеюсь, что вы можете помочь мне или направить меня к тому, кто может помочь мне. Я программирую на 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=""; Обратите внимание, что нам не нужен тайм-аут, чтобы справиться с этим...

Надеюсь это поможет

Другие вопросы по тегам