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 

現在的程序不被打斷。

乾杯,

路易斯

相關問題