The Spring Framework

## org.springframework.jms.connection
Class JmsTransactionManager102

    java.lang.Object
      org.springframework.transaction.support.AbstractPlatformTransactionManager
          org.springframework.jms.connection.JmsTransactionManager
              org.springframework.jms.connection.JmsTransactionManager102

All Implemented Interfaces:
  Serializable, InitializingBean, PlatformTransactionManager, ResourceTransactionManager

    public class JmsTransactionManager102

extends JmsTransactionManager

A subclass of `JmsTransactionManager` for the JMS 1.0.2 specification, not relying on JMS 1.1 methods like JmsTransactionManager itself. This class can be used for JMS 1.0.2 providers, offering the same API as JmsTransactionManager does for JMS 1.1 providers.

You need to set the `"pubSubDomain" property`, since this class will always explicitly differentiate between a `QueueConnection` and a `TopicConnection`.

Since:
  1.1
Author:
  Juergen Hoeller
See Also:
  `JmsTransactionManager.setConnectionFactory(javax.jms.ConnectionFactory)`, `setPubSubDomain(boolean)`, Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class org.springframework.transaction.support.AbstractPlatformTransactionManager
`AbstractPlatformTransactionManager.SuspendedResourcesHolder`

Field Summary

Fields inherited from class org.springframework.transaction.support.AbstractPlatformTransactionManager
`logger, SYNCHRONIZATION_ALWAYS, SYNCHRONIZATION_NEVER, SYNCHRONIZATION_ON_ACTUAL_TRANSACTION`

Constructor Summary
`JmsTransactionManager102()` Create a new JmsTransactionManager102 for bean-style usage.
`JmsTransactionManager102(ConnectionFactory connectionFactory, boolean pubSubDomain)` Create a new JmsTransactionManager102, given a ConnectionFactory.

Method Summary
`void` `afterPropertiesSet()` In addition to checking if the connection factory is set, make sure that the supplied connection factory is of the appropriate type for the specified destination type: QueueConnectionFactory for queues, and TopicConnectionFactory for topics.
`protected Connection` `createConnection()` This implementation overrides the superclass method to use JMS 1.0.2 API.
`protected Session` `createSession(Connection con)` This implementation overrides the superclass method to use JMS 1.0.2 API.
`boolean` `isPubSubDomain()` Return whether the Publish/Subscribe domain (Topics) is used.
`void` `setPubSubDomain(boolean pubSubDomain)` Configure the transaction manager with knowledge of the JMS domain used.

Methods inherited from class org.springframework.jms.connection.JmsTransactionManager
`doBegin, doCleanupAfterCompletion, doCommit, doGetTransaction, doResume, doRollback, doSetRollbackOnly, doSuspend, getConnectionFactory, getResourceFactory, isExistingTransaction, setConnectionFactory`

Methods inherited from class org.springframework.transaction.support.AbstractPlatformTransactionManager

`commit, determineTimeout, getDefaultTimeout, getTransaction, getTransactionSynchronization, invokeAfterCompletion, isFailEarlyOnGlobalRollbackOnly, isGlobalRollbackOnParticipationFailure, isNestedTransactionAllowed, isRollbackOnCommitFailure, isValidateExistingTransaction, newTransactionStatus, prepareForCommit, registerAfterCompletionWithExistingTransaction, resume, rollback, setDefaultTimeout, setFailEarlyOnGlobalRollbackOnly, setGlobalRollbackOnParticipationFailure, setNestedTransactionAllowed, setRollbackOnCommitFailure, setTransactionSynchronization, setTransactionSynchronizationName, setValidateExistingTransaction, shouldCommitOnGlobalRollbackOnly, suspend, triggerBeforeCommit, triggerBeforeCompletion, useSavepointForNestedTransaction`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.springframework.transaction.PlatformTransactionManager
`commit, getTransaction, rollback`

Constructor Detail

### JmsTransactionManager102

    public JmsTransactionManager102()

  Create a new JmsTransactionManager102 for bean-style usage.

  Note: The ConnectionFactory has to be set before using the instance. This constructor can be used to prepare a JmsTemplate via a BeanFactory, typically setting the ConnectionFactory via setConnectionFactory.

  See Also:
    `JmsTransactionManager.setConnectionFactory(javax.jms.ConnectionFactory)`

### JmsTransactionManager102

    public JmsTransactionManager102(ConnectionFactory connectionFactory,
                                    boolean pubSubDomain)

  Create a new JmsTransactionManager102, given a ConnectionFactory.

  Parameters:
    `connectionFactory` - the ConnectionFactory to manage transactions for
    `pubSubDomain` - whether the Publish/Subscribe domain (Topics) or Point-to-Point domain (Queues) should be used
  See Also:
    `setPubSubDomain(boolean)`

Method Detail

### setPubSubDomain

    public void setPubSubDomain(boolean pubSubDomain)

  Configure the transaction manager with knowledge of the JMS domain used. This tells the JMS 1.0.2 provider which class hierarchy to use for creating Connections and Sessions.

  Default is Point-to-Point (Queues).

  Parameters:
    `pubSubDomain` - `true` for Publish/Subscribe domain (Topics), `false` for Point-to-Point domain (Queues)

### isPubSubDomain

    public boolean isPubSubDomain()

  Return whether the Publish/Subscribe domain (Topics) is used. Otherwise, the Point-to-Point domain (Queues) is used.

### afterPropertiesSet

    public void afterPropertiesSet()

  In addition to checking if the connection factory is set, make sure that the supplied connection factory is of the appropriate type for the specified destination type: QueueConnectionFactory for queues, and TopicConnectionFactory for topics.

  Specified by:
    `afterPropertiesSet` in interface `InitializingBean`
  Overrides:
    `afterPropertiesSet` in class `JmsTransactionManager`

### createConnection

    protected Connection createConnection()
                                   throws JMSException

  This implementation overrides the superclass method to use JMS 1.0.2 API.

  Overrides:
    `createConnection` in class `JmsTransactionManager`
  Returns:
    the new JMS Connection
  Throws:
    `JMSException` - if thrown by JMS API methods

### createSession

    protected Session createSession(Connection con)
                             throws JMSException

  This implementation overrides the superclass method to use JMS 1.0.2 API.

  Overrides:
    `createSession` in class `JmsTransactionManager`
  Parameters:
    `con` - the JMS Connection to create a Session for
  Returns:
    the new JMS Session
  Throws:
    `JMSException` - if thrown by JMS API methods

The Spring Framework

Copyright © 2002-2008 The Spring Framework.