Como generar un archivo en java

En mi trabajo me han pedido que realice un modulo de descarga para una aplicación web. Tengo que generar un archivo cvs que contenga la data de un table, cuyo table tiene la data del cliente. El asunto de la descarga no es un problema, tampoco generar el archivo, ahora bien el problema es que hay ciertos clientes cuya tabla tiene miles de registros, en este punto es que esta el problema porque cuando llamo al stored procedure para que me traiga toda la data, esto toma mucho tiempo y weblogic de vez en cuando me da un time out... Quisiera saber si me puedes dar alguna idea o alternativa de como hacer esto.
1

1 Respuesta

109.425 pts. Mas de 15 años de experiencia en Java, Javascript y HTML
Imagino que lo que quieres descargar es un CSV (Comma Separated Values), no un CVS, que es un sistema de control de versiones.
Una pregunta: ¿Dónde se genera el csv, en el procedimiento almacenado de la base de datos, o lo crea Java iterando por el resultset? ¿El timeout se lo da la base de datos al servidor Java o lo da el servidor java al cliente web? Presupongo que es una aplicación web, ¿es así?
Dependiendo de lo que me cuentes te doy alguna alternativa.
Que tal experto:
Si tienes razón, error de teclado, es un CSV, el archivo lo estoy creando iterando el resultset desde java, también es una aplicación WEB, y el timeout lo genera el servidor weblogic al cliente...
Gracias por responder tan rapido y nada espero tu otro comentario
Pues a priori se me ocurren varias alternativas:
1) Aumentar el timeout de weblogic.
2) Optimizar el proceso de recuperación de la tabla, o sea, intentar disminuir el tiempo de respuesta de la BBDD. Hace falta medir el tiempo que se tarda en este proceso, para ver si este es el cuello de botella.
3) Optimizar el proceso de creación del fichero CSV. También habría que medir tiempos, por la misma razón
4) Descartar una respuesta síncrona al cliente, y optar por un proceso en background que genere el fichero, y lo guarde en una carpeta del servidor. Luego, en javascript, puedes tener una función que llame a un servlet (o action, o lo que sea) que compruebe si el fichero está ya disponible, y si es así, que lo descargue.
5) Mandar un email al cliente con el fichero CSV como adjunto, si es que se dispone de un servidor SMTP y de las direcciones de correo de los clientes.
Si necesitas ayuda con alguna de estas sugerencias, no dudes en consultarme de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas