SPRING JDBC [PROBLEMAS CON 'COMMIT' EN LA APLICACIÓN]

Que tal chicos una consulta, estoy manejando "SimpleJdbcCall" y estoy teniendo problemas al momento de manejar las transacciones con SPRING. El escenario es el siguiente: "Le estoy mandando a mi método de persistencia una LISTA de registros a REGISTRAR por medio de un PROCEDURE", la idea que es dicho PROCEDURE me responde un 1 si es OK (El PROCEDURE no maneja el COMMIT) y al iterar toda la lista yo valida que me si me responde != 1 haga un break y setee un false. Con dicho false valida fuera del FOR que si es false hago el ROLLBACK sino el COMMIT de todas las transacciones que tengo cargadas. Algo similar que se hace cuando se maneja JDBC de forma nativa. Lo que pasa es que al hacerlo así por mas que el PROCEDURE me responde != 1 ejecuta el un COMMIT, "SIEMPRE ME REGISTRA EL INSERT" (como un Auto-Commit = true). Y eso es lo que no quiero que ejecute un Auto Commit pero manejado con SPRING. (Quiero poder controlar el COMMIT). Aquí mi configuración:

CODIGO JAVA:

 

CONFIGURACIÓN DE SPRING (applicationDatasource.xml):
 

Algún comentario para solucionar este problema ?. Gracias.

Saludos.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

La etiqueta code nos ayuda mucho

Antes que nada te recomiendo utilizar la etiqueta
code. Ya que sin la etiqueta queda cómo:
public String theString = "sin etiqueta  ";
Y con la etiqueta queda cómo:
 "

Luego, otra cosa, ¿podrías poner la pila de traza (stack
trace)?... Si hay un error deberías poder poner cual es
o qué es.

Saludos.

Imagen de JavaMan

RE:Opciones de visualización de comentarios

No existe error alguno, simplemente no logra hacer bien el manejo de la transaccionalidad.

Saludos.

Imagen de Sr. Negativo

Re:Re:Opciones de visualización de comentarios

Creo se ve mejor asi:

 

 

No existe error alguno, simplemente no logra hacer bien el manejo de la transaccionalidad.

Entonces no hay nada más que decir , el único que puede probar el código eres tu.

Tendríamos que tener todo tu proyecto y hacerlo funcionar para ver cual es el problema.

Imagen de JavaMan

SOLUCIÓN: PROBLEMA 'TRANSACCIONALIDAD' EN LA APLICACIÓN

Hola,

La solución esta en que no se estaba manejando de forma eficiente el 'PlatformTransactionManager', 'TransactionDefinition', 'TransactionStatus' y parte del Mapping de SPRING. He acomodando esas partes y con ello ya valide que la TRANSACCIONALIDAD, ya puedo controlarla desde la aplicación y hace COMMIT o ROLLBACK en el momento se requiera. Gracias por los aportes.

CÓDIGO JAVA:
 

MAPPING SPRING:
 

Imagen de JavaMan

SOLUCIÓN: PROBLEMA CON 'COMMIT' EN LA APLICACIÓN.

Aquí comparto la solución. Estaba en el manejo de: 'TransactionDefinition' y 'TransactionStatus', no lo estaba manejando correctamente al igual que el MAPPING del XML de Spring del transaction. He hecho algunas modificaciones en el CÓDIGO y MAPPING. Ya validé su funcionamiento ya ahora de esta forma ya el commit manejado desde la aplicación y funcionando bien. Gracias.

CÓDIGO JAVA:
 

MAPPING SPRING:

 

Imagen de ingscjoshua

mmmmmm

podrias subir tu appContext completo y amm porq no estas usando la inyeccion de dependencia podrias usarla de 2 forma delarando las propiedades y generando sus set para que spring inyecte todo o usando la anotacion @autowired no me queda muy calro que pretendes hacer? porq usar un procedure? lo podras hacer todo dese java con un api de persistencia cono jpa o hibernate nose amm quisiera entender que pretendes para si de alquna forma te puedo ayudar pues ayudar o confundirte mas jajajaj OK Ya me calmo saludos.

Imagen de JavaMan

JDBC

Doc en estos momentos no tengo las fuentes pero maniana las debo estar subiendo. Si estan inyectando con el @autowired, ya lo valide su funcionamiento. Sobre el manejo de PROCEDURE, el DUMMY esta planteado de esa manera ya que en el trabajo es requerimiento por segmentacion del motor de datos. Sobre los archivos de mapping los tengo separados en base a su funcionalidad ese que mostre solo contiene el de acceso a datos.

Saludos