Caros amigos,
preciso da ajuda de vocês…
por se tratar de uma grande instituição financeira, tenho as seguintes limitações impostas pela arquitetura da empresa:
- não posso manipular threads no servidor;
- não posso usar uma procedure no banco para controlar um rotina;
- não posso gravar arquivos em disco;
- não posso usar libs que não estejam homologadas pelo setor de arquitetura do cliente, isso inclui o dwr, que eu acho que resolveria em parte o meu problema;
bom, chega de enrolação e vamos ao problema:
tenho que importar um planilha excel de 86 colunas e até mais de 10.000 linhas, exibir essa planilha na tela (um grid montado na mão com dois for each em jstl), com os possiveis erros de validação, para que o cliente altere na tela mesmo antes de mandar gravar no banco…
Quem já trabalhou com o POI deve saber que ele tem sérios problemas de performance. Hoje eu importo uma planilha de 20 linhas com o POI no mesmo tempo que eu importava uma planilha similar, porém com 400 linhas com JExcel (10 segundos - incluindo validação… cada campo tem uma diferente)…
o servidor tem um time-out de 30 segundos… se com 20 linhas está em 10 segundos, imaginem com 400, ou 10.000.
Gostaria da ajuda de vocês com idéias, soluções ou até mesmo rezas brabas (RSRS) que me ajudem a resolver esse problema (abacaxi)…
a minha idéia inicial era:
de alguma forma dividir o arquivo em várias partes, e processá-las uma a uma, e devolvendo essas partes para o cliente na mesma ordem que estavam no excel, carregar essas partes na tela conforme forem sendo processadas… acredito que com dwr eu conseguiria resolver isso, porém não posso usar essa lib…
a aplicação usa os seguintes frameworks:
- struts 2.1.8 (sem algumas libs… como a strutsJquery (ou algo assim, não me lembro bem));
- spring 3 (também com algumas alterações).
desde já agradeço a ajuda…