2010-03-11 11 views
6

Estoy usando Seam y obtengo un error de "llamada concurrente a la conversación". ¿Qué significa esto?Llamada concurrente a la conversación

Tengo un botón que tarda 5 minutos en procesarse. Recibo este error en 2 minutos. Establecer el tiempo de solicitud concurrente a 10 minutos no parece funcionar. ¿Hay alguna manera de bloquear todas las demás solicitudes hasta que la primera se haya completado?

+0

@bhargav le puede proporcionar más información: components.xml, los frijoles, el oído o aplicación de guerra? –

Respuesta

1

No creo que sea una buena idea bloquear todas las demás solicitudes de operación TAN larga, mucho mejor es hacer que funcione de forma asíncrona.

Puede ver aquí http://achorniy.wordpress.com/2009/07/14/avoid-concurrent-call-to-conversation/ pero esta es la solución que le permite bloquear otras solicitudes durante el corto período de tiempo (por supuesto, puede bloquearlas por un tiempo prolongado pero eso no es bueno en general para hacer que el usuario para esperar tales solicitudes) Puede ver aquí un buen ejemplo de cómo se puede organizar la IU para trabajar con asincronización en back-end (ver richfaces livedemo "Support Ajax", ejemplos Push/Pull)

0

Aquí está la solución - use richfaces progressBar, llame al método asincrónico de costura para ejecutar el proceso largo y pase el ProgressBean con parámetros al método async (debe ser accesible desde su bean de conversación que usa en JSF) y actualice periódicamente el estado del progreso en long-runn tarea ing Este enfoque se explica en detalles aquí [Mostrar progreso del proceso dinámico en la costura/RichFaces] [1]

[1] http://achorniy.wordpress.com/2010/10/22/show-dynamic-process-progress-in-seam-richfaces/

Cuestiones relacionadas