Guest User

Untitled

a guest
Jun 20th, 2018
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. @SpringBootApplication
  2. @EnableTransactionManagement
  3. public class KafkaTransactionMysteryApplication {
  4.  
  5. public static void main(String[] args) {
  6. SpringApplication.run(KafkaTransactionMysteryApplication.class, args);
  7. }
  8.  
  9. @Bean
  10. @Primary
  11. public JpaTransactionManager transactionManager() {
  12. return new JpaTransactionManager();
  13. }
  14.  
  15. @Bean
  16. public ChainedKafkaTransactionManager chainedTxM(JpaTransactionManager jpa, KafkaTransactionManager<?, ?> kafka) {
  17. return new ChainedKafkaTransactionManager(kafka, jpa);
  18. }
  19.  
  20. @KafkaListener(topics = "trans-topic")
  21. @Transactional(propagation = Propagation.REQUIRED, transactionManager = "chainedTxM", rollbackFor = Exception.class)
  22. public void listen(ConsumerRecord record) throws Exception {
  23. System.out.println(record.value());
  24. if (true) {
  25. throw new Exception("Force rollback");
  26. }
  27. }
  28. }
  29.  
  30. spring.kafka.producer.bootstrap-servers=127.0.0.1:9092
  31. spring.kafka.consumer.bootstrap-servers=127.0.0.1:9092
  32.  
  33. spring.kafka.producer.transaction-id-prefix=mytrans
  34. spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
  35.  
  36. spring.kafka.consumer.group-id=trans-topic-grp1
  37. spring.kafka.consumer.properties.isolation.level=read_committed
  38. spring.kafka.consumer.auto-offset-reset=earliest
  39. spring.kafka.listener.ack-mode=RECORD
  40. spring.kafka.consumer.enable-auto-commit=false
Add Comment
Please, Sign In to add comment