com.atomikos.jms
Class JtaTopicConnectionFactory

java.lang.Object
  extended by com.atomikos.jms.JtaTopicConnectionFactory
All Implemented Interfaces:
javax.jms.ConnectionFactory, javax.jms.TopicConnectionFactory, Referenceable

public class JtaTopicConnectionFactory
extends Object
implements javax.jms.TopicConnectionFactory, Referenceable

A connection factory that couples JMS topic sends/receives to JTA transactions. Use this class only if you need to do explicit resource registration with the transaction service (i.e., when the underlying vendor-specific XAResource implementation is not fully compliant with the JTA/XA specifications, or if you want to force recovery at TM startup time). In all other cases, the TopicConnectionFactoryBean class is preferred over this one.

Use this class if you want to make topic send/receive operations within the scope of a JTA transaction. This class requires explicit resource registration with the transaction service: you need to explicitly call getTransactionalResource() and register the result with the UserTransactionService:

XATopicConnectionFactory xafactory = ... //vendor-specific code
JtaTopicConnectionFactory factory =
new JtaTopicConnectionFactory ( xafactory );
com.atomikos.datasource.TransactionalResource resource = factory.getTransactionalResource();
com.atomikos.icatch.UserTransactionService uts = new com.atomikos.icatch.UserTransactionServiceImp();
uts.registerResource ( resource );

Topic functionality in this product was sponsored by Webtide.


Constructor Summary
JtaTopicConnectionFactory(String resourceName, javax.jms.XATopicConnectionFactory factory)
          Create a new instance with a given JMS vendor-supplied xa connection factory.
JtaTopicConnectionFactory(String resourceName, javax.jms.XATopicConnectionFactory tFactory, XidFactory xFactory)
          Create a new instance with a given JMS vendor-supplied xa connection factory, and a specific XidFactory.
 
Method Summary
 javax.jms.Connection createConnection()
          Creates a default connection.
 javax.jms.Connection createConnection(String userName, String password)
          Creates a default connection for the given user and password.
 javax.jms.TopicConnection createTopicConnection()
          Creates a default topic connection.
 javax.jms.TopicConnection createTopicConnection(String userName, String password)
          Creates a topic connection for the given user and password.
 Reference getReference()
           
 JmsTransactionalResource getTransactionalResource()
          Gets the transactional resource created during initialization.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JtaTopicConnectionFactory

public JtaTopicConnectionFactory(String resourceName,
                                 javax.jms.XATopicConnectionFactory factory)
Create a new instance with a given JMS vendor-supplied xa connection factory.

Parameters:
resourceName - The unique name for the transactional resource that will be created.
factory - The JMS vendor-supplied xa connection factory.

JtaTopicConnectionFactory

public JtaTopicConnectionFactory(String resourceName,
                                 javax.jms.XATopicConnectionFactory tFactory,
                                 XidFactory xFactory)
Create a new instance with a given JMS vendor-supplied xa connection factory, and a specific XidFactory.

Parameters:
resourceName - The unique name for the transactional resource that will be created.
tFactory - The JMS vendor-supplied xa connection factory.
xFactory - The XidFactory.
Method Detail

getTransactionalResource

public JmsTransactionalResource getTransactionalResource()
Gets the transactional resource created during initialization.

Returns:
JmsTransactionalResource The resource. This should be added to the transaction service's recoverable resources.

createTopicConnection

public javax.jms.TopicConnection createTopicConnection()
                                                throws javax.jms.JMSException
Creates a default topic connection.

Specified by:
createTopicConnection in interface javax.jms.TopicConnectionFactory
Throws:
javax.jms.JMSException

createTopicConnection

public javax.jms.TopicConnection createTopicConnection(String userName,
                                                       String password)
                                                throws javax.jms.JMSException
Creates a topic connection for the given user and password.

Specified by:
createTopicConnection in interface javax.jms.TopicConnectionFactory
Throws:
javax.jms.JMSException

createConnection

public javax.jms.Connection createConnection()
                                      throws javax.jms.JMSException
Creates a default connection.

Specified by:
createConnection in interface javax.jms.ConnectionFactory
Throws:
javax.jms.JMSException

createConnection

public javax.jms.Connection createConnection(String userName,
                                             String password)
                                      throws javax.jms.JMSException
Creates a default connection for the given user and password.

Specified by:
createConnection in interface javax.jms.ConnectionFactory
Throws:
javax.jms.JMSException

getReference

public Reference getReference()
                       throws NamingException
Specified by:
getReference in interface Referenceable
Throws:
NamingException


Copyright © 2011. All Rights Reserved.