persistence@glassfish.java.net

Use multiple entitymanagers

From: Benjamin Graf <Benjamin.Graf_at_gmx.net>
Date: Mon, 06 Nov 2006 15:39:39 +0100

Hi everybody,

I have a big problem with using two entitymanagers in the same ejb. Everytime I got a lot of exceptions in my glassfish log-file. It's strating with:
RAR5027:Unexpected exception in resource pooling
java.lang.IllegalStateException: Local transaction already has 1 non-XA Resource: cannot add more resources.
        at com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.enlistResource(J2EETransactionManagerOpt.java:111)
        at com.sun.enterprise.resource.SystemResourceManagerImpl.enlistResource(SystemResourceManagerImpl.java:87)
        at com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.java:214)
        at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:312)
        at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:176)
        at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:152)
        at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:145)
        at com.sun.gjc.spi.DataSource.getConnection(DataSource.java:93)
        at oracle.toplink.essentials.jndi.JNDIConnector.connect(JNDIConnector.java:130)
        at oracle.toplink.essentials.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:170)
        at oracle.toplink.essentials.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:218)
        at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.connect(DatabaseAccessor.java:227)
        at oracle.toplink.essentials.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:294)
        at oracle.toplink.essentials.threetier.ConnectionPool.buildConnection(ConnectionPool.java:102)
        at oracle.toplink.essentials.threetier.ExternalConnectionPool.startUp(ExternalConnectionPool.java:120)
        at oracle.toplink.essentials.threetier.ServerSession.connect(ServerSession.java:448)
        at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:558)
        at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:180)
        at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:230)
        at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:78)
        at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:113)
        at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:84)
        at com.sun.enterprise.util.EntityManagerWrapper._getDelegate(EntityManagerWrapper.java:331)
        at com.sun.enterprise.util.EntityManagerWrapper.persist(EntityManagerWrapper.java:433)

I hope anyone can help me. Maybe it's just an configuration error.

THX Benjamin

-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer