EJB (Enterprise Java Beans) - Error en scheduler con EJB 3.0

 
Vista:

Error en scheduler con EJB 3.0

Publicado por Ronson (1 intervención) el 18/10/2013 23:18:15
Hola a todos

Tengo un scheduler en java que utiliza EJB 3.0, ese scheduler ejecuta una tarea la cual consiste en ejecutar un proceso de carga y actualizacion de informacion. El problema que tengo es que el scheduler se ejecuta mas veces que las que tiene programadas, es decir que una vez que termina vuelve a ejecutarse nuevamente. He realizado algunas pruebas y me dado cuenta que cuando se hacen actualizaciones o inserciones masivas es cuando la ejecucion del proceso se repite. Probe tambien ejeutar solo unas cuantas sentencias update (5) del proceso y para este caso no se volvio a reinciar. Pense que podria ser que no manejaba con transacciones mis consultas asi que realice esa modificacion en codigo pero tampoco funciono. Una vez que termina el proceso y antes de repetirse manda la siguiente linea en el log:

com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on C:\Program Files\IBM\SDP\runtimes\base_v7\profiles\was70profile1\logs\ffdc\server1_42154215_13.10.16_18.31.17.7033827215978045602775.txt com.ibm.ws.scheduler.AlarmListener.TaskWork.fireTask 390

En el archivo server1_42154215_13.10.16_18.31.17.7033827215978045602775.txt muestra las siguientes trazas:

FFDC Exception:com.ibm.ws.scheduler.AlarmListener$RollbackTransaction SourceId:com.ibm.ws.scheduler.AlarmListener.TaskWork.fireTask ProbeId:390 Reporter:com.ibm.ws.scheduler.AlarmListener$TaskWork@324e324e
com.ibm.ws.scheduler.AlarmListener$RollbackTransaction: Global transaction was marked rollback-only.
at com.ibm.ws.scheduler.AlarmListener.executeTaskWithNotification(AlarmListener.java:810)
at com.ibm.ws.scheduler.AlarmListener.access$700(AlarmListener.java:121)
at com.ibm.ws.scheduler.AlarmListener$TaskWork.doWork(AlarmListener.java:427)
at com.ibm.ws.scheduler.AlarmListener$TaskWork.run(AlarmListener.java:213)
at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:268)
at java.security.AccessController.doPrivileged(AccessController.java:202)
at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:768)
at com.ibm.ws.asynchbeans.ExecutionContextImpl.go(ExecutionContextImpl.java:86)
at com.ibm.ws.scheduler.AlarmListener.fireTask(AlarmListener.java:1401)
at com.ibm.ws.scheduler.AlarmListener.fired(AlarmListener.java:1319)
at com.ibm.ws.asynchbeans.AlarmImpl.callListenerMethod(AlarmImpl.java:340)
at com.ibm.ws.asynchbeans.timer.GenericTimer.run(GenericTimer.java:216)
at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:264)
at java.security.AccessController.doPrivileged(AccessController.java:202)
at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:1137)
at com.ibm.ws.asynchbeans.AlarmImpl.runListenerAsCJWork(AlarmImpl.java:175)
at com.ibm.ws.asynchbeans.am._Alarm.fireAlarm(_Alarm.java:333)
at com.ibm.ws.asynchbeans.am._Alarm.run(_Alarm.java:230)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550)

Espero alguien me pueda ayudar porque no le encuentro la vuelta, ya que he estado investigando y he realizado algunos ajuste con posibles soluciones pero nada me funciona.

Gracias a todos
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
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

Error en scheduler con EJB 3.0

Publicado por Jhonnathan Emilio Cardona Saineda (2 intervenciones) el 10/01/2014 16:18:01
Hola
Esto es debido a que el contenedor crea un pool de instancias de bean sin estado (stateless). Al crear varios bean tendrás varios scheduler.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar