マルチパートデータ(xls)を生成するために使用されるjspページがあります。 このJSPページではデータが取得されませんが、ログにデータを印刷しようとすると、すべてのレコードが取得されたことがわかります。リクエストタイムアウト、jspページのレンダリング中に接続がリセットされたエラー
どのようにリクエストが処理されますか。
Request ---(goes to)---> Webservlet ---(delegate to handler)---> Java Class(ReportHandler.java)
今、私たちは、データベースからデータを取得する責任があるReportHandler.runReport()
のメソッドを呼び出します。このメソッドは、レコードをフェッチするのに時間がかかります(ほぼ12分)。 結果セットでデータを取得したら、jspページに渡し、結果セットを使用してレポートを生成します。
1> while(rs.next()) {system.out.println("<tr><td>"+partnerId+"</td></tr>")}
私はPARTNERIDを見ることができます - それは、コンソールにプリントなっています。 しかし、JSPはブラウザ上でデータをレンダリングしていません。 12〜14分後、ブラウザにエラーメッセージ(ステータスコードなし)が表示され、要求がタイムアウトして接続がリセットされました。
私の質問は、サーバーで接続がタイムアウトした後、データがコンソールに表示されず、接続がクライアント側でタイムアウトしてから修正する方法で、タイムアウトを修正しようとしました。 network.http.connection.timeout
プロパティをlongに設定しても効果はありません。
2> I am using out.print(<table><tr><td>"+rs.getInt(partnerId)+"</td></tr></table>")
レポートを生成するが、data(out.flush())
が強制的にフラッシュですが、それは、JSP上の任意のデータを生成していません。 上記のSystem.out.println()
がwhileループでレコードを出力しているので、私はjspページでデータを取得していますがレンダリングしていないと確信しています。
私は解決策を探していますが、それを解決する手がかりを得られなかったので、長い間助けてください。