SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Transacciones

 Relator: Alejandro González (info@janogonzalez.com)
Temario General

➔   Transacciones
➔   Configurando Transacciones con XML
➔   Configurando Transacciones con anotaciones
ACID
ACID

➔   Atomicity: La transacción se realiza completa o
    no se realiza, sin estados intermedios.
➔   Consistency: Una vez que todos los pasos se
    han realizados, los datos quedan en un estado
    consistente.
➔   Isolation: Las transacciones se ejecutan en
    forma aislada.
➔   Durability: Una vez terminada la transacción,
    sus datos deben sobrevivir una falla del
    sistema.
Propagación

➔   Niveles típicos de propagación de
    transacciones:
    ➔   REQUIRED
    ➔   REQUIRES_NEW
    ➔   SUPPORTED
    ➔   NOT_SUPPORTED
    ➔   MANDATORY
    ➔   NEVER
Transacciones

➔   Para transacciones distribuídas se debe usar
    XA
Si lo recuerdo...
¿Pero cómo Spring facilita
  el uso de esta API?
Nuevamente...
DRY al rescate
TXs Declarativas con XML

➔   Primero necesitamos un manejador de
    transacciones:
    ➔   DataSourceTransactionManager
    ➔   JtaTransactionManager
    ➔   HibernateTransactionManager
    ➔   JpaTransactionManager.
    ➔   Etc...
TXs Declarativas con XML

➔   Primero necesitamos un manejador de
    transacciones

    <bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTr
    ansactionManager">
      <property name="dataSource" ref="dataSource" />
    </bean>
TXs Declarativas con XML

➔   Luego un advice


    ●<tx:advice id="transferenciaTxAdvice" transaction-
    manager="transactionManager">
      ● <tx:attributes>

        ● <tx:method name="transferir" />

      ● </tx:attributes>

    ●</tx:advice>
TXs Declarativas con XML

➔   Y finalmente configuramos el pointcut


    <aop:config>
      <aop:pointcut id="transferenciaPointcut" expression=
      "execution(*
    com.ejemplo.services.TransferenciaService.*(..))" />

      <aop:advisor advice-ref="transferenciaTxAdvice"
      pointcut-ref="transferenciaPointcut" />

    </aop:config>
Momento...
¿Hay una manera más
 simple de hacerlo?
Java 5 al rescate
TXs Declarativas con Anotaciones

➔   Primero necesitamos un manejador de
    transacciones
➔   Luego usamos la configuración <tx:annotation-
    driven />
TXs Declarativas con Anotaciones

➔   Los métodos transaccionales se anotan con
    @Transactional

    ●@Transactional
    ●public Transferencia transferir(Cuenta origen, Cuenta


    destino, BigDecimal monto) {
     .
    ●.

    ●.




        }
TXs Declarativas con Anotaciones

➔   También podemos usar atributos de
    propagación

    ●@Transactional(propagation = Propagation.REQUIRED)
    ●public Transferencia transferir(Cuenta origen, Cuenta


    destino, BigDecimal monto) {
     .
    ●.

    ●.




        }
TXs Declarativas con Anotaciones

➔   También podemos definir condiciones de
    Rollback

    ● @Transactional(
    ●   propagation = Propagation.REQUIRED,
    ●   rollbackFor = IOException.class,
    ●   noRollbackFor = ArithmeticException.class
    ●)

    ●public Transferencia transferir(Cuenta origen, Cuenta


    destino, BigDecimal monto) {
      .
    ●.

    ●.




        }
TXs Declarativas con Anotaciones

➔   Otros atributos son timeout y read-only


    ● @Transactional(
    ●   propagation = Propagation.REQUIRED,
    ●   timeout = 30,
    ●   readOnly = true
    ●)

    ●public Cuenta obtenerCuenta(String id) {


      .
    ●.

    ●.




        }

Weitere ähnliche Inhalte

Ähnlich wie TXs Spring declarativas

Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...
Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...
Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...Liz Ocampo
 
PostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadPostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadSantiago Zarate
 
Sysmana 2017 monitorización de logs con el stack elk
Sysmana 2017   monitorización de logs con el stack elkSysmana 2017   monitorización de logs con el stack elk
Sysmana 2017 monitorización de logs con el stack elkJosé Ignacio Álvarez Ruiz
 
