public void returnConnection( ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) { ManagedConnectionInfo mci = connectionInfo.getManagedConnectionInfo(); ConnectionInterceptor poolInterceptor = mci.getPoolInterceptor(); poolInterceptor.returnConnection(connectionInfo, connectionReturnAction); }
public void destroy() { destroyed = true; if (idleReleaser != null) idleReleaser.cancel(); internalDestroy(); next.destroy(); }
public FillTask(ConnectionInfo connectionInfo) { managedConnectionFactory = connectionInfo.getManagedConnectionInfo().getManagedConnectionFactory(); subject = connectionInfo.getManagedConnectionInfo().getSubject(); cri = connectionInfo.getManagedConnectionInfo().getConnectionRequestInfo(); }
/** * in: connectionInfo not null, managedConnectionInfo not null, managedConnection not null. Handle can be null if mc is being destroyed from pool. * out: managedCOnnectionInfo null, handle not in mci.handles. * @param connectionInfo * @param connectionReturnAction */ public void returnConnection(ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) { if (connectionInfo.getConnectionHandle() != null) { connectionInfo.getManagedConnectionInfo().removeConnectionHandle( connectionInfo); } next.returnConnection(connectionInfo, connectionReturnAction); }
public NamedXAResource getNamedXAResource() throws SystemException { try { ManagedConnectionInfo mci = new ManagedConnectionInfo(managedConnectionFactory, null); ConnectionInfo recoveryConnectionInfo = new ConnectionInfo(mci); recoveryStack.getConnection(recoveryConnectionInfo); // For pooled resources, we may now have a new MCI (not the one constructed above). Make sure we use the correct MCI return new NamedXAResourceWithConnectioninfo((NamedXAResource) recoveryConnectionInfo.getManagedConnectionInfo().getXAResource(), recoveryConnectionInfo); } catch (ResourceException e) { throw (SystemException) new SystemException("Could not get XAResource for recovery for mcf: " + name).initCause(e); } }
public void getConnection(ConnectionInfo connectionInfo) throws ResourceException { next.getConnection(connectionInfo); ManagedConnectionInfo mci = connectionInfo.getManagedConnectionInfo(); mci.setXAResource( new LocalXAResource(mci.getManagedConnection().getLocalTransaction(), name)); }
public void returnConnection(ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) { if (connectionReturnAction == ConnectionReturnAction.DESTROY || connectionInfo.isUnshareable() || !connectionInfo.getManagedConnectionInfo().hasConnectionHandles()) { if (connections.get() == connectionInfo.getManagedConnectionInfo()) { connections.remove(); } next.returnConnection(connectionInfo, connectionReturnAction); } }
private void internalReturn(ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) { if (connectionInfo.getManagedConnectionInfo().hasConnectionHandles()) { if (log.isTraceEnabled()) { log.trace("not returning connection from tx cache (has handles) " + infoString(connectionInfo)); } return; } //No transaction, no handles, we return it. next.returnConnection(connectionInfo, connectionReturnAction); if (log.isTraceEnabled()) { log.trace("completed return of connection through tx cache " + infoString(connectionInfo)); } }
/** * in: non-null connection object, from non-null mcf. * connection object is not associated with a managed connection * out: supplied connection object is assiciated with a non-null ManagedConnection from mcf. */ public void associateConnection(Object connection, ManagedConnectionFactory managedConnectionFactory, ConnectionRequestInfo connectionRequestInfo) throws ResourceException { ManagedConnectionInfo mci = new ManagedConnectionInfo(managedConnectionFactory, connectionRequestInfo); ConnectionInfo ci = new ConnectionInfo(mci); ci.setConnectionHandle(connection); getStack().getConnection(ci); }
private void returnHandle(ManagedConnectionInfo managedConnectionInfo) { ConnectionInfo connectionInfo = new ConnectionInfo(); connectionInfo.setManagedConnectionInfo(managedConnectionInfo); internalReturn(connectionInfo, ConnectionReturnAction.RETURN_HANDLE); }
public ConnectionInterceptor addTransactionInterceptors(ConnectionInterceptor stack, TransactionManager transactionManager) { //experimental thread local caching if (isUseThreadCaching()) { //useMatching should be configurable stack = new ThreadLocalCachingConnectionInterceptor(stack, false); } stack = new TransactionEnlistingInterceptor(stack, transactionManager); if (isUseTransactionCaching()) { stack = new TransactionCachingInterceptor(stack, transactionManager); } return stack; }
protected void transferConnections(int maxSize, int shrinkNow) { for (int i = 0; i < shrinkNow; i++) { ConnectionInfo killInfo = new ConnectionInfo(pool.get(0)); internalReturn(killInfo, ConnectionReturnAction.DESTROY); } }
public void returnNamedXAResource(NamedXAResource namedXAResource) { NamedXAResourceWithConnectioninfo xares = (NamedXAResourceWithConnectioninfo) namedXAResource; recoveryStack.returnConnection(xares.getConnectionInfo(), ConnectionReturnAction.DESTROY); }
public void destroy() throws Exception { if (connectionManager != null) { connectionManager.doStop(); connectionManager = null; } }
public void returnConnection( ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) { next.returnConnection(connectionInfo, connectionReturnAction); }
public void doRecovery() { if (!getIsRecoverable()) { return; } transactionManager.registerNamedXAResourceFactory(new OutboundNamedXAResourceFactory(name, getRecoveryStack(), managedConnectionFactory)); }
public ConnectionInterceptor addTransactionInterceptors(ConnectionInterceptor stack, TransactionManager transactionManager) { stack = new TransactionEnlistingInterceptor(stack, transactionManager); return new TransactionCachingInterceptor(stack, transactionManager); }
public void setIdleTimeoutMinutes(int idleTimeoutMinutes) { this.idleTimeoutMinutes = idleTimeoutMinutes; if (pool != null) { pool.setIdleTimeoutMinutes(idleTimeoutMinutes); } }
public void returnConnection( ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) { next.returnConnection(connectionInfo, connectionReturnAction); }
public ConnectionInterceptor addTransactionInterceptors(ConnectionInterceptor stack, TransactionManager transactionManager) { stack = new TransactionEnlistingInterceptor(stack, transactionManager); return new TransactionCachingInterceptor(stack, transactionManager); }