| java.lang.Object | |
| ↳ | org.springframework.jms.connection.ConnectionFactoryUtils |
Helper class for managing a JMS javax.jms.ConnectionFactory, in particular for obtaining transactional JMS resources for a given ConnectionFactory.
Mainly for internal use within the framework. Used by
JmsTemplate as well as
DefaultMessageListenerContainer.
| Nested Classes | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| ConnectionFactoryUtils.ResourceFactory | Callback interface for resource creation. | ||||||||||
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Obtain a JMS Session that is synchronized with the current transaction, if any.
| |||||||||||
Obtain a JMS Session that is synchronized with the current transaction, if any.
| |||||||||||
Return the innermost target Session of the given Session.
| |||||||||||
Obtain a JMS QueueSession that is synchronized with the current transaction, if any.
| |||||||||||
Obtain a JMS Session that is synchronized with the current transaction, if any.
| |||||||||||
Obtain a JMS TopicSession that is synchronized with the current transaction, if any.
| |||||||||||
Determine whether the given JMS Session is transactional, that is,
bound to the current thread by Spring's transaction facilities.
| |||||||||||
Release the given Connection, stopping it (if necessary) and eventually closing it.
| |||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
| |||||||||||
Obtain a JMS Session that is synchronized with the current transaction, if any.
| connectionFactory | the JMS ConnectionFactory to bind for (used as TransactionSynchronizationManager key) |
|---|---|
| resourceFactory | the ResourceFactory to use for extracting or creating JMS resources |
| startConnection | whether the underlying JMS Connection approach should be
started in order to allow for receiving messages. Note that a reused Connection
may already have been started before, even if this flag is false. |
null if none found| in case of JMS failure | |
| JMSException |
Obtain a JMS Session that is synchronized with the current transaction, if any.
This doGetTransactionalSession variant always starts the underlying
JMS Connection, assuming that the Session will be used for receiving messages.
| connectionFactory | the JMS ConnectionFactory to bind for (used as TransactionSynchronizationManager key) |
|---|---|
| resourceFactory | the ResourceFactory to use for extracting or creating JMS resources |
null if none found| in case of JMS failure | |
| JMSException |
Return the innermost target Session of the given Session. If the given Session is a proxy, it will be unwrapped until a non-proxy Session is found. Otherwise, the passed-in Session will be returned as-is.
| session | the Session proxy to unwrap |
|---|
Obtain a JMS QueueSession that is synchronized with the current transaction, if any.
Mainly intended for use with the JMS 1.0.2 API.
| cf | the ConnectionFactory to obtain a Session for |
|---|---|
| existingCon | the existing JMS Connection to obtain a Session for
(may be null) |
| synchedLocalTransactionAllowed | whether to allow for a local JMS transaction that is synchronized with a Spring-managed transaction (where the main transaction might be a JDBC-based one for a specific DataSource, for example), with the JMS transaction committing right after the main transaction. If not allowed, the given ConnectionFactory needs to handle transaction enlistment underneath the covers. |
null if none found| in case of JMS failure | |
| JMSException |
Obtain a JMS Session that is synchronized with the current transaction, if any.
| cf | the ConnectionFactory to obtain a Session for |
|---|---|
| existingCon | the existing JMS Connection to obtain a Session for
(may be null) |
| synchedLocalTransactionAllowed | whether to allow for a local JMS transaction that is synchronized with a Spring-managed transaction (where the main transaction might be a JDBC-based one for a specific DataSource, for example), with the JMS transaction committing right after the main transaction. If not allowed, the given ConnectionFactory needs to handle transaction enlistment underneath the covers. |
null if none found| in case of JMS failure | |
| JMSException |
Obtain a JMS TopicSession that is synchronized with the current transaction, if any.
Mainly intended for use with the JMS 1.0.2 API.
| cf | the ConnectionFactory to obtain a Session for |
|---|---|
| existingCon | the existing JMS Connection to obtain a Session for
(may be null) |
| synchedLocalTransactionAllowed | whether to allow for a local JMS transaction that is synchronized with a Spring-managed transaction (where the main transaction might be a JDBC-based one for a specific DataSource, for example), with the JMS transaction committing right after the main transaction. If not allowed, the given ConnectionFactory needs to handle transaction enlistment underneath the covers. |
null if none found| in case of JMS failure | |
| JMSException |
Determine whether the given JMS Session is transactional, that is, bound to the current thread by Spring's transaction facilities.
| session | the JMS Session to check |
|---|---|
| cf | the JMS ConnectionFactory that the Session originated from |
Release the given Connection, stopping it (if necessary) and eventually closing it.
Checks shouldStop(Connection), if available.
This is essentially a more sophisticated version of
closeConnection(Connection).
| con | the Connection to release
(if this is null, the call will be ignored) |
|---|---|
| cf | the ConnectionFactory that the Connection was obtained from
(may be null) |
| started | whether the Connection might have been started by the application |