У меня есть приложение для весеннего ботинка с пружинным JMS, использующим контейнер DefaultMessageListener. Я использую Atomikos для управления транзакциями. Исключение: откат очереди сообщений работает нормально, а сообщения переходят в очередь, но обновления базы данных не откат. Я установил autoconfigured JtaTransactionManager в DefaultMessageContainerBean. Существуют ли какие-либо другие конфигурации, необходимые здесь, чтобы получить истинное глобальное управление транзакциями. Я использую My Batis для базы данных.Atomicos Управление транзакциями весенний ботинок/пружинные заторы
public class CusListener implements MessageListener{
public void onMessage(Message message) {
//Database call
catch (Exception ex) {
throw (new RuntimeException());
}
}
}
@Configuration
public class ListenerContainer{
@Bean
public DefaultMessageListenerContainer defaultMessageListenerContainer(ConnectionFactory queueConnectionFactory,MQQueue queue, MessageListener listener,
JtaTransactionManager jtaTransactionManager) {
DefaultMessageListenerContainer defaultMessageListenerContainer =
new DefaultMessageListenerContainer();
defaultMessageListenerContainer.setConnectionFactory(queueConnectionFactory);
defaultMessageListenerContainer.setDestination(queue);
defaultMessageListenerContainer.setMessageListener(listerner);
defaultMessageListenerContainer.setTransactionManager(jtaTransactionManager);
defaultMessageListenerContainer.setSessionTransacted(true);
defaultMessageListenerContainer.setConcurrency("3-10");
return defaultMessageListenerContainer;
}
//other beans declaration passed in the method above
}
@Configuration
public class PlanListenerSqlSessFac {
@Bean(name="sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") NMCryptoDataSourceWrapper dataSource) throws Exception {
}
@Bean(name="driverManagerDataSource")
public DriverManagerDataSource driverManagerDataSource() {
DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
return driverManagerDataSource;
}
}
Трудно сказать, что происходит, не глядя на код. –
Для стандартного кода JMS anb DB требуется довольно много стандартных компонентов: - – Atul
Добавлен код с вопросом. – Atul