Many threads are waiting on org.jboss.as.weld.ejb.SessionObjectReferenceImpl.getBusinessObject method in JBoss EAP 6.
Environment
- Red Hat JBoss Enterprise Application Platform (EAP) 6.4.8 and earlier
Issue
- Many threads are waiting in the org.jboss.as.weld.ejb.SessionObjectReferenceImpl.getBusinessObject method. The threads are not blocked, but there is too much load for this synchronization point.
"HTTP-443" #1207 prio=9 os_prio=0 tid=0x00007f1e60120800 nid=0x10a8 waiting for monitor entry [0x00007f1de284b000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.jboss.as.weld.ejb.SessionObjectReferenceImpl.getBusinessObject(SessionObjectReferenceImpl.java:91)
- waiting to lock <0x00000007919376d8> (a org.jboss.as.weld.ejb.SessionObjectReferenceImpl)
at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:113)
at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56)
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:105)
Resolution
A caching improvement to SessionObjectReferenceImpl.getBusinessObject was added with Content from issues.jboss.org is not included.WFLY-4438 which fixes the issue.
The change will be included in the next Cumulative Patch release.
Root Cause
There is too much load for synchronization point org.jboss.as.weld.ejb.SessionObjectReferenceImpl.getBusinessObject .
Category
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.