org.ow2.jonas.ee.jdbc
Class ManagedConnectionImpl

java.lang.Object
  extended by org.ow2.jonas.ee.jdbc.ManagedConnectionImpl
All Implemented Interfaces:
LocalTransaction, ManagedConnection

public class ManagedConnectionImpl
extends Object
implements ManagedConnection, LocalTransaction

Represent an underlying Connection

Author:
Eric hardesty

Field Summary
protected  HashSet cels
           
protected  DataSource factory
           
protected  boolean inLocalTransaction
           
protected  PrintWriter out
           
 org.objectweb.util.monolog.api.Logger trace
           
 
Constructor Summary
ManagedConnectionImpl(ManagedConnectionFactoryImpl _mcf, PasswordCredential _pc, Connection _con, PooledConnection _pcon, XAConnection _xa, org.ow2.jonas.ee.jdbc.DriverWrapper wrp)
          Constructor
 
Method Summary
 void addConnectionEventListener(ConnectionEventListener listener)
          Adds a connection event listener.
 void addSignature(long sig)
           
 void associateConnection(Object con)
          Change the association of a connection handle.
 void begin()
          start a new local transaction.
 void cleanup()
          Cleanup the ManagedConnection instance.
 void clearSignature()
           
 void clearSignature(long sig, boolean clear)
           
 void close(ConnectionImpl ch)
          The Connection Handler has been closed by its user.
 void commit()
          commit the local transaction.
 void destroy()
          Destroys the physical connection.
 boolean getAutoCommit()
           
 Object getConnection(Subject subject, ConnectionRequestInfo cxRequestInfo)
          Create a connection handle for user purpose.
 LocalTransaction getLocalTransaction()
          Returns an javax.resource.spi.LocalTransaction instance.
 PrintWriter getLogWriter()
          Gets the log writer for this ManagedConnection instance.
 ManagedConnectionMetaData getMetaData()
          Gets the metadata information for this connection's underlying EIS resource manager instance.
 long getNewSignature(boolean setSig)
          Gets the next signature value
 long getSignature()
          Gets the current signature value
 long getSignature(long sig)
          Gets the signature value passed in if found in the signature hash table
 XAResource getXAResource()
          Get an XAResource to enlist with the Transaction Manager.
 boolean isValid()
          Check if Connection is still valid
 void removeConnectionEventListener(ConnectionEventListener listener)
          Removes an already registered connection event listener from the ManagedConnection instance
 void rollback()
          rollback the local transaction.
 void setAutoCommit(boolean ac)
           
 void setLogWriter(PrintWriter _out)
          Sets the log writer for this ManagedConnection instance.
 void setSignature(long sig)
           
 void signalEvent(int code, Object ch, Exception ex)
          Signal an event to all the registered listeners.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

trace

public org.objectweb.util.monolog.api.Logger trace

out

protected PrintWriter out

factory

protected DataSource factory

cels

protected HashSet cels

inLocalTransaction

protected boolean inLocalTransaction
Constructor Detail

ManagedConnectionImpl

public ManagedConnectionImpl(ManagedConnectionFactoryImpl _mcf,
                             PasswordCredential _pc,
                             Connection _con,
                             PooledConnection _pcon,
                             XAConnection _xa,
                             org.ow2.jonas.ee.jdbc.DriverWrapper wrp)
Constructor

Parameters:
_mcf - The calling factory
_pc - username and password.
_con - physical Connection
_pcon - PooledConnection in case of CP, or null.
_xa - XAConnection in case of XA, or null.
wrp - DriverWrapper in case of DM, or null.
Method Detail

signalEvent

public void signalEvent(int code,
                        Object ch,
                        Exception ex)
Signal an event to all the registered listeners.

Parameters:
code - type of event (CONNECTION_ERROR_OCCURRED, CONNECTION_CLOSED, ...)
ch - may be a connection handler or null.
ex - exception if CONNECTION_ERROR_OCCURRED

getAutoCommit

public boolean getAutoCommit()
                      throws ResourceException
