users@glassfish.java.net

Threads blocked - Apparently in toplink

From: <glassfish_at_javadesktop.org>
Date: Mon, 26 Jan 2009 07:02:35 PST

Hi,

We are using glassfish in a recent release project to production, with the increase in the load and usage, the glassfish started to demonstrate an abnormal behaviour.

It locks in transactions. From our analysis is not always related with special loads, for example it can be without problem for one week and them it block’s twice in one day. The only solution is to do a restart and lost whatever was executing…

When these locks occur most of the time there isn’t any Database lock.

The impact now is huge, and without solution at sight…

We are using EJB’s 3.0 with JPA and toplink. And Glassfish with versions:
- Sun Java System Application Server 9.1_02 (build b04-fcs) and Sun Java System Application Server 9.1 (build b58g-fcs)

We have tried almost every thing, simplify some of our code, reduce transactions, install different Glassfish versions and some other tips out the in these posts, without success.

From two thread dumps we notice the following pattern:


at java.lang.Thread.sleep(Native Method)
at oracle.toplink.essentials.internal.helper.ConcurrencyManager.releaseDeferredLock(ConcurrencyManager.java:429)
at oracle.toplink.essentials.internal.identitymaps.CacheKey.releaseDeferredLock(CacheKey.java:373)
at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:614)
at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.buildWorkingCopyCloneNormally(ObjectBuilder.java:451)
at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.buildObjectInUnitOfWork(ObjectBuilder.java:421)
at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:387)
at oracle.toplink.essentials.queryframework.ReportQueryResult.processItem(ReportQueryResult.java:220)
at oracle.toplink.essentials.queryframework.ReportQueryResult.buildResult(ReportQueryResult.java:182)
at oracle.toplink.essentials.queryframework.ReportQueryResult.(ReportQueryResult.java:98)
at oracle.toplink.essentials.queryframework.ReportQuery.buildObject(ReportQuery.java:594)
at oracle.toplink.essentials.queryframework.ReportQuery.buildObjects(ReportQuery.java:643)
at oracle.toplink.essentials.queryframework.ReportQuery.executeDatabaseQuery(ReportQuery.java:804)
at oracle.toplink.essentials.queryframework.DatabaseQuery.execute(DatabaseQuery.java:628)
at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:692)
at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:746)
at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2233)
at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:952)
at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:924)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:367)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:508)
at com.sun.enterprise.util.QueryWrapper.getSingleResult(QueryWrapper.java:212)

 

Can anybody help on this ?
[Message sent by forum member 'bmota' (bmota)]

http://forums.java.net/jive/thread.jspa?messageID=328175