Java - Problema con proceso remoto y barra de progreso

 
Vista:

Problema con proceso remoto y barra de progreso

Publicado por jmromero (51 intervenciones) el 09/12/2008 08:34:46
Muy buenas.

Tengo una arquitectura EJB y un par de métodos de ese EJB que son procesos masivos, que se suelen lanzar cada mes y que pueden tardar un tiempo considerable.

Para ello creé la siguiente interfaz y el siguiente objeto:

public interface DatosProcesoRemotoI extends Remote

y

public class DatosProcesoRemoto extends UnicastRemoteObject implements DatosProcesoRemotoI, Serializable

de forma que mi método que da de la forma:

public ... (DatosProcesoRemotoI procesoRemoto) throws RemoteException

Desde el cliente le paso un objeto DatosProcesoRemoto y voy actualizando una serie de atributos internos que contienen el número total de registros, el registro actual, etc... De esta forma puedo actualizar una barra de progreso en el cliente.

Hasta aquí todo perfecto, el problema que estoy encontrando es que el método se ralentiza muchísimo debido al uso del objeto DatosProcesoRemoto (he probado a lanzarlo sin ese parámetro, modificando el código servidor y la ganancia en velocidad es muy considerable).

El proceso en si es un proceso masivo que puede tardar mucho tiempo y NO puedo bloquear el cliente a espera de que éste termine, es necesario pues el uso de una barra de progreso y la posibilidad de cancelar el proceso tal y como lo tengo hecho hasta ahora. Yo lanzo el proceso usando una hebra independiente y dejo que el cliente pueda seguir trabajando con el programa.

Mi EJB es sin estado y la transacción es manejada por el EJB.

¿Os habeis enfrentado alguna vez a un problema de este estilo?

¿Tengo que configurar mi objeto remoto de alguna forma para evitar la lentitud?

¿Alguien ha usado una barra de progreso con EJB's?

Muchas gracias por vuestro tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder