【问题标题】:How to prevent <session disconnected> errors while running Intersystems Caché terminal scripts?如何在运行 Intersystems Caché 终端脚本时防止 <session disconnected> 错误?
【发布时间】:2008-10-13 18:19:08
【问题描述】:

我正在开发一个需要执行 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) 关于如何解决它的任何想法?

谢谢,

路易斯·费尔南多

【问题讨论】:

    标签: console terminal intersystems-cache disconnected-session


    【解决方案1】:

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

    所以,我只是将程序更改为仅在末尾打印“操作完成”,然后放入以下行:

     waitfor "Operation finished"
    terminate
    

    现在程序不会中断。

    干杯,

    路易斯

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-06-15
        • 1970-01-01
        • 2010-11-19
        • 1970-01-01
        • 1970-01-01
        • 2017-05-07
        • 1970-01-01
        • 2013-07-21
        • 1970-01-01
        相关资源
        最近更新 更多