Tengo un proyecto basado en el marco Spring Web model-view-controller (MVC). La versión del marco Spring Web model-view-controller (MVC) es 3.2.8 implementada en un servidor WebLogic Versión: 12.1.2.0.0
tengo este error en 1 consulta
Caused By: java.lang.RuntimeException: java.sql.SQLException: The transaction is no longer active - status: 'Marked rollback. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 31 seconds BEA1-000D9470C1367F28EDB9]'. No further JDBC access is allowed within this transaction., criteria [ com.tdk.books.domain.ProductSearchCriteria@c5f15d5c ], sql [ select PRODUCT_ID from V_BOOKS where category_id = ? ]incluso puse un tiempo de espera de 10000 en el método de servicio
@Transactional(timeout=10000, propagation = Propagation.REQUIRES_NEW)Por lo general, esto sucede cuando finaliza una transacción, pero este hecho se ignora y una aplicación intenta continuar procesando y emitir declaraciones JDBC que ocurren fuera del TX. El origen de este problema podría ser un objeto Connection que se transmite a través de una secuencia de métodos que utilizan la conexión. Uno de esos métodos compromete el TX invalidando así la conexión.
Enlace de recursos: https://community.oracle.com/thread/734370
Se encuentran algunas sugerencias para resolver el problema.
Intente cambiar la configuración de su fuente de datos weblogic de Non - XA a XA. Deberías deshacerte de esta excepción.
Enlace de recursos: la transacción ya no está activa - estado: 'Confirmado'
Desmarque Admite transacciones globales y reinicie el servidor.
Enlace de recursos: En PRPC ERROR: La transacción ya no está activa - estado: 'Confirmado'
La solución real de este problema es el procesamiento asíncrono. Pero es posible que no sea adecuado en su caso.
El primero Si está realizando una llamada jdbc a Oracle, puede configurar el tiempo de espera de la consulta cuando ejecuta la consulta en la base de datos. Y después del tiempo de espera de la consulta, Oracle le dará una excepción que puede manejar. Entonces, básicamente, en este caso, en realidad no está cancelando su solicitud EJB. Pero podría resolver tu problema.
Enlace de recursos: https://coderanch.com/t/68079/transaction-rollback-commit