|
||||||||||
PREV CLASS (src) NEXT CLASS (src) | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jboss.mx.util.JBossNotificationBroadcasterSupport (src) org.jboss.system.ServiceMBeanSupport (src) org.jboss.resource.connectionmanager.BaseConnectionManager2 (src) org.jboss.resource.connectionmanager.TxConnectionManager
The LocalTxConnectionManager is a JBoss ConnectionManager implementation for jca adapters implementing LocalTransaction support. It implements a ConnectionEventListener that implements XAResource to manage transactions through the Transaction Manager. To assure that all work in a local transaction occurs over the same ManagedConnection, it includes a xid to ManagedConnection map. When a Connection is requested or a transaction started with a connection handle in use, it checks to see if a ManagedConnection already exists enrolled in the global transaction and uses it if found. Otherwise a free ManagedConnection has its LocalTransaction started and is used. From the BaseConnectionManager2, it includes functionality to obtain managed connections from a ManagedConnectionPool mbean, find the Subject from a SubjectSecurityDomain, and interact with the CachedConnectionManager for connections held over transaction and method boundaries. Important mbean references are to a ManagedConnectionPool supplier (typically a JBossManagedConnectionPool), and a RARDeployment representing the ManagedConnectionFactory. This connection manager has to perform the following operations: 1. When an application component requests a new ConnectionHandle, it must find a ManagedConnection, and make sure a ConnectionEventListener is registered. It must inform the CachedConnectionManager that a connection handle has been given out. It needs to count the number of handles for each ManagedConnection. If there is a current transaction, it must enlist the ManagedConnection's LocalTransaction in the transaction using the ConnectionEventListeners XAResource XAResource implementation. Entry point: ConnectionManager.allocateConnection. written. 2. When a ConnectionClosed event is received from the ConnectionEventListener, it must reduce the handle count. If the handle count is zero, the XAResource should be delisted from the Transaction, if any. The CachedConnectionManager must be notified that the connection is closed. Entry point: ConnectionEventListener.ConnectionClosed. written 3. When a transaction begun notification is received from the UserTransaction (via the CachedConnectionManager, all managedConnections associated with the current object must be enlisted in the transaction. Entry point: (from CachedConnectionManager) ConnectionCacheListener.transactionStarted(Transaction, Collection). The collection is of ConnectionRecord objects. written. 5. When an "entering object" notification is received from the CachedConnectionInterceptor, all the connections for the current object must be associated with a ManagedConnection. if there is a Transaction, the XAResource must be enlisted with it. Entry point: ConnectionCacheListener.reconnect(Collection conns) The Collection is of ConnectionRecord objects. written. 6. When a "leaving object" notification is received from the CachedConnectionInterceptor, all the managedConnections for the current object must have their XAResources delisted from the current Transaction, if any, and cleanup called on each ManagedConnection. Entry point: ConnectionCacheListener.disconnect(Collection conns). written. Created: Fri Sept 6 11:13:28 2002
Nested Class Summary | |
protected class |
TxConnectionManager.TxConnectionEventListener (src)
|
Nested classes inherited from class org.jboss.resource.connectionmanager.BaseConnectionManager2 (src) |
BaseConnectionManager2.BaseConnectionEventListener (src) , BaseConnectionManager2.ConnectionManagerProxy (src) |
Field Summary |
Fields inherited from class org.jboss.resource.connectionmanager.BaseConnectionManager2 (src) |
jndiName, poolingStrategy, STOPPING_NOTIFICATION, trace |
Fields inherited from class org.jboss.system.ServiceMBeanSupport (src) |
log, server, SERVICE_CONTROLLER_SIG, serviceName |
Fields inherited from interface org.jboss.system.ServiceMBean (src) |
CREATE_EVENT, CREATED, DESTROY_EVENT, DESTROYED, FAILED, REGISTERED, START_EVENT, STARTED, STARTING, states, STOP_EVENT, STOPPED, STOPPING, UNREGISTERED |
Constructor Summary | |
TxConnectionManager()
Default managed LocalTxConnectionManager constructor for mbean instances. |
|
TxConnectionManager(CachedConnectionManager (src) ccm,
ManagedConnectionPool (src) poolingStrategy,
TransactionManager (src) tm)
Creates a new TxConnectionManager instance. |
Method Summary | |
ConnectionListener (src) |
createConnectionListener(ManagedConnection (src) mc,
java.lang.Object context)
Create a managed connection listener for the managed connection |
ConnectionListener (src) |
getManagedConnection(javax.security.auth.Subject subject,
ConnectionRequestInfo (src) cri)
Describe getManagedConnection method here. |
java.lang.String |
getTransactionManager()
Deprecated. use the ObjectName TransactionManagerService instead |
TransactionManager (src) |
getTransactionManagerInstance()
Get the transaction manager |
ObjectName (src) |
getTransactionManagerService()
mbean get-set pair for field transactionManagerService Get the value of transactionManagerService |
boolean |
isLocalTransactions()
mbean get-set pair for field localTransactions Get the value of localTransactions |
boolean |
isTrackConnectionByTx()
mbean get-set pair for field trackConnectionByTx Get the value of trackConnectionByTx |
boolean |
isTransactional()
Determine whether is a transaction |
protected void |
managedConnectionDisconnected(ConnectionListener (src) cl)
For polymorphism. |
protected void |
managedConnectionReconnected(ConnectionListener (src) cl)
For polymorphism. |
void |
setLocalTransactions(boolean localTransactions)
Set the value of localTransactions |
void |
setTrackConnectionByTx(boolean trackConnectionByTx)
Set the value of trackConnectionByTx |
void |
setTransactionManager(java.lang.String tmName)
Deprecated. use the ObjectName TransactionManagerService instead |
void |
setTransactionManagerInstance(TransactionManager (src) tm)
|
void |
setTransactionManagerService(ObjectName (src) transactionManagerService)
Set the value of transactionManagerService |
protected void |
startService()
Sub-classes should override this method to provide custum 'start' logic. |
protected void |
stopService()
Sub-classes should override this method to provide custum 'stop' logic. |
void |
transactionStarted(java.util.Collection crs)
|
Methods inherited from class org.jboss.system.ServiceMBeanSupport (src) |
create, createService, destroy, destroyService, getLog, getName, getNextNotificationSequenceNumber, getObjectName, getServer, getServiceName, getState, getStateString, jbossInternalCreate, jbossInternalDescription, jbossInternalDestroy, jbossInternalLifecycle, jbossInternalStart, jbossInternalStop, postDeregister, postRegister, preDeregister, preRegister, start, stop |
Methods inherited from class org.jboss.mx.util.JBossNotificationBroadcasterSupport (src) |
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public TxConnectionManager()
public TxConnectionManager(CachedConnectionManager (src) ccm, ManagedConnectionPool (src) poolingStrategy, TransactionManager (src) tm)
TxConnectionManager
instance.
for TESTING ONLY!!! not a managed constructor!!
ccm
- a CachedConnectionManager
valuepoolingStrategy
- a ManagedConnectionPool
valuetm
- a TransactionManager
valueMethod Detail |
public ObjectName (src) getTransactionManagerService()
public void setTransactionManagerService(ObjectName (src) transactionManagerService)
transactionManagerService
- Value to assign to transactionManagerServicepublic void setTransactionManager(java.lang.String tmName)
public java.lang.String getTransactionManager()
getTransactionManager
method here.
String
valuepublic TransactionManager (src) getTransactionManagerInstance()
ConnectionListenerFactory (src)
getTransactionManagerInstance
in interface ConnectionListenerFactory (src)
getTransactionManagerInstance
in class BaseConnectionManager2 (src)
public void setTransactionManagerInstance(TransactionManager (src) tm)
public boolean isTrackConnectionByTx()
public void setTrackConnectionByTx(boolean trackConnectionByTx)
trackConnectionByTx
- Value to assign to trackConnectionByTxpublic boolean isLocalTransactions()
public void setLocalTransactions(boolean localTransactions)
localTransactions
- Value to assign to localTransactionsprotected void startService() throws java.lang.Exception
ServiceMBeanSupport (src)
This method is empty, and is provided for convenience when concrete service classes do not need to perform anything specific for this state change.
startService
in class BaseConnectionManager2 (src)
java.lang.Exception
protected void stopService() throws java.lang.Exception
ServiceMBeanSupport (src)
This method is empty, and is provided for convenience when concrete service classes do not need to perform anything specific for this state change.
stopService
in class BaseConnectionManager2 (src)
java.lang.Exception
public ConnectionListener (src) getManagedConnection(javax.security.auth.Subject subject, ConnectionRequestInfo (src) cri) throws ResourceException (src)
BaseConnectionManager2 (src)
getManagedConnection
method here.
Public for use in testing pooling functionality by itself.
called by both allocateConnection and reconnect.
getManagedConnection
in class BaseConnectionManager2 (src)
subject
- a Subject
valuecri
- a ConnectionRequestInfo
value
ManagedConnection
value
ResourceException (src)
- if an error occurspublic void transactionStarted(java.util.Collection crs) throws SystemException (src)
transactionStarted
in interface ConnectionCacheListener (src)
transactionStarted
in class BaseConnectionManager2 (src)
SystemException (src)
protected void managedConnectionReconnected(ConnectionListener (src) cl) throws ResourceException (src)
BaseConnectionManager2 (src)
Do not invoke directly use reconnectManagedConnection which does the relevent exception handling
managedConnectionReconnected
in class BaseConnectionManager2 (src)
ResourceException (src)
protected void managedConnectionDisconnected(ConnectionListener (src) cl) throws ResourceException (src)
BaseConnectionManager2 (src)
Do not invoke directly use disconnectManagedConnection which does the relevent exception handling
managedConnectionDisconnected
in class BaseConnectionManager2 (src)
ResourceException (src)
public ConnectionListener (src) createConnectionListener(ManagedConnection (src) mc, java.lang.Object context) throws ResourceException (src)
ConnectionListenerFactory (src)
mc
- the managed connectioncontext
- a context object used by the pool
ResourceException (src)
- for any errorpublic boolean isTransactional()
ConnectionListenerFactory (src)
isTransactional
in interface ConnectionListenerFactory (src)
isTransactional
in class BaseConnectionManager2 (src)
|
||||||||||
PREV CLASS (src) NEXT CLASS (src) | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |