Hi All,

I'm using Tomee latest snapshot (from yesterday) with JSF and Deltaspike .5.
All on Apache stack with Hibernate 4.2.7.sp1

I have a view scoped bean that gets called from from UI, then it saves to
DB, and calls an EJB async. I get below error if I click fast enough on link
from UI. 

I also get the same pooledConnection error if I load pages in certain pages.
I cannot isolate what's the problem. I spent 2 days on it already.
Appreciate your help.

Sample code:

@ViewScoped
@Named
public class WallComponent implements Serializable {

@Inject
private EntityManager em;

@Inject
private SocialNotificationHandler notificationHandler;

@Transactional
public void saveLlikeAction(){

em.persist(new LikeObject(memInfo));
notificationHandler.handleAsyncSocialLike(memId);

}

}


@Singleton
public class SocialNotificationHandler implements Serializable {

@PersistenceContext(unitName = PersistenceConfiguration.UNIT_NAME)
private EntityManager entityManager;

        @Asynchronous
        public void handleAsyncSocialLike(UUID memId) {

                        MemberSocialNotification notification = new
MemberSocialNotification(memId);
                        entityManager.persist(notification);


        }

}


public class PersistenceConfiguration implements Serializable {
        public static final String UNIT_NAME = "PU";

        @PersistenceUnit(unitName = UNIT_NAME)
        private EntityManagerFactory entityManagerFactory;

        @Produces
        @RequestScoped
        @Default
        public EntityManager createEntityManager() {
                return entityManagerFactory.createEntityManager();
        }

        public void closeEntityManager(@Disposes final EntityManager em) {
                if (em.isOpen()) // this check is optional -not needed if 
#close doesn't
get called by the transactional bean
                {
                        em.close();
                }
        }
}



javax.transaction.xa.XAException
        at
org.apache.openejb.resource.jdbc.managed.local.LocalXAResource.rollback(LocalXAResource.java:160)
        at
org.apache.geronimo.transaction.manager.RollbackTask.run(RollbackTask.java:64)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.rollbackResources(TransactionImpl.java:599)
        at
org.apache.geronimo.transaction.manager.TransactionImpl.rollback(TransactionImpl.java:498)
        at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.rollback(TransactionManagerImpl.java:265)
        at
org.apache.openejb.core.transaction.JtaTransactionPolicy.rollbackTransaction(JtaTransactionPolicy.java:370)
        at
org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java:320)
        at
org.apache.openejb.core.transaction.TxRequired.commit(TxRequired.java:75)
        at
org.apache.openejb.core.transaction.EjbTransactionUtil.afterInvoke(EjbTransactionUtil.java:76)
        at
org.apache.openejb.core.singleton.SingletonContainer._invoke(SingletonContainer.java:251)
        at
org.apache.openejb.core.singleton.SingletonContainer.invoke(SingletonContainer.java:197)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:268)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler$1.call(EjbObjectProxyHandler.java:253)
        at
org.apache.openejb.async.AsynchronousPool$AsynchronousCall.call(AsynchronousPool.java:110)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: PooledConnection has already been closed.
        at
org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:86)
        at $Proxy87.rollback(Unknown Source)
        at
org.apache.openejb.resource.jdbc.managed.local.LocalXAResource.rollback(LocalXAResource.java:158)
        ... 18 more



A second error caused by something else but the same root cause:

INFO: HHH000327: Error performing load command :
org.hibernate.exception.GenericJDBCException: could not prepare statement
Nov 8, 2013 7:46:51 PM
org.apache.openejb.core.transaction.EjbTransactionUtil handleSystemException
SEVERE: EjbTransactionUtil.handleSystemException: could not prepare
statement
org.hibernate.exception.GenericJDBCException: could not prepare statement
        at
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
        at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
        at
org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:188)
        at
org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:159)
        at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1859)
        at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1836)
        at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1816)
        at org.hibernate.loader.Loader.doQuery(Loader.java:900)
        at
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:342)
        at
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:312)
        at org.hibernate.loader.Loader.loadCollectionBatch(Loader.java:2272)
        at
org.hibernate.loader.collection.LegacyBatchingCollectionInitializerBuilder$LegacyBatchingCollectionInitializer.initialize(LegacyBatchingCollectionInitializerBuilder.java:95)
        at
org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:674)
        at
org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:85)
        at
org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:1855)
        at
org.hibernate.collection.internal.AbstractPersistentCollection.forceInitialization(AbstractPersistentCollection.java:681)
        at
org.hibernate.engine.internal.StatefulPersistenceContext.initializeNonLazyCollections(StatefulPersistenceContext.java:1030)
        at
org.hibernate.event.internal.DefaultLoadEventListener.convertCacheEntryToEntity(DefaultLoadEventListener.java:683)
        at
org.hibernate.event.internal.DefaultLoadEventListener.loadFromSecondLevelCache(DefaultLoadEventListener.java:571)
        at
org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:421)
        at
org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:206)
        at
org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:145)
        at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1098)
        at 
org.hibernate.internal.SessionImpl.immediateLoad(SessionImpl.java:1013)
        at
org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:173)
        at
org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:285)
        at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:185)
        at
com.sportivity.model.Member_$$_jvst9fb_1e.equals(Member_$$_jvst9fb_1e.java)
        at
com.sportivity.services.handlers.SocialNotificationHandler.handleAsyncSocialLike(SocialNotificationHandler.java:125)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:182)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:164)
        at
org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:180)
        at
org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:99)
        at sun.reflect.GeneratedMethodAccessor406.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:182)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:164)
        at
org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:80)
        at
org.apache.openejb.core.singleton.SingletonContainer._invoke(SingletonContainer.java:233)
        at
org.apache.openejb.core.singleton.SingletonContainer.invoke(SingletonContainer.java:197)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:268)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler$1.call(EjbObjectProxyHandler.java:253)
        at
org.apache.openejb.async.AsynchronousPool$AsynchronousCall.call(AsynchronousPool.java:110)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: PooledConnection has already been closed.
        at
org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:86)
        at $Proxy87.prepareStatement(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.apache.openejb.resource.jdbc.managed.local.ManagedConnection.invokeUnderTransaction(ManagedConnection.java:165)
        at
org.apache.openejb.resource.jdbc.managed.local.ManagedConnection.invoke(ManagedConnection.java:133)
        at $Proxy88.prepareStatement(Unknown Source)
        at
org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:161)
        at
org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:182)
        ... 50 more



My DS confi from resources.xml:

        <Resource id="sportivityDS" type="javax.sql.DataSource">
                DataSourceCreator tomcat
                JdbcDriver org.postgresql.Driver
                JdbcUrl jdbc:postgresql://127.0.0.1:5432/sportivity
                UserName sportivity
                Password sportivity
                JtaManaged true
                MaxActive 60
                InitialSize 4
                MaxIdle 6
                MinIdle 2
                maxWait 8000
                validationInterval 30000
                TimeBetweenEvictionRunsMillis 30000
                minEvictableIdleTimeMillis 50000
                testOnBorrow true
                testOnReturn false
                removeAbandoned true
                removeAbandonedTimeout 60
                logAbandoned true
                ValidationQuery SELECT 1
                jmxEnabled false
                jdbcInterceptors=ConnectionState;StatementFinalizer;
        </Resource> 



--
View this message in context: 
http://openejb.979440.n4.nabble.com/PooledConnection-has-already-been-closed-tp4666074.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Reply via email to