org.objectweb.jonas.jdbc
Class ManagedConnectionImpl

java.lang.Object
  extended byorg.objectweb.jonas.jdbc.ManagedConnectionImpl
All Implemented Interfaces:
javax.resource.spi.LocalTransaction, javax.resource.spi.ManagedConnection

public class ManagedConnectionImpl
extends java.lang.Object
implements javax.resource.spi.ManagedConnection, javax.resource.spi.LocalTransaction

Represent an underlying Connection

Author:
Eric hardesty

Field Summary
protected  java.util.HashSet cels
          Connection Event Listeners
protected  javax.sql.DataSource factory
           
protected  boolean inLocalTransaction
           
protected  java.io.PrintWriter out
           
 org.objectweb.util.monolog.api.Logger trace
           
 
Constructor Summary
ManagedConnectionImpl(ManagedConnectionFactoryImpl _mcf, javax.resource.spi.security.PasswordCredential _pc, java.sql.Connection _con, javax.sql.PooledConnection _pcon, javax.sql.XAConnection _xa, org.objectweb.jonas.jdbc.DriverWrapper wrp)
          Constructor
 
Method Summary
 void addConnectionEventListener(javax.resource.spi.ConnectionEventListener listener)
          Adds a connection event listener.
 void addSignature(long sig)
           
 void associateConnection(java.lang.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()
           
 java.lang.Object getConnection(javax.security.auth.Subject subject, javax.resource.spi.ConnectionRequestInfo cxRequestInfo)
          Create a connection handle for user purpose.
 javax.resource.spi.LocalTransaction getLocalTransaction()
          Returns an javax.resource.spi.LocalTransaction instance.
 java.io.PrintWriter getLogWriter()
          Gets the log writer for this ManagedConnection instance.
 javax.resource.spi.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
 javax.transaction.xa.XAResource getXAResource()
          Get an XAResource to enlist with the Transaction Manager.
 boolean isValid()
          Check if Connection is still valid
 void removeConnectionEventListener(javax.resource.spi.ConnectionEventListener listener)
          Removes an already registered connection event listener from the ManagedConnection instance
 void rollback()
          rollback the local transaction.
 void setAutoCommit(boolean ac)
          set the autocommit
 void setLogWriter(java.io.PrintWriter _out)
          Sets the log writer for this ManagedConnection instance.
 void setSignature(long sig)
           
 void signalEvent(int code, java.lang.Object ch, java.lang.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 java.io.PrintWriter out

factory

protected javax.sql.DataSource factory

cels

protected java.util.HashSet cels
Connection Event Listeners


inLocalTransaction

protected boolean inLocalTransaction
Constructor Detail

ManagedConnectionImpl

public ManagedConnectionImpl(ManagedConnectionFactoryImpl _mcf,
                             javax.resource.spi.security.PasswordCredential _pc,
                             java.sql.Connection _con,
                             javax.sql.PooledConnection _pcon,
                             javax.sql.XAConnection _xa,
                             org.objectweb.jonas.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,
                        java.lang.Object ch,
                        java.lang.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 javax.resource.ResourceException
Returns:
true if autocommit has been set.
Throws:
javax.resource.ResourceException

setAutoCommit

public void setAutoCommit(boolean ac)
                   throws javax.resource.ResourceException
set the autocommit

Throws:
javax.resource.ResourceException - could not set autocommit.

addConnectionEventListener

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

Specified by:
addConnectionEventListener in interface javax.resource.spi.ManagedConnection

removeConnectionEventListener

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

Specified by:
removeConnectionEventListener in interface javax.resource.spi.ManagedConnection

associateConnection

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

Specified by:
associateConnection in interface javax.resource.spi.ManagedConnection
Throws:
javax.resource.ResourceException

cleanup

public void cleanup()
             throws javax.resource.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 javax.resource.spi.ManagedConnection
Throws:
javax.resource.ResourceException - Error while cleaning up.
java.lang.IllegalStateException - A transaction is not ended.

destroy

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

Specified by:
destroy in interface javax.resource.spi.ManagedConnection
Throws:
javax.resource.ResourceException

getConnection

public java.lang.Object getConnection(javax.security.auth.Subject subject,
                                      javax.resource.spi.ConnectionRequestInfo cxRequestInfo)
                               throws javax.resource.ResourceException
Create a connection handle for user purpose.

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

close

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

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

getLocalTransaction

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

Specified by:
getLocalTransaction in interface javax.resource.spi.ManagedConnection
Throws:
javax.resource.ResourceException

getLogWriter

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

Specified by:
getLogWriter in interface javax.resource.spi.ManagedConnection

getMetaData

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

Specified by:
getMetaData in interface javax.resource.spi.ManagedConnection
Throws:
javax.resource.ResourceException

getXAResource

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

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

setLogWriter

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

Specified by:
setLogWriter in interface javax.resource.spi.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 javax.resource.ResourceException
start a new local transaction.

Specified by:
begin in interface javax.resource.spi.LocalTransaction
Throws:
javax.resource.ResourceException

commit

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

Specified by:
commit in interface javax.resource.spi.LocalTransaction
Throws:
javax.resource.ResourceException

rollback

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

Specified by:
rollback in interface javax.resource.spi.LocalTransaction
Throws:
javax.resource.ResourceException

isValid

public boolean isValid()
Check if Connection is still valid