如何在运行IntersystemsCaché终端脚本时阻止<session disconnected =“”>错误?</session>

时间:2008-10-13 18:19:08

标签: console terminal intersystems-cache disconnected-session

我正在开发一个需要执行Intersystems Cache Terminal Scripts的系统。

当我在常规Caché终端或telnet终端内运行例程时,Cache执行例程直到结束没有问题。但是当我尝试运行相同的例程,但这次在Caché终端脚本中调用例程时,Caché会在一段时间后断开会话。在“超时”设置的文档中没有任何提及,或者我正在收到的消息中有任何内容。

脚本运行如下:

Cterm.exe /console=cn_iptcp:192.168.2.13[23] c:\test.s

1)是否有人知道可能导致InterystemsCaché在运行过程中断开会话的原因(会话也没有空闲。它会定期向控制台输出状态消息)?

2)有关如何解决它的任何想法?

谢谢,

路易斯·费尔南多

2 个答案:

答案 0 :(得分:2)

过了一会儿,我终于发现为什么会话被终止了。您必须在最后等待某事或脚本才会终止。但是你必须确保你所等待的字符串不会在代码完成之前打印出来。

所以,我刚刚更改了程序,只在最后打印“Operation finished”,然后把这行:

 waitfor "Operation finished"
terminate

现在程序不会中断。

干杯,

路易斯

答案 1 :(得分:1)

是否有可能不是超时,还有其他一些问题?可能是没有被捕获/记录的运行时错误?

从交互式控制台运行和作为脚本之间的主要区别在于,当您以交互方式运行时,您处于程序员模式,但在脚本中您处于用户模式。我想不出任何理由,为什么这很重要,但可能你的代码对此很敏感。

这里有一些尝试:编写一个非常简单的脚本,除了随时写出一个字符外什么都不做。也许是这样的:

F I = 1:1:360 H 10 W“。” ;每隔10秒写一个点1小时

如果它也超时,那么你知道它是终端,而不是你的代码。