mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Document how to disable JMS transacted session
Closes gh-7463
This commit is contained in:
parent
5e8ba5cef6
commit
0359b2f6f5
@ -2134,6 +2134,39 @@ so you can see how to set things up.
|
||||
|
||||
|
||||
|
||||
[[howto-messaging]]
|
||||
== Messaging
|
||||
|
||||
|
||||
|
||||
[[howto-jms-disable-transaction]]
|
||||
=== Disable transacted JMS session
|
||||
If your JMS broker does not support transacted session, you will have to disable the
|
||||
support of transactions altogether. If you create your own `JmsListenerContainerFactory`
|
||||
there is nothing to do since it won't be transacted by default. If you want to use
|
||||
the `DefaultJmsListenerContainerFactoryConfigurer` to reuse Spring Boot's default, you
|
||||
can disable transacted session as follows:
|
||||
|
||||
[source,java,indent=0]
|
||||
----
|
||||
@Bean
|
||||
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(
|
||||
ConnectionFactory connectionFactory,
|
||||
DefaultJmsListenerContainerFactoryConfigurer configurer) {
|
||||
DefaultJmsListenerContainerFactory listenerFactory =
|
||||
new DefaultJmsListenerContainerFactory();
|
||||
configurer.configure(listenerFactory, connectionFactory);
|
||||
listenerFactory.setTransactionManager(null);
|
||||
listenerFactory.setSessionTransacted(false);
|
||||
return listenerFactory;
|
||||
}
|
||||
----
|
||||
|
||||
This overrides the default factory and this should be applied to any other factory that
|
||||
your application defines, if any.
|
||||
|
||||
|
||||
|
||||
[[howto-batch-applications]]
|
||||
== Batch applications
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user