Search in sources :

Example 66 with ManagedConnection

use of javax.resource.spi.ManagedConnection in project cxf by apache.

the class DummyManagedConnectionFactoryImpl method testMatchConnectionSameConnectioRequestInfoNotBound.

@Test
public void testMatchConnectionSameConnectioRequestInfoNotBound() throws Exception {
    Subject subject = null;
    Set<AbstractManagedConnectionImpl> connectionSet = new HashSet<>();
    ConnectionRequestInfo cri = new DummyConnectionRequestInfo();
    DummyManagedConnectionImpl con1 = new DummyManagedConnectionImpl(mcf, cri, subject);
    connectionSet.add(con1);
    ManagedConnection mcon = mcf.matchManagedConnections(connectionSet, subject, cri);
    assertEquals(con1, mcon);
}
Also used : ManagedConnection(javax.resource.spi.ManagedConnection) Subject(javax.security.auth.Subject) ConnectionRequestInfo(javax.resource.spi.ConnectionRequestInfo) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 67 with ManagedConnection

use of javax.resource.spi.ManagedConnection in project cxf by apache.

the class DefaultConnectionManager method allocateConnection.

/* -------------------- ConnectionManager Methods ----------------------------
     */
public Object allocateConnection(ManagedConnectionFactory mcf, ConnectionRequestInfo cxRequestInfo) throws ResourceException {
    if (LOG.isLoggable(Level.FINEST)) {
        LOG.finest("allocateConnection cxRequestInfo = " + cxRequestInfo);
    }
    ManagedConnection mc = mcf.createManagedConnection(null, cxRequestInfo);
    mc.addConnectionEventListener(this);
    return mc.getConnection(null, cxRequestInfo);
}
Also used : ManagedConnection(javax.resource.spi.ManagedConnection)

Example 68 with ManagedConnection

use of javax.resource.spi.ManagedConnection in project cxf by apache.

the class OutBoundConnectionTest method testBasicConnection.

@Test
@org.junit.Ignore
public void testBasicConnection() throws Exception {
    URL wsdl = getClass().getResource("/wsdl/hello_world.wsdl");
    assertNotNull(wsdl);
    SOAPService service = new SOAPService(wsdl, serviceName);
    assertNotNull(service);
    CXFConnectionRequestInfo cri = new CXFConnectionRequestInfo(Greeter.class, wsdl, service.getServiceName(), portName);
    cri.setAddress("http://localhost:" + PORT + "/SoapContext/SoapPort");
    ManagedConnectionFactory managedFactory = new ManagedConnectionFactoryImpl();
    Subject subject = new Subject();
    ManagedConnection mc = managedFactory.createManagedConnection(subject, cri);
    Object o = mc.getConnection(subject, cri);
    // test for the Object hash()
    try {
        o.hashCode();
        o.toString();
    } catch (WebServiceException ex) {
        fail("The connection object should support Object method");
    }
    verifyResult(o);
}
Also used : SOAPService(org.apache.hello_world_soap_http.SOAPService) ManagedConnectionFactory(javax.resource.spi.ManagedConnectionFactory) WebServiceException(javax.xml.ws.WebServiceException) CXFConnectionRequestInfo(org.apache.cxf.jca.cxf.CXFConnectionRequestInfo) ManagedConnectionFactoryImpl(org.apache.cxf.jca.cxf.ManagedConnectionFactoryImpl) ManagedConnection(javax.resource.spi.ManagedConnection) URL(java.net.URL) Subject(javax.security.auth.Subject) Test(org.junit.Test)

Example 69 with ManagedConnection

use of javax.resource.spi.ManagedConnection in project Payara by payara.

the class Resizer method validateAndRemoveResource.

protected int validateAndRemoveResource(ResourceHandle handle, Set invalidConnections) {
    int invalidConnectionsCount = 0;
    for (Object o : invalidConnections) {
        ManagedConnection invalidConnection = (ManagedConnection) o;
        if (invalidConnection.equals(handle.getResource())) {
            dataStructure.removeResource(handle);
            handler.invalidConnectionDetected(handle);
            invalidConnectionsCount++;
        }
    }
    return invalidConnectionsCount;
}
Also used : ManagedConnection(javax.resource.spi.ManagedConnection)

Example 70 with ManagedConnection

use of javax.resource.spi.ManagedConnection in project Payara by payara.

the class LazyEnlistableResourceManagerImpl method lazyEnlist.

/**
 * This is called by the PoolManager (in turn by the LazyEnlistableConnectionManager)
 * when a lazy enlistment is sought.
 * @param mc ManagedConnection
 * @throws ResourceException
 */
public void lazyEnlist(ManagedConnection mc) throws ResourceException {
    if (_logger.isLoggable(Level.FINE)) {
        _logger.fine("Entering lazyEnlist");
    }
    // J2EETransactionManager tm = Switch.getSwitch().getTransactionManager();
    JavaEETransactionManager tm = ConnectorRuntime.getRuntime().getTransactionManager();
    Transaction tran = null;
    try {
        tran = tm.getTransaction();
        if (tran == null) {
            if (_logger.isLoggable(Level.FINE)) {
                _logger.fine(" Transaction null - not enlisting ");
            }
            return;
        }
    } catch (SystemException se) {
        ResourceException re = new ResourceException(se.getMessage());
        re.initCause(se);
        throw re;
    }
    // List invList = Switch.getSwitch().getInvocationManager().getAllInvocations();
    List invList = ConnectorRuntime.getRuntime().getInvocationManager().getAllInvocations();
    ResourceHandle h = null;
    for (int j = invList.size(); j > 0; j--) {
        ComponentInvocation inv = (ComponentInvocation) invList.get(j - 1);
        Object comp = inv.getInstance();
        List l = tm.getResourceList(comp, inv);
        ListIterator it = l.listIterator();
        while (it.hasNext()) {
            ResourceHandle hand = (ResourceHandle) it.next();
            ManagedConnection toEnlist = (ManagedConnection) hand.getResource();
            if (mc.equals(toEnlist)) {
                h = hand;
                break;
            }
        }
    }
    // The other case might or might not work
    if (h != null && h.getResourceState().isUnenlisted()) {
        try {
            // Enable the suspended lazyenlistment so as to enlist the resource.
            h.setEnlistmentSuspended(false);
            tm.enlistResource(tran, h);
            // Suspend it back
            h.setEnlistmentSuspended(true);
        } catch (Exception e) {
            // In the rare cases where enlistResource throws exception, we
            // should report the resource to the pool as bad
            PoolManager mgr = ConnectorRuntime.getRuntime().getPoolManager();
            mgr.putbackBadResourceToPool(h);
            _logger.log(Level.WARNING, "poolmgr.err_enlisting_res_in_getconn", h.getResourceSpec().getPoolInfo());
            if (_logger.isLoggable(Level.FINE)) {
                _logger.fine("rm.enlistResource threw Exception. Evicting resource from pool");
            }
            // and rethrow the exception
            throw new ResourceException(e);
        }
    }
}
Also used : ComponentInvocation(org.glassfish.api.invocation.ComponentInvocation) JavaEETransactionManager(com.sun.enterprise.transaction.api.JavaEETransactionManager) ListIterator(java.util.ListIterator) PoolManager(com.sun.enterprise.resource.pool.PoolManager) PoolingException(com.sun.appserv.connectors.internal.api.PoolingException) ResourceException(javax.resource.ResourceException) ResourceHandle(com.sun.enterprise.resource.ResourceHandle) ResourceException(javax.resource.ResourceException) List(java.util.List) ManagedConnection(javax.resource.spi.ManagedConnection)

Aggregations

ManagedConnection (javax.resource.spi.ManagedConnection)73 Test (org.junit.Test)24 ResourceException (javax.resource.ResourceException)20 XAResource (javax.transaction.xa.XAResource)17 Iterator (java.util.Iterator)16 PoolingException (com.sun.appserv.connectors.internal.api.PoolingException)13 SystemException (javax.transaction.SystemException)11 Subject (javax.security.auth.Subject)10 Xid (javax.transaction.xa.Xid)9 HashSet (java.util.HashSet)8 Transaction (javax.transaction.Transaction)7 ManagedConnectionFactory (javax.resource.spi.ManagedConnectionFactory)6 RollbackException (javax.transaction.RollbackException)6 ResourceHandle (com.sun.enterprise.resource.ResourceHandle)5 Connection (java.sql.Connection)5 NamingException (javax.naming.NamingException)5 ConnectionRequestInfo (javax.resource.spi.ConnectionRequestInfo)5 ResourceAllocationException (javax.resource.spi.ResourceAllocationException)5 XAException (javax.transaction.xa.XAException)5 ArrayList (java.util.ArrayList)4