Soporte de transacciones y Spring Framework
Para Spring Framework Versión 2.5 o posterior, puede utilizar el modelo de transacción declarativa, utilizar el soporte de Spring Framework para la extensión de programación AspectJ o utilizar el soporte de transacción basado en anotación. Para versiones de Spring Framework anteriores a la Versión 2.5 y para versiones del servidor de aplicaciones que no proporcionan la interfaz UOWManager, puede utilizar una configuración de Spring Framework que soporte un conjunto restringido de atributos de transacción.
Modelo de transacción declarativa
WebSphere Application Server Versión 6.0.2.19 o posterior y Versión 6.1.0.9 o posterior soporta el modelo de transacción declarativa de Spring Framework para dirigir las actualizaciones de recursos bajo el control de transacción. La clase WebSphereUowTransactionManager de Spring Framework 2.5 utiliza la interfaz UOWManager en el servidor de aplicaciones para gestionar el contexto de transacción. Dado que la demarcación de transacción se gestiona a través de la interfaz UOWManager, está siempre disponible un contexto de contenedor de transacciones locales (LTC) o transacciones globales apropiado cuando se accede a un proveedor de recursos. Para obtener más información sobre la interfaz UOWManager y el soporte de JTA (Java™ Transaction API - API de transacción Java), consulte el tema relacionado.
- PROPAGATION_REQUIRED
- PROPAGATION_SUPPORTS
- PROPAGATION_MANDATORY
- PROPAGATION_REQUIRES_NEW
- PROPAGATION_NOT_SUPPORTED
- PROPAGATION_NEVER
<bean id="transactionManager"
class="org.springframework.transaction.jta.WebSphereUowTransactionManager"/>
<bean id="someBean" class="some.class">
<property name="transactionManager" >
<ref bean="transactionManager"/>
</property>
...
</bean>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
Extensión de programación AspectJ
- Todos los métodos que empiezan con la serie get tienen el atributo de transacción PROPAGATION_REQUIRED.
- Todos los métodos que empiezan con la serie set tienen el atributo de transacción PROPAGATION_REQUIRES_NEW.
- Todos los demás métodos utilizan los valores de transacción predeterminados.
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" propagation="REQUIRED" read-only="true" />
<tx:method name="set*" propagation="REQUIRES_NEW" />
<tx:method name="*" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="myServiceOperation"
expression="execution(* sample.service.MyService.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="myServiceOperation"/>
</aop:config>
Soporte de transacción basada en anotación
Para utilizar el soporte de transacción basada en anotación, necesita Java Platform, Standard Edition 5 (Java SE 5) o posterior. Por consiguiente, puede utilizar este método con WebSphere Application Server Versión 6.1 o posterior.
<tx:annotation-driven/>
@Transactional(readOnly = true)
public String getUserName()
{ ...
}
Puede utilizar la anotación @Transactional para anotar sólo métodos públicos.
Soporte de transacciones con Spring Framework anterior a la Versión 2.5
Puede utilizar una configuración de Spring Framework que soporte un conjunto restringido de atributos de transacción.
Puede utilizar este método de soporte de transacciones con las versiones de Spring Framework anteriores a la Versión 2.5 que no proporcionan la clase WebSphereUowTransactionManager. También puede utilizar este método de soporte de transacciones con versiones de WebSphere Application Server anteriores a la Versión 6.0.2.19 y Versión 6.1.0.9 que no proporcionan la interfaz UOWManager.
- PROPAGATION_REQUIRED
- PROPAGATION_SUPPORTS
- PROPAGATION_MANDATORY
- PROPAGATION_NEVER
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="autodetectTransactionManager"value="false" />
</bean>
- PROPAGATION_REQUIRES_NEW
- PROPAGATION_NOT_SUPPORTED
WebSphere Application Server no soporta la utilización de la clase org.springframework.transaction.jta.WebSphereTransactionManagerFactoryBean de Spring Framework.