Транзакционный опросчик не работает с mssqlerver

У меня есть транзакционный опросник (Spring 3.1.2 и Spring-интеграции 2.2.3), чтобы гарантировать, что сообщения будут доставлены, если транзакция откатывается по исключению

    <int:outbound-channel-adapter id="obca" ref="notificationHandler" 
        method="handle" channel="notificationChannel" >
        <int:poller max-messages-per-poll="100" fixed-delay="6000"
            time-unit="MILLISECONDS">
            <int:transactional isolation="DEFAULT" />
        </int:poller>   
    </int:outbound-channel-adapter>

это прекрасно работает, когда модульное тестирование с базой данных H2, сообщение доставляется до тех пор, пока метод вызывает исключение

   @Transactional
   public void handle(Message<MyPayload> message)

но когда я использую sql-сервер, который мы используем в производственной среде (ms-sqlserver, который использует READ COMMITTED SNAPSHOT в качестве уровня изоляции, если это важно), повторная доставка по исключению не работает. какие-либо намеки, почему это может быть?

РЕДАКТИРОВАТЬ:

Я проверил протоколирование TRACE, но не смог найти подозрительные сообщения в журнале, наконец-то я его заработал. я объявил отдельный источник данных (тот же конфиг, что и в обычной базе данных) и actionManager org.springframework.jdbc.datasource.DataSourceTransactionManager вместо моего обычного org.springframework.orm.jpa.JpaTransactionManager.

0 ответов

Другие вопросы по тегам