users@jmsjca.java.net

RE: Sessions are already closed

From: Frank Kieviet <fkieviet_at_iname.com>
Date: Mon, 5 Jan 2009 10:19:24 -0800

Hi Brian,

 

Sorry for my tardy reply - I was on vacation and didn't return until today.

 

I'm not very familiar with Spring, and the stack trace doesn't look like a
known problem. Rather it looks like a problem in Spring. Do you still have
this issue?

 

Frank

 

 

  _____

From: Brian Repko [mailto:brianrepko_at_fastmail.us]
Sent: Friday, December 19, 2008 13:54
To: users_at_jmsjca.dev.java.net
Subject: Sessions are already closed

 


I'm using the sun-jms-connector as a standard RAR (global) against which I
send and receive
cache flush notifications (listening on a topic).

I continue to get JMSJCA-E153 messages (session is closed) when trying to
send the notification.
These cache flush notifications are generated by Hibernate (second level
cache) and are part of a
transaction synchronization. The event handler is OSCache which then
delegates to my code to
send the message. In my message sender, I have a Spring JmsTemplate that
has the
TopicConnectionFactory and the Topic. I'm wondering if there is an option
that folks know about
for keeping the session open (or forcing a new session). I'm not sure about
ProducerPooling and
will try that.

I'm only setting UserName, Password the ConnectionURL on the TCF. I'm
running on Glassfish V2
against the LOCAL OpenMQ broker.

Thoughts?
Brian

[#|2008-12-19T15:14:01.440-0600|INFO|sun-appserver9.1|javax.enterprise.syste
m.stream.out|_ThreadID=19;_ThreadName=httpSSLWorkerThread-7001-1;|ramewo
alStateException: JMSJCA-E153: This Session is closed; nested exception is
javax.jms.IllegalStateException: JMSJCA-E153: This Session is closed
        at
org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.
java:252)
        at
org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAcc
essor.java:168)
        at
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:462)
        at
org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:526)
        at
org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:518)
        at
com.biperf.cache.oscache.cluster.jms.SpringJmsBroadcastListener.sendNotifica
tion(SpringJmsBroadcastListener.java:213)
        at
com.opensymphony.oscache.plugins.clustersupport.AbstractBroadcastingListener
.cacheEntryFlushed(AbstractBroadcastingListener.java:49)
        at
com.opensymphony.oscache.base.Cache.dispatchCacheEntryEvent(Cache.java:856)
        at com.opensymphony.oscache.base.Cache.flushEntry(Cache.java:982)
        at com.opensymphony.oscache.base.Cache.flushEntry(Cache.java:491)
        at com.opensymphony.oscache.base.Cache.flushEntry(Cache.java:478)
        at
com.biperf.cache.oscache.ManageableCacheAdministrator.flushEntry(ManageableC
acheAdministrator.java:90)
        at com.biperf.cache.oscache.OSCacheImpl.remove(OSCacheImpl.java:100)
        at
com.biperf.cache.hibernate.CacheWrapper.remove(CacheWrapper.java:55)
        at
org.hibernate.cache.NonstrictReadWriteCache.release(NonstrictReadWriteCache.
java:145)
        at
org.hibernate.action.EntityUpdateAction.afterTransactionCompletion(EntityUpd
ateAction.java:248)
        at
org.hibernate.engine.ActionQueue.afterTransactionCompletion(ActionQueue.java
:198)
        ... 161 more
Caused by: javax.jms.IllegalStateException: JMSJCA-E153: This Session is
closed
        at com.stc.jmsjca.util.Exc.illstate(Exc.java:207)
        at com.stc.jmsjca.core.WSession.invokeOnClosed(WSession.java:129)
        at com.stc.jmsjca.core.WSession.checkClosed(WSession.java:146)
        at com.stc.jmsjca.core.WSession.createProducer(WSession.java:431)
        at
org.springframework.jms.core.JmsTemplate.doCreateProducer(JmsTemplate.java:9
74)
        at
org.springframework.jms.core.JmsTemplate.createProducer(JmsTemplate.java:955
)
        at
org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:555)
        at
org.springframework.jms.core.JmsTemplate$3.doInJms(JmsTemplate.java:528)
        at
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:459)
        ... 175 more

[#|2008-12-19T15:14:01.440-0600|INFO|sun-appserver9.1|javax.enterprise.syste
m.stream.out|_ThreadID=19;_ThreadName=httpSSLWorkerThread-7001-1;|2008-12-19
15:14
1,424 ERROR [httpSSLWorkerThread-7001-1]:server
(TransactionSynchronizationUtils.java:136) -
TransactionSynchronization.afterCompletion threw exception
org.hibernate.AssertionFailure: Exception releasing cache locks
        at
org.hibernate.engine.ActionQueue.afterTransactionCompletion(ActionQueue.java
:211)
        at
org.hibernate.impl.SessionImpl.afterTransactionCompletion(SessionImpl.java:4
24)
        at
org.springframework.orm.hibernate3.SpringSessionSynchronization.afterComplet
ion(SpringSessionSynchronization.java:220)
        at
org.springframework.transaction.support.TransactionSynchronizationUtils.invo
keAfterCompletion(TransactionSynchronizationUtils.java:133)
        at
org.springframework.transaction.support.AbstractPlatformTransactionManager.i
nvokeAfterCompletion(AbstractPlatformTransactionManager.java:951)
        at
org.springframework.transaction.support.AbstractPlatformTransactionManager.t
riggerAfterCompletion(AbstractPlatformTransactionManager.java:926)
        at
org.springframework.transaction.support.AbstractPlatformTransactionManager.d
oRollbackOnCommitException(AbstractPlatformTransactionManager.java:869)
        at
org.springframework.transaction.support.AbstractPlatformTransactionManager.p
rocessCommit(AbstractPlatformTransactionManager.java:737)
        at
org.springframework.transaction.support.AbstractPlatformTransactionManager.c
ommit(AbstractPlatformTransactionManager.java:678)
        at
org.springframework.transaction.interceptor.TransactionAspectSupport.commitT
ransactionAfterReturning(TransactionAspectSupport.java:321)
        at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:116)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:171)
        at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(Expos
eInvocationInterceptor.java:89)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:171)
        at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:204)
        at $Proxy118.updateMessage(Unknown Source)
        at
com.biperf.cmmo.ui.message.MessagesAction.save(MessagesAction.java:128)