Class ActiveMQRAManagedConnection

java.lang.Object
org.apache.activemq.artemis.ra.ActiveMQRAManagedConnection
All Implemented Interfaces:
ExceptionListener, ManagedConnection

public final class ActiveMQRAManagedConnection extends Object implements ManagedConnection, ExceptionListener
  • Constructor Details

  • Method Details

    • getConnection

      public Object getConnection(Subject subject, ConnectionRequestInfo cxRequestInfo) throws ResourceException

      Creates a new connection handle for the underlying physical connection represented by the ManagedConnection instance. This connection handle is used by the application code to refer to the underlying physical connection. This connection handle is associated with its ManagedConnection instance in a resource adapter implementation specific way.

      The ManagedConnection uses the Subject and additional ConnectionRequest Info (which is specific to resource adapter and opaque to application server) to set the state of the physical connection.

      Specified by:
      getConnection in interface ManagedConnection
      Parameters:
      subject - security context as JAAS subject
      cxRequestInfo - ConnectionRequestInfo instance
      Returns:
      generic Object instance representing the connection handle. For CCI, the connection handle created by a ManagedConnection instance is of the type jakarta.resource.cci.Connection.
      Throws:
      ResourceException - generic exception if operation fails
      ResourceAdapterInternalException - resource adapter internal error condition
      SecurityException - security related error condition
      CommException - failed communication with EIS instance
      EISSystemException - internal error condition in EIS instance - used if EIS instance is involved in setting state of ManagedConnection
    • destroy

      public void destroy() throws ResourceException
      Destroys the physical connection to the underlying resource manager.

      To manage the size of the connection pool, an application server can explicitly call ManagedConnection.destroy to destroy a physical connection. A resource adapter should destroy all allocated system resources for this ManagedConnection instance when the method destroy is called.

      Specified by:
      destroy in interface ManagedConnection
      Throws:
      ResourceException - generic exception if operation failed
      IllegalStateException - illegal state for destroying connection
    • cleanup

      public void cleanup() throws ResourceException
      Application server calls this method to force any cleanup on the ManagedConnection instance.

      The method ManagedConnection.cleanup initiates a cleanup of the any client-specific state as maintained by a ManagedConnection instance. The cleanup should invalidate all connection handles that had been created using this ManagedConnection instance. Any attempt by an application component to use the connection handle after cleanup of the underlying ManagedConnection should result in an exception.

      The cleanup of ManagedConnection is always driven by an application server. An application server should not invoke ManagedConnection.cleanup when there is an uncompleted transaction (associated with a ManagedConnection instance) in progress.

      The invocation of ManagedConnection.cleanup method on an already cleaned-up connection should not throw an exception.

      The cleanup of ManagedConnection instance resets its client specific state and prepares the connection to be put back in to a connection pool. The cleanup method should not cause resource adapter to close the physical pipe and reclaim system resources associated with the physical connection.

      Specified by:
      cleanup in interface ManagedConnection
      Throws:
      ResourceException - generic exception if operation fails
      ResourceAdapterInternalException - resource adapter internal error condition
      IllegalStateException - Illegal state for calling connection cleanup. Example - if a local transaction is in progress that doesn't allow connection cleanup
    • associateConnection

      public void associateConnection(Object obj) throws ResourceException
      Used typically by the container to change the association of an application-level connection handle with a ManagedConnection instance. The container should find the right ManagedConnection instance and call the associateConnection method. In order to set a Connection Handle as the active connection handle, the container may also use the associateConnection method to set the same ManagedConnection associated with the Connection handle.

      The resource adapter is required to implement the associateConnection method. The method implementation for a ManagedConnection should dissociate the connection handle (passed as a parameter) from its currently associated ManagedConnection and associate the new connection handle with itself.

      Specified by:
      associateConnection in interface ManagedConnection
      Parameters:
      obj - Application-level connection handle
      Throws:
      ResourceException - Failed to associate the connection handle with this ManagedConnection instance
      IllegalStateException - Illegal state for invoking this method
      ResourceAdapterInternalException - Resource adapter internal error condition
    • checkTransactionActive

      public void checkTransactionActive() throws JMSException
      Throws:
      JMSException
    • lock

      protected void lock()
      Aqquire a lock on the managed connection
    • tryLock

      protected void tryLock() throws JMSException
      Aqquire a lock on the managed connection within the specified period
      Throws:
      JMSException - Thrown if an error occurs
    • unlock

      protected void unlock()
      Unlock the managed connection
    • addConnectionEventListener

      public void addConnectionEventListener(ConnectionEventListener l)
      Adds a connection event listener to the ManagedConnection instance.

      The registered ConnectionEventListener instances are notified of connection close and error events, also of local transaction related events on the Managed Connection.

      Specified by:
      addConnectionEventListener in interface ManagedConnection
      Parameters:
      l - a new ConnectionEventListener to be registered
    • removeConnectionEventListener

      public void removeConnectionEventListener(ConnectionEventListener l)
      Removes an already registered connection event listener from the ManagedConnection instance.
      Specified by:
      removeConnectionEventListener in interface ManagedConnection
      Parameters:
      l - already registered connection event listener to be removed
    • getXAResource

      public XAResource getXAResource() throws ResourceException
      Returns an javax.transaction.xa.XAresource instance. An application server enlists this XAResource instance with the Transaction Manager if the ManagedConnection instance is being used in a Jakarta Transactions transaction that is being coordinated by the Transaction Manager.
      Specified by:
      getXAResource in interface ManagedConnection
      Returns:
      XAResource instance
      Throws:
      ResourceException - generic exception if operation fails
      ResourceAdapterInternalException - resource adapter internal error condition
      NotSupportedException - if this is not supported by the connector
    • getLocalTransaction

      public LocalTransaction getLocalTransaction() throws ResourceException
      Returns an jakarta.resource.spi.LocalTransaction instance. The LocalTransaction interface is used by the container to manage local transactions for a RM instance.
      Specified by:
      getLocalTransaction in interface ManagedConnection
      Returns:
      LocalTransaction instance
      Throws:
      ResourceException - generic exception if operation fails
      ResourceAdapterInternalException - resource adapter internal error condition
      NotSupportedException - if this is not supported by the Connector
    • getMetaData

      public ManagedConnectionMetaData getMetaData() throws ResourceException

      Gets the metadata information for this connection's underlying EIS resource manager instance. The ManagedConnectionMetaData interface provides information about the underlying EIS instance associated with the ManagedConenction instance.

      Specified by:
      getMetaData in interface ManagedConnection
      Returns:
      ManagedConnectionMetaData instance
      Throws:
      ResourceException - generic exception if operation fails
      NotSupportedException - if this is not supported by the Connector
    • setLogWriter

      public void setLogWriter(PrintWriter out) throws ResourceException
      NOT SUPPORTED

      Sets the log writer for this ManagedConnection instance.

      The log writer is a character output stream to which all logging and tracing messages for this ManagedConnection instance will be printed. Application Server manages the association of output stream with the ManagedConnection instance based on the connection pooling requirements.

      When a ManagedConnection object is initially created, the default log writer associated with this instance is obtained from the ManagedConnectionFactory. An application server can set a log writer specific to this ManagedConnection to log/trace this instance using setLogWriter method.

      Specified by:
      setLogWriter in interface ManagedConnection
      Parameters:
      out - Character Output stream to be associated
      Throws:
      ResourceException - generic exception if operation fails
      ResourceAdapterInternalException - resource adapter related error condition
    • getLogWriter

      public PrintWriter getLogWriter() throws ResourceException
      NOT SUPPORTED

      Gets the log writer for this ManagedConnection instance.

      The log writer is a character output stream to which all logging and tracing messages for this ManagedConnection instance will be printed. ConnectionManager manages the association of output stream with the ManagedConnection instance based on the connection pooling requirements.

      The Log writer associated with a ManagedConnection instance can be one set as default from the ManagedConnectionFactory (that created this connection) or one set specifically for this instance by the application server.

      Specified by:
      getLogWriter in interface ManagedConnection
      Returns:
      Character ourput stream associated with this Managed- Connection instance
      Throws:
      ResourceException - generic exception if operation fails
    • onException

      public void onException(JMSException exception)
      Notifies user of a Jakarta Messaging exception.
      Specified by:
      onException in interface ExceptionListener
      Parameters:
      exception - the Jakarta Messaging exception
    • getSession

      protected Session getSession() throws JMSException
      Throws:
      JMSException
    • sendEvent

      protected void sendEvent(ConnectionEvent event)
    • removeHandle

      protected void removeHandle(ActiveMQRASession handle)
    • getCRI

      protected ActiveMQRAConnectionRequestInfo getCRI()
      Get the request info for this connection.
      Returns:
      The connection request info for this connection
    • getManagedConnectionFactory

      protected ActiveMQRAManagedConnectionFactory getManagedConnectionFactory()
    • getUserName

      protected String getUserName()
    • setInManagedTx

      protected void setInManagedTx(boolean inManagedTx)
    • getConnectionFactory

      public ActiveMQConnectionFactory getConnectionFactory()