2

我正在开发一个需要执行Intersystems缓存终端脚本的系统。如何在运行IntersystemsCaché终端脚本时防止<session disconnected>错误?

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

脚本运行就像这样:

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

1)有谁知道什么可能导致Interystems缓存来断开在运行中间的会话(会话没有闲着它。定期向控制台输出状态消息)?

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

感谢,

路易斯·费尔南多·

回答

1

有机会它不超时,但一些其他的问题吗?可能是没有被捕获/记录的运行时错误?

从交互式控制台和脚本运行之间的主要区别是,当你运行交互您在编程模式下的时候,但在你的脚本在用户模式下。我想不出任何原因,为什么这很重要,但可能你的代码对此很敏感。

下面是一些尝试:写一个非常简单的脚本,什么也不做,除了时不时写出来的人物。也许是这样的:

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

如果得到超时设置过,那么你知道它的终端,而不是你的代码。

2

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

所以,我只是改变了程序打印“操作完成”仅在最后,然后把线:

waitfor "Operation finished" 
terminate 

现在的程序不被打断。

干杯,

路易斯

相关问题