2

Intersystems キャッシュ ターミナル スクリプトを実行する必要があるシステムを開発しています。

通常の 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 10W"。" ;10秒ごとに1時間ドットを書く

それもタイムアウトになる場合は、コードではなく端末であることがわかります。

于 2008-10-13T18:59:00.757 に答える