原因: 非拡張 TN3270 プロトコル

この問題が発生した理由は、非拡張 TN3270 プロトコルに、ホスト・アプリケーションの画面が完了したことを、ホストがクライアントに通知する手段が組み込まれていないことです(TN3270 は、文字指向の接続である Telnet を基礎として、画面指向のプロトコルである 3270 データ・ストリームをインプリメントしたものです)。したがって、ホストはいくつかのデータ・ブロックをクライアントに送信できず、アプリケーション画面が完了してユーザーはデータを入力できるようになったことを示すメッセージを出すこともできません。しかし、それぞれのブロックが着信するとき、このアプリケーション画面の最後のブロックであるかどうかの指示はありません。クライアントの視点から見ると、次のようなイベントが発生します。
  1. コマンドとデータのブロックが着信する。クライアントは、入力禁止標識を設定し、ブロックを処理して、新しいデータをホスト端末の指定部分に表示する。その後、クライアントは入力禁止標識をクリアし、待機する。
  2. 30 ミリ秒が経過する。
  3. 別のコマンドとデータのブロックが着信する。クライアントは、前のステップ 1 と同じようにブロックを処理する。このブロックにより、画面の別の部分が更新される。クライアントは待機する。
  4. 50 ミリ秒が経過する。
ホストが新しいホスト・アプリケーション・データ画面を完全に表示するまで、このプロセスは継続します。クライアントは、ホスト・アプリケーションの画面が完了したかどうか分からない状態で待機し続けます(詳しくは、マクロ・ランタイムによるマクロ画面の処理方法を参照してください)。

このプロセスが、人間のオペレーターにとって問題になることはありません。

ただし、このプロセスは、マクロ・ランタイムにとっては画面認識中に問題になります。マクロ・ランタイムが、画面認識中に画面が更新されるたび、 および OIA イベントが発生するたびに (繰り返し画面評価を参照)、 アプリケーション画面と一致する有効な次のマクロ画面を検索することを 思い出してください。このため、マクロ・ランタイムは画面が完全に更新される前に一致を検出する可能性があります。例えば、アプリケーション画面の行 3 に「ISPF Primary Option Menu」という文字があるときに認識が発生するように、ストリング・ディスクリプターが指示しているとします。ホストが行 3 を更新してこれらの文字を表示したときに、マクロ・ランタイムは一致が発生したと判断しますが、ホストがアプリケーション画面の残りの更新を完了したかどうかは考慮しません。