Transaction 예외처리
Mssql에 Linked Server로 연결된 DB가 있습니다.
Linked Server에 단순 Select Query를 하는 작업이 있는데..
Transaction이 물리게 되면 분산 Transaction 오류가 뜹니다.
그래서 포럼에 게시된 글처럼 아래와 같이 Transaction 예외처리하여 적용을 해보았습니다.
<tx:advice id="noTxAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*Tx" rollback-for="Exception" propagation="NOT_SUPPORTED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="programTx" expression="execution(* com.girp..*Impl.*Tx(..))" />
<aop:advisor advice-ref="noTxAdvice" pointcut-ref="programTx" />
</aop:config>
위와 같이 세팅을 한후 Tx로 끝나는 메소드를 호출을 하였는데도
여전히 분산 Transaction 오류가 발생합니다.
제가 처리를 잘못한건지.. 아니면 다른 방법이 있는지 답변 부탁드립니다.
참고로 저희는 AnyFrame3.0.1버전을 사용을 하구 있구요.
DB속성 정의는 아래와 같습니다.
<bean id="realDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="AAAA"/>
<property name="jndiTemplate" ref="jnditemplate"/>
</bean>
<bean class="org.springframework.jndi.JndiTemplate" id="jnditemplate">
</bean>
<bean id="dataSource" class="net.sf.log4jdbc.AnyFrameDataSourceSpy">
<property name="dataSource" ref="realDataSource"/>
</bean>


Re] Transaction 예외처리
Mssql에 Linked Server로 연결된 DB 셋팅에 문제가 있는 듯 보이므로 DB 셋팅에 대한 확인 요청드렸습니다.