org.apache.activemq.ra
Class ActiveMQManagedConnection

java.lang.Object
  extended by org.apache.activemq.ra.ActiveMQManagedConnection
All Implemented Interfaces:
ExceptionListener, ManagedConnection

public class ActiveMQManagedConnection
extends Object
implements ManagedConnection, ExceptionListener

ActiveMQManagedConnection maps to real physical connection to the server. Since a ManagedConnection has to provide a transaction managment interface to the physical connection, and sessions are the objects implement transaction managment interfaces in the JMS API, this object also maps to a singe physical JMS session.

The side-effect is that JMS connection the application gets will allways create the same session object. This is good if running in an app server since the sessions are elisted in the context transaction. This is bad if used outside of an app server since the user may be trying to create 2 different sessions to coordinate 2 different uow.


Constructor Summary
ActiveMQManagedConnection(Subject subject, ActiveMQConnection physicalConnection, ActiveMQConnectionRequestInfo info)
           
 
Method Summary
 void addConnectionEventListener(ConnectionEventListener listener)
           
 void associate(Subject subject, ActiveMQConnectionRequestInfo info)
           
 void associateConnection(Object connection)
           
 void cleanup()
          Cleans up all proxy handles attached to this physical connection so that they cannot be used anymore.
 void destroy()
          Close down the physical connection to the server.
 Object getConnection(Subject subject, ConnectionRequestInfo info)
           
 LocalTransaction getLocalTransaction()
           
 PrintWriter getLogWriter()
           
 ManagedConnectionMetaData getMetaData()
           
 Connection getPhysicalConnection()
           
 TransactionContext getTransactionContext()
           
 XAResource getXAResource()
           
 boolean isInManagedTx()
           
static boolean matches(Object x, Object y)
           
 boolean matches(Subject subject, ConnectionRequestInfo info)
           
 void onException(JMSException e)
           
 void proxyClosedEvent(ManagedConnectionProxy proxy)
          When a proxy is closed this cleans up the proxy and notifys the ConnectionEventListeners that a connection closed.
 void removeConnectionEventListener(ConnectionEventListener listener)
           
 void setLogWriter(PrintWriter logWriter)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ActiveMQManagedConnection

public ActiveMQManagedConnection(Subject subject,
                                 ActiveMQConnection physicalConnection,
                                 ActiveMQConnectionRequestInfo info)
                          throws ResourceException
Throws:
ResourceException
Method Detail

isInManagedTx

public boolean isInManagedTx()

matches

public static boolean matches(Object x,
                              Object y)

associate

public void associate(Subject subject,
                      ActiveMQConnectionRequestInfo info)
               throws JMSException
Throws:
JMSException

getPhysicalConnection

public Connection getPhysicalConnection()

getConnection

public Object getConnection(Subject subject,
                            ConnectionRequestInfo info)
                     throws ResourceException
Specified by:
getConnection in interface ManagedConnection
Throws:
ResourceException
See Also:
ManagedConnection.getConnection(javax.security.auth.Subject, javax.resource.spi.ConnectionRequestInfo)

destroy

public void destroy()
             throws ResourceException
Close down the physical connection to the server.

Specified by:
destroy in interface ManagedConnection
Throws:
ResourceException
See Also:
ManagedConnection.destroy()

cleanup

public void cleanup()
             throws ResourceException
Cleans up all proxy handles attached to this physical connection so that they cannot be used anymore.

Specified by:
cleanup in interface ManagedConnection
Throws:
ResourceException
See Also:
ManagedConnection.cleanup()

associateConnection

public void associateConnection(Object connection)
                         throws ResourceException
Specified by:
associateConnection in interface ManagedConnection
Throws:
ResourceException
See Also:
ManagedConnection.associateConnection(java.lang.Object)

addConnectionEventListener

public void addConnectionEventListener(ConnectionEventListener listener)
Specified by:
addConnectionEventListener in interface ManagedConnection
See Also:
ManagedConnection.addConnectionEventListener(javax.resource.spi.ConnectionEventListener)

removeConnectionEventListener

public void removeConnectionEventListener(ConnectionEventListener listener)
Specified by:
removeConnectionEventListener in interface ManagedConnection
See Also:
ManagedConnection.removeConnectionEventListener(javax.resource.spi.ConnectionEventListener)

getXAResource

public XAResource getXAResource()
                         throws ResourceException
Specified by:
getXAResource in interface ManagedConnection
Throws:
ResourceException
See Also:
ManagedConnection.getXAResource()

getLocalTransaction

public LocalTransaction getLocalTransaction()
                                     throws ResourceException
Specified by:
getLocalTransaction in interface ManagedConnection
Throws:
ResourceException
See Also:
ManagedConnection.getLocalTransaction()

getMetaData

public ManagedConnectionMetaData getMetaData()
                                      throws ResourceException
Specified by:
getMetaData in interface ManagedConnection
Throws:
ResourceException
See Also:
ManagedConnection.getMetaData()

setLogWriter

public void setLogWriter(PrintWriter logWriter)
                  throws ResourceException
Specified by:
setLogWriter in interface ManagedConnection
Throws:
ResourceException
See Also:
ManagedConnection.setLogWriter(java.io.PrintWriter)

getLogWriter

public PrintWriter getLogWriter()
                         throws ResourceException
Specified by:
getLogWriter in interface ManagedConnection
Throws:
ResourceException
See Also:
ManagedConnection.getLogWriter()

matches

public boolean matches(Subject subject,
                       ConnectionRequestInfo info)
Parameters:
subject - subject to match
info - cri to match
Returns:
whether the subject and cri match sufficiently to allow using this connection under the new circumstances

proxyClosedEvent

public void proxyClosedEvent(ManagedConnectionProxy proxy)
When a proxy is closed this cleans up the proxy and notifys the ConnectionEventListeners that a connection closed.

Parameters:
proxy -

onException

public void onException(JMSException e)
Specified by:
onException in interface ExceptionListener

getTransactionContext

public TransactionContext getTransactionContext()
Returns:
Returns the transactionContext.


Copyright © 2005–2013 The Apache Software Foundation. All rights reserved.