Java8 : Más allá de las Expresiones Lambdas
Java8 :  Más allá de las Expresiones LambdasJava8 :  Más allá de las Expresiones Lambdas
Java8 : Más allá de las Expresiones LambdasEudris Cabrera
 
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...SpanishPASSVC
 
Curso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpCurso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpEdgar Solis
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magentoOnestic
 
Informe escrito sobre PSeInt
Informe escrito sobre PSeIntInforme escrito sobre PSeInt
Informe escrito sobre PSeIntMiguel Jimenez
 
II - Vitaminando nuestros casos de uso
II - Vitaminando nuestros casos de usoII - Vitaminando nuestros casos de uso
II - Vitaminando nuestros casos de usoMaikel González Baile
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Mayito Pdg
 
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...Haciendo copias de seguridad de todo el conocimiento humano con python y soft...
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...Jaime Crespo
 
Abf leccion 11
Abf leccion 11Abf leccion 11
Abf leccion 11victdiazm
 
Estructura de datos c++
Estructura de datos c++Estructura de datos c++
Estructura de datos c++kikeMerck
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenadosHarold Perez
 

Ähnlich wie TXs Spring declarativas (20)

Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...
Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...
Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...
 
PostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadPostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidad
 
Taller 18
Taller 18Taller 18
Taller 18
 
Bd no sql tecnicas2
Bd no sql tecnicas2Bd no sql tecnicas2
Bd no sql tecnicas2
 
Sysmana 2017 monitorización de logs con el stack elk
Sysmana 2017   monitorización de logs con el stack elkSysmana 2017   monitorización de logs con el stack elk
Sysmana 2017 monitorización de logs con el stack elk
 
Java8 : Más allá de las Expresiones Lambdas
Java8 :  Más allá de las Expresiones LambdasJava8 :  Más allá de las Expresiones Lambdas
Java8 : Más allá de las Expresiones Lambdas
 
Concurrencia y serialización final 2
Concurrencia y serialización final 2Concurrencia y serialización final 2
Concurrencia y serialización final 2
 
Concurrencia en Java
Concurrencia en Java Concurrencia en Java
Concurrencia en Java
 
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
 
Curso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpCurso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmp
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Informe escrito sobre PSeInt
Informe escrito sobre PSeIntInforme escrito sobre PSeInt
Informe escrito sobre PSeInt
 
Abd clase 5 y 6
Abd clase 5 y 6Abd clase 5 y 6
Abd clase 5 y 6
 
II - Vitaminando nuestros casos de uso
II - Vitaminando nuestros casos de usoII - Vitaminando nuestros casos de uso
II - Vitaminando nuestros casos de uso
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
 
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...Haciendo copias de seguridad de todo el conocimiento humano con python y soft...
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...
 
Abf leccion 11
Abf leccion 11Abf leccion 11
Abf leccion 11
 
Estructura de datos c++
Estructura de datos c++Estructura de datos c++
Estructura de datos c++
 
Diapo04
Diapo04Diapo04
Diapo04
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 

Mehr von Jano González

JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011Jano González
 
JRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJano González
 
Programación Políglota en la JVM
Programación Políglota en la JVMProgramación Políglota en la JVM
Programación Políglota en la JVMJano González
 
JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?Jano González
 
Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)Jano González
 
Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Jano González
 
Análisis y Diseño OO 2
Análisis y Diseño OO 2Análisis y Diseño OO 2
Análisis y Diseño OO 2Jano González
 
Análisis y Diseño OO 1
Análisis y Diseño OO 1Análisis y Diseño OO 1
Análisis y Diseño OO 1Jano González
 
Un newbie conoce a Sinatra
Un newbie conoce a SinatraUn newbie conoce a Sinatra
Un newbie conoce a SinatraJano González
 

Mehr von Jano González (14)

Spring jdbc
Spring jdbcSpring jdbc
Spring jdbc
 
Vim FTW!
Vim FTW!Vim FTW!
Vim FTW!
 
Ruby
RubyRuby
Ruby
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
 
JRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterprise
 
Programación Políglota en la JVM
Programación Políglota en la JVMProgramación Políglota en la JVM
Programación Políglota en la JVM
 
A Little RSpec
A Little RSpecA Little RSpec
A Little RSpec
 
JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?
 
Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)
 
Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1
 
Análisis y Diseño OO 2
Análisis y Diseño OO 2Análisis y Diseño OO 2
Análisis y Diseño OO 2
 
Análisis y Diseño OO 1
Análisis y Diseño OO 1Análisis y Diseño OO 1
Análisis y Diseño OO 1
 
Programación Java
Programación JavaProgramación Java
Programación Java
 
Un newbie conoce a Sinatra
Un newbie conoce a SinatraUn newbie conoce a Sinatra
Un newbie conoce a Sinatra
 

Kürzlich hochgeladen

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Kürzlich hochgeladen (13)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

TXs Spring declarativas

  • 1. Transacciones Relator: Alejandro González (info@janogonzalez.com)
  • 2. Temario General ➔ Transacciones ➔ Configurando Transacciones con XML ➔ Configurando Transacciones con anotaciones
  • 4. ACID ➔ Atomicity: La transacción se realiza completa o no se realiza, sin estados intermedios. ➔ Consistency: Una vez que todos los pasos se han realizados, los datos quedan en un estado consistente. ➔ Isolation: Las transacciones se ejecutan en forma aislada. ➔ Durability: Una vez terminada la transacción, sus datos deben sobrevivir una falla del sistema.
  • 5. Propagación ➔ Niveles típicos de propagación de transacciones: ➔ REQUIRED ➔ REQUIRES_NEW ➔ SUPPORTED ➔ NOT_SUPPORTED ➔ MANDATORY ➔ NEVER
  • 6. Transacciones ➔ Para transacciones distribuídas se debe usar XA
  • 7. Si lo recuerdo... ¿Pero cómo Spring facilita el uso de esta API?
  • 9. TXs Declarativas con XML ➔ Primero necesitamos un manejador de transacciones: ➔ DataSourceTransactionManager ➔ JtaTransactionManager ➔ HibernateTransactionManager ➔ JpaTransactionManager. ➔ Etc...
  • 10. TXs Declarativas con XML ➔ Primero necesitamos un manejador de transacciones <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTr ansactionManager"> <property name="dataSource" ref="dataSource" /> </bean>
  • 11. TXs Declarativas con XML ➔ Luego un advice ●<tx:advice id="transferenciaTxAdvice" transaction- manager="transactionManager"> ● <tx:attributes> ● <tx:method name="transferir" /> ● </tx:attributes> ●</tx:advice>
  • 12. TXs Declarativas con XML ➔ Y finalmente configuramos el pointcut <aop:config> <aop:pointcut id="transferenciaPointcut" expression= "execution(* com.ejemplo.services.TransferenciaService.*(..))" /> <aop:advisor advice-ref="transferenciaTxAdvice" pointcut-ref="transferenciaPointcut" /> </aop:config>
  • 13. Momento... ¿Hay una manera más simple de hacerlo?
  • 14. Java 5 al rescate
  • 15. TXs Declarativas con Anotaciones ➔ Primero necesitamos un manejador de transacciones ➔ Luego usamos la configuración <tx:annotation- driven />
  • 16. TXs Declarativas con Anotaciones ➔ Los métodos transaccionales se anotan con @Transactional ●@Transactional ●public Transferencia transferir(Cuenta origen, Cuenta destino, BigDecimal monto) { . ●. ●. }
  • 17. TXs Declarativas con Anotaciones ➔ También podemos usar atributos de propagación ●@Transactional(propagation = Propagation.REQUIRED) ●public Transferencia transferir(Cuenta origen, Cuenta destino, BigDecimal monto) { . ●. ●. }
  • 18. TXs Declarativas con Anotaciones ➔ También podemos definir condiciones de Rollback ● @Transactional( ● propagation = Propagation.REQUIRED, ● rollbackFor = IOException.class, ● noRollbackFor = ArithmeticException.class ●) ●public Transferencia transferir(Cuenta origen, Cuenta destino, BigDecimal monto) { . ●. ●. }
  • 19. TXs Declarativas con Anotaciones ➔ Otros atributos son timeout y read-only ● @Transactional( ● propagation = Propagation.REQUIRED, ● timeout = 30, ● readOnly = true ●) ●public Cuenta obtenerCuenta(String id) { . ●. ●. }