Throws:
ResourceException

setAutoCommit

public void setAutoCommit(boolean ac)
                   throws ResourceException
Throws:
ResourceException

addConnectionEventListener

public void addConnectionEventListener(ConnectionEventListener listener)
Adds a connection event listener.

Specified by:
addConnectionEventListener in interface ManagedConnection

removeConnectionEventListener

public void removeConnectionEventListener(ConnectionEventListener listener)
Removes an already registered connection event listener from the ManagedConnection instance

Specified by:
removeConnectionEventListener in interface ManagedConnection

associateConnection

public void associateConnection(Object con)
                         throws ResourceException
Change the association of a connection handle. Not used.

Specified by:
associateConnection in interface ManagedConnection
Throws:
ResourceException

cleanup

public void cleanup()
             throws ResourceException
Cleanup the ManagedConnection instance. All the Connection Handle should be invalidated. Prepare the CM to be put back in the pool or destroyed.

Specified by:
cleanup in interface ManagedConnection
Throws:
ResourceException - Error while cleaning up.
IllegalStateException - A transaction is not ended.

destroy

public void destroy()
             throws ResourceException
Destroys the physical connection.

Specified by:
destroy in interface ManagedConnection
Throws:
ResourceException

getConnection

public Object getConnection(Subject subject,
                            ConnectionRequestInfo cxRequestInfo)
                     throws ResourceException
Create a connection handle for user purpose.

Specified by:
getConnection in interface ManagedConnection
Returns:
a ConnectionImpl
Throws:
ResourceException - Cannot create Handle

close

public void close(ConnectionImpl ch)
           throws ResourceException
The Connection Handler has been closed by its user.

Parameters:
ch - Connection Handler
Throws:
ResourceException - error while signaling the event to listeners

getLocalTransaction

public LocalTransaction getLocalTransaction()
                                     throws ResourceException
Returns an javax.resource.spi.LocalTransaction instance.

Specified by:
getLocalTransaction in interface ManagedConnection
Throws:
ResourceException

getLogWriter

public PrintWriter getLogWriter()
Gets the log writer for this ManagedConnection instance.

Specified by:
getLogWriter in interface ManagedConnection

getMetaData

public ManagedConnectionMetaData getMetaData()
                                      throws ResourceException
Gets the metadata information for this connection's underlying EIS resource manager instance.

Specified by:
getMetaData in interface ManagedConnection
Throws:
ResourceException

getXAResource

public XAResource getXAResource()
                         throws ResourceException
Get an XAResource to enlist with the Transaction Manager.

Specified by:
getXAResource in interface ManagedConnection
Returns:
the XAResource
Throws:
ResourceException - cannot get it.

setLogWriter

public void setLogWriter(PrintWriter _out)
Sets the log writer for this ManagedConnection instance.

Specified by:
setLogWriter in interface ManagedConnection

addSignature

public void addSignature(long sig)

clearSignature

public void clearSignature()

clearSignature

public void clearSignature(long sig,
                           boolean clear)

setSignature

public void setSignature(long sig)

getSignature

public long getSignature(long sig)
Gets the signature value passed in if found in the signature hash table

Parameters:
sig - value to find in signature table
Returns:
long signature value or 0 if not found

getSignature

public long getSignature()
Gets the current signature value

Returns:
long current signature value

getNewSignature

public long getNewSignature(boolean setSig)
Gets the next signature value

Returns:
long next signature value

begin

public void begin()
           throws ResourceException
start a new local transaction.

Specified by:
begin in interface LocalTransaction
Throws:
ResourceException

commit

public void commit()
            throws ResourceException
commit the local transaction.

Specified by:
commit in interface LocalTransaction
Throws:
ResourceException

rollback

public void rollback()
              throws ResourceException
rollback the local transaction.

Specified by:
rollback in interface LocalTransaction
Throws:
ResourceException

isValid

public boolean isValid()
Check if Connection is still valid



Copyright © 2010 OW2 Consortium. All Rights Reserved.