User development,
A new message was posted in the thread "Entity Manager with BMT and Transaction
Timeout":
http://community.jboss.org/message/528190#528190
Author : Alexander Hartner
Profile :
http://community.jboss.org/people/ejb3workshop
Message:
--------------------------------------------------------------
When running small loads on our application all is working fine, however under heavy
concurrent load we consistently get the following exception.
2010-02-09 12:40:56,773 FATAL [com.abc.IndexOutputStream.deliverJob]
failed to lazily initialize a collection of role:
com.abc.entities.ChannelJob.m_jobProperties, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of
role: com.abc.entities.ChannelJob.m_jobProperties, no session or session was closed
My suspicious were that the underlying JTA transaction has timed-out and that the entity
manager session was closed, so I tried increasing the global transaction timeout from 300
to 3600.
<!-- JBoss Transactions JTA -->
<mbean code="com.arjuna.ats.jbossatx.jta.TransactionManagerService"
name="jboss:service=TransactionManager">
<attribute name="TransactionTimeout">*3600*</attribute>
<attribute
name="ObjectStoreDir">${jboss.server.data.dir}/tx-object-store</attribute>
</mbean>
However this did not resolve my problem. Shortly (between 5 to 10 minutes) after starting
the transaction the same exception occured again. I am injecting a UserTransaction as well
as an EntityManager into a MessageDrivenBean and then manage the transaction myself. I
found some posts that suggest in this case I have to join the EntityManager to the JTA
transaction using +entityManger.joinTransaction()+ which I wasn't doing up to this
point. It seemed to have had a positive impact, but I am still testing if this was really
the cause of the problem.
What I am looking for is some clarification on if this is really the case that I have to
join the transaction and if I don't join where the timeout for the entity manager is
configured. I had a look at the Hibernate documentation, but didn't find any reference
to a timeout, other then on the entity cache.
Ideally I would like to resolve this issue by changing my environment rather then the
application.
Thanks in advance
Alex
--------------------------------------------------------------
To reply to this message visit the message page:
http://community.jboss.org/message/528190#528190