Olá Leonardo,
O seu problema é tempo de processamento que sempre irá gerar timeout.
Como a escrita é do tipo texto, você pode tentar realizar o envio de dados
direto, ao invés de buffer.
>>> response.getWriter().write("dados"); <<<
Desta maneira o servidor vai servindo o navegador que não irá dar timeout.
Outra opção seria a criação de um mecanismo de geração de relatório, em que
o usuário seria informado do progresso, com refreshs na página, e o
relatório somente seria enviado ao final do processamento. Mas esta opção já
é um pouco mais complicada, você deve achar alguns exemplos na internet.
Belezs!!
Claudio Weiler
http://claudioweiler.blogspot.com/
-----Mensagem original-----
De: java-br@yahoogrupos.com.br [mailto:java-br@yahoogrupos.com.br] Em nome
de Leonardo Nardi
Enviada em: quarta-feira, 6 de julho de 2011 16:11
Para: java-br
Assunto: [java-br] Otimizar geração de arquivo CSV
Olá a todos do grupo!
Estou enfrentando um problema no momento em que estou gerando um arquivo
CSV. O que acontece é que, para uma determinada consulta, há o retorno de
11353 registros do BD. Isto está demorando muito no instante da chamada do
método que varre a lista com estes registros(11353) e vai gerando o arquivo.
No final dá timeout, dando erro 404 na tela e não gera o arquivo. Para
gerá-lo estou criando o seguinte objeto:
*RegistroBean registroBean;*
*PrintWriter printWriter = new PrintWriter(response.getWriter(), false);*
*BufferedWriter bw = new BufferedWriter(printWriter);*
*
for(Iterator it = listaX.iterator(); it.hasNext();) {
registroBean = (RegistroBean) it.next();
*
bw.write("Dado 1");
bw.write(';');
bw.write("Dado 2");
bw.write(';');
Gostaria de saber o que posso fazer para otimizá-lo?
Desde já, antecipadamente, agradeço a atenção dispensada.
Leonardo Nardi
"Quando plantardes para um ano, semeai grão. Quando plantardes para uma
década, plantai árvores. Quando plantardes para uma vida, educai o homem. Se
derdes ao homem um peixe, ele se alimentará uma vez. Se lhe ensinardes a
pescar, ele se alimentará a vida inteira."
Autor: Kuan Tzu - III Século a.c.
"A ciência sem religião é aleijada;
a religião sem ciência é cega."
Autor: Albert Einstein
--------
A Visão do TRE-PR é ser reconhecido como instituição pública de excelência, indispensável para o aperfeiçoamento da democracia.
Todos os eleitores de Curitiba deverão fazer seu recadastramento biométrico. Maiores informações em nosso site: www.tre-pr.jus.br
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br







0 comentários:
Postar um comentário