1

Spring 통합을 사용하고 내가 전에 보냈던 메시지의 롤백을 원할 경우 어떤 종류의 TransactionManger를 사용할 것입니까?어떤 TransactionManger가 이벤트를 롤백하는 데 사용할 것인지

org.springframework.jms.connection.JmsTransactionManager. 

API가 here 볼 수 있습니다 :에 의해 제공

class DatingServiceImpl { 

    @Autowired 
    final RendezvousChannel rendezvousChannel 

    @Autowired 
    final GirlsRepository girlsRepository 

    @Transactional() 
    public final date(final String name) { 

     rendezvousChannel.send(String.format("Hello %s", name), 100); 

     if(girlsRepository.forName(name).hotScore < 8) { 
      throw new IllegalStateException("No I put it over"); 
     } 

    } 

} 

답변

0

당신은 JmsTransactionManager을 사용한다 : 나는 JMS 만 큐에 이벤트를 보내는 액티브 MQ 또는 물건을 사용하지 않았다 .

+0

감사합니다. 나는 그것을 시도했다. transactionManager를 추가하면 JMSConnectionFactory가 필요하다. 내 경우에는 mutch (지속성 및 JMS)입니다. 나는 그것을 정말로 필요로하지 않았다. 메시지를 보내기 전에 조건을 확인한 다음 보낼 수 없습니다. Datareplication을위한 유일한 방아쇠 일뿐입니다. 질문하기 전에 점수를 확인하는 것이 더 예의 바른 것입니다. 스프링 통합을 사용한 첫 번째 시도 일뿐입니다. 다른 시나리오의 경우 Persistent Queues 또는 Jms를 사용합니다. – mquasten

0

... 내가 JMS 액티브 MQ 또는 물건을 사용하지 않았다 ...

이러한 트랜잭션 관리자가 없습니다

- 프레임 워크 자체가 트랜잭션 아니다; 트랜잭션을 얻으려면 JMS 또는 JDBC와 같은 일부 트랜잭션 자원에서 채널을 백업해야합니다.

관련 문제