遗留J2EE应用程序详细信息:
用户的行动:
以下是在操作servlet中执行的代码片段:
public class DownloadFileEvent extends ActionGeneric {
java.text.SimpleDateFormat df_file = new java.text.SimpleDateFormat("yyyyMMdd_HHmmss");
public void run(HttpServletRequest request, HttpServletResponse response) throws Exception {
String errormsg = null;
StringBuffer LineBuffer = null;
// read parameters.
String _v = request.getParameter("view");
// Start traitment.
try {
// get sessions.
ServletOutputStream out = response.getOutputStream();
// Create title columns.
response.setContentType("application/csv");
response.setHeader("Content-Disposition", "inline; filename = " + getFilename(_v));
LineBuffer = new StringBuffer();
//Get the string response from some business method
//String v_wrk = getOutflow(request, _v).toString();
LineBuffer.append(v_wrk);
LineBuffer.append("\r\n");
out.print(LineBuffer.toString());
out.flush();
// end.
}// fin try
catch (Exception e) {
errormsg = e.getMessage();
} finally {
// to do.
}
}// end run.
}// fin class
问题:
由于“下载”需要一些时间,因此用户会移至其他屏幕
当他回来时,'打开/保存/另存为'提示已经有一段时间了。现在,当用户保存/打开文件而不是900行时,行数少于100行
令人惊讶的是,如果立即执行打开/保存,则会下载所有行
在catch区块中,我已经放了一个日志,但在任何地方都没有例外
问题不在我的本地计算机(Windows,WAS 7)或SYSTEM测试环境(Linux,WAS 8.5)上模拟,而是在ACCEPTANCE(WAS 7,Linux)和PRODUCTION(WAS 7,Linux)上进行模拟。 )。 ACCEPTANCE和PRODUCTION有负载均衡器,Web服务器设置但不在系统或本地
我该怎么办?
答案 0 :(得分:0)
在Web服务器中尝试使用高SendBufferSize。如果客户端在对话框启动时没有读取,这将阻止Web服务器看到写入最终阻塞然后超时。