1

サーブレットにリクエストを送信するアプレットがあります。サーブレットでは、PrintWriterを使用して応答をアプレットに書き戻します。

out.println("Field1|Field2|Field3|Field4|Field5......|Field10");

約15000のレコードがあるため、out.println()は約15000回実行されます。

問題は、アプレットがサーブレットから応答を取得するときに、レコードの処理に約15分かかることです。System.out.printlnを配置すると、処理は約5000で一時停止され、15分後に処理が続行されて完了します。

誰かが同様の問題に直面しましたか?サーブレットの実行には約2秒かかります。したがって、ブラウザ/アプレットが遅すぎてレコードを処理できないようです。

これはアプレットのコードです。最初のSystem.outで停止する場合もあれば、2番目のSystem.outで停止する場合もあります。

while ((line = in.readLine()) != null) {
    System.out.println("Reading from stream....");
    datavector.add(line);
    System.out.println("Vector size="+datavector.size()+"  Line added="+line);
}

どんなアイデアでもありがたいです。

ありがとう。

4

2 に答える 2

0

「処理が約5000レコード一時停止され、15後に自動的に開始される」に関する質問ですか?または、アプレットの処理が遅い

コードスニペットをコード投稿すると便利ですか?

于 2010-06-10T19:51:23.047 に答える
0

ループSystem.out.println()から行を削除します。whileあなたはサルドごとにSystem.out.println()30,000回電話をかけています。それは多くのオーバーヘッドを追加します。必要に応じて、ループの前と後ろに1つずつ配置しwhileます。

于 2010-06-10T21:39:29.247 に答える