SendRedirect

facuman
05 de Enero del 2005
Hola,
mi problema es el siguiente. Tengo una aplicacion JSP a traves de la cual hago una carga de datos y posterior procesamiento, que verdaderamente tarda mucho. Debido a esto, la aplicacion termina pinchando por timeout, aunque el procesamiento en Oracle sigue y termina. El problema es que uno no sabe, si no es por medio de logs en Oracle que el proceso termino bien o no. Por eso pense en hacer que ni bien entre a la pagina de procesamiento me haga un redirect a otra pagina donde se me muestre el estado de la carga (hago reload temporal) y mientras tanto, la carga continue en background. El tema es que no me funciona, es decir, no me voy de la pagina de carga hasta que no termina, y eso justamente es lo que quiero evitar. Esto me pasa tanto en Tomcat como Websphere. Espero su respuesta. Gracias.

Ken
05 de Enero del 2005
Esto no lo vas a conseguir mediante JSPs, ya que hasta que no se procesan no se genera el HTML que verás ni se redirige a ningún sitio.

Si tienes paciencia y realmente sabes lo que haces, puedes plantearte crear un hilo de ejecución que lleve a cabo la tarea de forma independiente...

Digo lo de saber lo que se hace, porque el tema de hilos en servlets es un poco delicado.

Si optas por este método, te recomiendo que hagas un patrón Singleton si ese proceso no va a ser muy frecuente. Esto te garantizará la unicidad y sincronía, de modo que el mismo proceso desencadenado por otra petición al mismo JSP no se ejecutará hasta que el anterior se haya finalizado.

¿Alguna idea más, parroquia?

Feliz 2005

Ken

facuman
05 de Enero del 2005
Gracias por tu contestacion. Pero agrego algo. Siguiendo probando me di cuenta que en Tomcat si funciona. Es decir, me hace redirect inmediatamente y sigue corriendo en background el proceso de carga. No funciona en websphere. Debe existir, imagino algun header a setear. Pero no he podido descubrirlo todavia. Espero alguien se de cuenta y me ayude. Gracias.