Strange behaviour with long transaction
marcial.atienzar Oct 22, 2015 3:07 AMWe've a rest service that it's called from bash script once a day.
@GET @Path(Operations.INTERCAMBIO_WS_ENVIO) public void envioIntercambio() throws DatatypeConfigurationException{
This rest service call an EJB method:
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) @TransactionTimeout(value = 45, unit = TimeUnit.MINUTES) public void envio(){
And inside this ejb method we've a try/catch without any bucle:
try{ // Realizamos la carga de la tabla temporal de asistencias, para que se tenga en cuenta en el envío de centros // y médicos temAsistencia1Bean.cargaRegistrosAEnviar(envio); enviarCentrosNuevos(envio); enviarMedicosNuevos(envio); enviarEpisodiosNuevos(envio); } catch (Exception e) { final String mensajeError = String.format("%s%n%s", "Error no controlado en la carga de la tabla temporal de asistencias", e.getMessage()); log.error(mensajeError,e); envio.addException(mensajeError); mailingBean.enviaMail(parametrosBean.obtenerValorGnParam(Constantes.PARAM_EMAIL_ERROR), mensajeError, null, Constantes.ASUNTO_ENVIO_ASISTENCIAS_ERROR); } finally { envWsEnvioBean.finalizarEnvio(envio); }
And when the 45 minutes expires at 01:45, we've this entries on server.log (every 15 minutes more or less):
2015-10-22 01:45:59,705 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-7) Error no controlado en la carga de la tabla temporal de asistencias Transaction rolled back 2015-10-22 02:15:12,133 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-10) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 02:30:17,085 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-16) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 02:45:23,030 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-11) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 03:00:29,985 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-14) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 03:15:38,028 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-13) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 03:30:47,091 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-17) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 03:45:57,054 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-15) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 03:45:57,133 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-8) Error no controlado en la carga de la tabla temporal de asistencias Transaction rolled back 2015-10-22 04:06:59,168 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-12) Error no controlado en la carga de la tabla temporal de asistencias Transaction rolled back 2015-10-22 04:31:27,071 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-25) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 04:46:37,109 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-26) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 05:01:47,027 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-18) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 05:16:57,219 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-23) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 05:32:07,106 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-27) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 05:47:17,097 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-24) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 06:02:27,195 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-29) Error no controlado en la carga de la tabla temporal de asistencias javax.persistence.LockTimeoutException: could not execute statement 2015-10-22 06:12:51,084 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-21) Error no controlado en la carga de la tabla temporal de asistencias Transaction rolled back 2015-10-22 06:23:20,670 ERROR [org.mutua.app.server.bean.IntercambioBean] (default task-22) Error no controlado en la carga de la tabla temporal de asistencias Transaction rolled back
Why I've this errors every 15 minutes if I only call rest service once?
Lot of thanks,
Marcial