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 foundin 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 foundin 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 foundin 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 foundin 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 foundin 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 |