conmutación por error de base de datos Oracle en el manejo de la primavera de arranque

Sunleo:

Me gustaría crear interceptor basado anotación que registrar los detalles actuales DB donde db principal está fallando a la solicitud del servidor y db secundaria comenzarán a dar apoyo a la aplicación.

He encontrado debajo de código de enlace mencionado, pero no pude encontrar la anotación ORCL específico que tiene que ser utilizado para la anotación como @Aspect de AOP en el siguiente, por favor ayuda a encontrar esto.

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:orcl="http://www.springframework.org/schema/data/orcl"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
       http://www.springframework.org/schema/data/orcl
       http://www.springframework.org/schema/data/orcl/spring-data-orcl-1.0.xsd">

    <aop:config>
        <aop:advisor pointcut="execution(* *..PetStoreFacade.insertOrder(..))" 1 
            advice-ref="racFailoverInterceptor" order="1"/>
        <aop:advisor pointcut="execution(* *..PetStoreFacade.*(..))" 2 
            advice-ref="txAdvice"/>
    </aop:config>

    <orcl:rac-failover-interceptor id="racFailoverInterceptor"/> 3

    <tx:advice id="txAdvice">
        <tx:attributes>
            <tx:method name="insert*"/>
            <tx:method name="update*"/>
            <tx:method name="*" read-only="true"/>
        </tx:attributes>
    </tx:advice>

</beans>

https://docs.spring.io/spring-data/jdbc/old-docs/2.0.0.BUILD-SNAPSHOT/reference/html/orcl.failover.html

bbl:

Básicamente, no hay fuera de la caja "Oracle" anotación que puede ser utilizado para hacer la conmutación por error rac trabajo interceptor. Pero es fácil de añadir nueva anotación costumbre que va a hacer el trabajo por usted.

A condición de que el oráculo de datos ramita está en la ruta de clases

pom.xml Maven

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-oracle</artifactId>
    <version>1.2.1.RELEASE</version>
</dependency>

Hay que crear una anotación de marcador que desea utilizar.

package org.example;
public @interface OracleFailover {
// just a marker annotation, no body
}

Configurar un asesor para ella

<aop:config>
    <aop:advisor 
       pointcut="@annotation(org.example.OracleFailover)" 
        advice-ref="racFailoverInterceptor" order="1"/>
</aop:config>

<orcl:rac-failover-interceptor id="racFailoverInterceptor"/>

Y luego usarlo en sus métodos de negocio

package org.example;

@Service
public class SomeBusinessService {
    @OracleFailover
    void doSomethingWithOracle(){
        // body goes here
    }
}

Y recuerda que la conmutación por error Rac interceptor debe recorrer antes de su interceptor transnacional, que es la conmutación por error no funcionará como se espera en caso de intercepción de conmutación por error se realiza cuando la transacción ya está activo.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=213969&siteId=1
Recomendado
Clasificación