2

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

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

脚本就像这样运行:

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

1) 有谁知道是什么可能导致 Interystems Caché 在运行过程中断开会话(会话也不是空闲的。它会定期向控制台输出状态消息)?

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

谢谢,

路易斯·费尔南多

4

2 回答 2

2

过了一会儿,我终于发现了会话被终止的原因。您必须在最后等待某些东西,否则脚本就会终止。但是您必须确保您等待的字符串在代码完成之前不会被打印出来。

因此,我刚刚将程序更改为仅在末尾打印“操作完成”,然后输入以下行:

 waitfor "Operation finished"
terminate

现在程序不会中断。

干杯,

路易斯

于 2008-11-19T15:45:23.627 回答
1

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

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

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

FI=1:1:360 H 10 W "." ;每10秒写一个点,持续1小时

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

于 2008-10-13T18:59:00.757 回答