Я пытаюсь реализовать Hystrix с помощью метода @Transactional при весенней загрузке.
@Transactional(transactionManager="primaryTrnsManager")
@HystrixCommand(commandKey ="createRecord", fallbackMethod="createRecordFallback", commandProperties={
@HystrixProperty(name="execution.siolation.thread.timeoutInMilliseconds",value="1000"),
@HystrixProperty(name="circuitBreaker.requestVoulumeThreshold",value="20"),
@HystrixProperty(name="circuitBreaker.sleepWindowInMilliseconds",value="5000"),
@HystrixProperty(name="circuitBreaker.errorThresholdPercentage",value="50")})
public String createRecord(String name){
...............
//Dbcall
}
@Transactional(transactionManager="backUptranManager",propagation=propagation.REQUIRES_NEW)
public String createRecordFallback(){
//dbcall
}
Что радует, когда время ожидания Hystrix происходит после вызова, который я сделалбаза данных не получает отката, а Hystrix возвращается к вторичному и снова вызывает базу данных с тем же SQL-запросом.В случае тайм-аута я хочу прервать предыдущую транзакцию и начать другую.Обычно @Transactional делает это, но с помощью Hystrix я вставляю дублирующиеся записи.
Любая помощь?