Я разрабатываю систему, которая должна выполнять сценарии терминала Intersystems Cache Terminal.
Когда я запускаю подпрограмму в обычном терминале Caché или telnet-терминале, Cache выполняет ее до конца без каких-либо проблем. Но когда я пытаюсь запустить ту же процедуру, но на этот раз вызывая ее в сценарии терминала Caché, Caché через некоторое время отключает сеанс. В документации вообще нет упоминания о настройке "тайм-аута" или о чем-либо, имеющем отношение к "" сообщениям, которые я получаю.
Скрипт запускается так:
Cterm.exe /console=cn_iptcp:192.168.2.13[23] c:\test.s
1) Кто-нибудь знает, что может быть причиной отключения Interystems Caché сеанса в середине выполнения (сеанс тоже не простаивает. Он регулярно выводит сообщения о состоянии на консоль)?
2) Есть идеи, как это решить?
Спасибо,
Луис Фернандо
Есть шанс, что это не тайм-аут, а какая-то другая проблема? Возможно, ошибка времени выполнения, которая не фиксируется / не регистрируется?
Основное различие между запуском из интерактивной консоли и сценарием заключается в том, что при интерактивном запуске вы находитесь в режиме программиста, а в сценарии вы находитесь в пользовательском режиме. Я не могу придумать какую-либо причину, по которой это имеет значение, но, возможно, ваш код чувствителен к этому.
Вот что можно попробовать: напишите очень простой сценарий, который ничего не делает, кроме того, что время от времени записывает символ. Может быть, примерно так:
F I = 1: 1: 360 H 10 Вт "." ; Ставьте точку каждые 10 секунд в течение 1 часа
Если и у этого есть тайм-аут, значит, вы знаете, что это терминал, а не ваш код.
Через некоторое время я наконец обнаружил, почему сеанс был прерван. Вы должны дождаться чего-то в конце, иначе сценарий просто завершится. Но вы должны быть уверены, что ожидаемая строка не будет напечатана до завершения кода.
Итак, я просто изменил программу так, чтобы она выводила «Операция завершена» только в конце, а затем поставила строку:
waitfor "Operation finished"
terminate
Теперь программа не прерывается.
Ваше здоровье,
Луис