public void returnConnection( ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) { next.returnConnection(connectionInfo, connectionReturnAction); }
public void destroy() { next.destroy(); }
public void enter(Collection<ConnectionInfo> connectionInfos) throws ResourceException { for (ConnectionInfo connectionInfo : connectionInfos) { next.getConnection(connectionInfo); } }
public void getConnection(ConnectionInfo connectionInfo) throws ResourceException { if (connectionInfo.isUnshareable()) { next.getConnection(connectionInfo); return; } ManagedConnectionInfo managedConnectionInfo = connections.get(); if (managedConnectionInfo != null) { if (matchConnections) { ManagedConnectionInfo mciRequest = connectionInfo.getManagedConnectionInfo(); if (null != managedConnectionInfo.getManagedConnectionFactory().matchManagedConnections( Collections.singleton(managedConnectionInfo.getManagedConnection()), mciRequest.getSubject(), mciRequest.getConnectionRequestInfo() )) { connectionInfo.setManagedConnectionInfo(managedConnectionInfo); return; } else { //match failed, get a new cx after returning this one connections.set(null); next.returnConnection(connectionInfo, ConnectionReturnAction.RETURN_HANDLE); } } else { connectionInfo.setManagedConnectionInfo(managedConnectionInfo); return; } } //nothing for this thread or match failed next.getConnection(connectionInfo); connections.set(connectionInfo.getManagedConnectionInfo()); }
public void info(StringBuilder s) { s.append(getClass().getName()).append("[name=").append(name).append("]\n"); if (next == null) { s.append("<end>"); } else { next.info(s); } }
public void getConnection(ConnectionInfo connectionInfo) throws ResourceException { next.getConnection(connectionInfo); try { ManagedConnectionInfo mci = connectionInfo.getManagedConnectionInfo(); // get the current transation and status... if there is a problem just assume there is no transaction present Transaction transaction = TxUtil.getTransactionIfActive(transactionManager); if (transaction != null) { XAResource xares = mci.getXAResource(); if (log.isTraceEnabled()) { log.trace("Enlisting connection " + connectionInfo + " with XAResource " + xares + " in transaction: " + transaction); } transaction.enlistResource(xares); } else { if (log.isTraceEnabled()) { log.trace("not enlisting connection " + connectionInfo + " with XAResource " + mci.getXAResource() + " no transaction"); } } } catch (SystemException e) { returnConnection(connectionInfo, ConnectionReturnAction.DESTROY); throw new ResourceException("Could not get transaction", e); } catch (RollbackException e) { //transaction is marked rolled back, so the xaresource could not have been enlisted next.returnConnection(connectionInfo, ConnectionReturnAction.RETURN_HANDLE); throw new ResourceException("Could not enlist resource in rolled back transaction", e); } catch (Throwable t) { returnConnection(connectionInfo, ConnectionReturnAction.DESTROY); throw new ResourceException("Unknown throwable when trying to enlist connection in tx", t); } }
public void info(StringBuilder s) { s.append(getClass().getName()).append("[key=").append(key).append("]\n"); if (next == null) { s.append("<end>"); } else { next.info(s); } }
public void returnConnection( ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) { next.returnConnection(connectionInfo, connectionReturnAction); }
public void getConnection(ConnectionInfo connectionInfo) throws ResourceException { Thread currentThread = Thread.currentThread(); ClassLoader oldClassLoader = currentThread.getContextClassLoader(); try { currentThread.setContextClassLoader(classLoader); next.getConnection(connectionInfo); } finally { currentThread.setContextClassLoader(oldClassLoader); } }
public void destroy() { next.destroy(); }
public void info(StringBuilder s) { s.append(getClass().getName()).append("[name=").append(name).append("]\n"); next.info(s); }
public void returnConnection( ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) { next.returnConnection(connectionInfo, connectionReturnAction); }
/** * Called when a proxied connection which has been released need to be reassociated with a real connection. */ public void reassociateConnection(ConnectionInfo connectionInfo) throws ResourceException { connectionTracker.setEnvironment(connectionInfo, key); next.getConnection(connectionInfo); connectionTracker.handleObtained(this, connectionInfo, true); }
public void destroy() { this.next.destroy(); }
public void info(StringBuilder s) { s.append(getClass().getName()).append("[subjectSource=").append(subjectSource).append("]\n"); next.info(s); }
public void returnConnection(ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) { next.returnConnection(connectionInfo, connectionReturnAction); }
/** * called by: GenericConnectionManager.allocateConnection, GenericConnectionManager.associateConnection, and enter. * in: connectionInfo is non-null, and has non-null ManagedConnectionInfo with non-null managedConnectionfactory. * connection handle may or may not be null. * out: connectionInfo has non-null connection handle, non null ManagedConnectionInfo with non-null ManagedConnection and GeronimoConnectionEventListener. * connection tracker has been notified of handle-managed connection association. * @param connectionInfo * @throws ResourceException */ public void getConnection(ConnectionInfo connectionInfo) throws ResourceException { connectionTracker.setEnvironment(connectionInfo, key); next.getConnection(connectionInfo); connectionTracker.handleObtained(this, connectionInfo, false); }
public void destroy() { next.destroy(); }
public void info(StringBuilder s) { s.append(getClass().getName()).append("[classLoader=").append(classLoader).append("]\n"); next.info(s); }
public void returnConnection(ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) { Thread currentThread = Thread.currentThread(); ClassLoader oldClassLoader = currentThread.getContextClassLoader(); try { currentThread.setContextClassLoader(classLoader); next.returnConnection(connectionInfo, connectionReturnAction); } finally { currentThread.setContextClassLoader(oldClassLoader); } }