-
15. Re: Exception: CMR field value is already loaded
ssowards Sep 20, 2004 12:55 PM (in response to lfinis)Hey Guys,
We're getting the same issue under heavy load. Anyone have solution, suggestions or ideas? We're running JBoss 3.2.1.
Thanks,
Shaun -
16. Re: Exception: CMR field value is already loaded
smeier Apr 27, 2005 11:21 AM (in response to lfinis)Hey All,
has anyone of you ever overcome this error? Is it fixed in the latest JBoss version? Unfortunately we're still using 3.2.1 and haven't found a workaround for it yet.
Thanks,
Stefan -
17. Re: Exception: CMR field value is already loaded
cvandyck Apr 27, 2005 11:25 AM (in response to lfinis)Hi Smeier
I've tried out 3.2.7, and haven't seem the problem reoccur since then. So while I can't say for sure whether or not it was fixed, it certainly seems that way.
HTH
Collin -
18. Re: Exception: CMR field value is already loaded
blackandwhite Jul 29, 2005 11:22 PM (in response to lfinis)Hi All,
Is it fixed in the latest JBoss version?
I have the same problem with JBoss-3.2.1. -
19. Re: Exception: CMR field value is already loaded
schrouf Aug 1, 2005 3:37 AM (in response to lfinis)Even if a version upgrade always requires some work I would strongly recommend an upgrade to a JBoss version > 3.2.6 as there is a connection pool leak in earlier JBoss versions under heavy load.
Regards
Ulf -
20. Re: Exception: CMR field value is already loaded
blackandwhite Aug 2, 2005 1:26 AM (in response to lfinis)Thanks Ulf.
I will upgrade to JBoss 3.2.7 -
21. Re: Exception: CMR field value is already loaded
sia Aug 3, 2005 12:25 AM (in response to lfinis)I have same problem on JBoss 4.0.2 under heavy load!!!
JDK is 1.5.0_4 for Linux
Is there any plans to fix it???2005-08-02 22:59:48,498 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackLocalException in method: public abstract java.util.List com.adigida.ejb.session.CompanyManagementLocal.getUsersOffices(java.lang.Long) throws javax.ejb.FinderException, causedBy: javax.ejb.EJBException: CMR field value is already loaded at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge$FieldState.loadRelations(JDBCCMRFieldBridge.java:1979) at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.load(JDBCCMRFieldBridge.java:1417) at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.load(JDBCCMRFieldBridge.java:1404) at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.getInstanceValue(JDBCCMRFieldBridge.java:717) at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.getValue(JDBCCMRFieldBridge.java:669) at org.jboss.ejb.plugins.cmp.bridge.EntityBridgeInvocationHandler$FieldGetInvoker.invoke(EntityBridgeInvocationHandler.java:133) at org.jboss.ejb.plugins.cmp.bridge.EntityBridgeInvocationHandler.invoke(EntityBridgeInvocationHandler.java:91) at org.jboss.proxy.compiler.Runtime.invoke(Runtime.java:62)
-
22. Re: Exception: CMR field value is already loaded
oyabun Sep 18, 2006 8:03 AM (in response to lfinis)Hi,
Same problem under JBOSS 4.0.2. We get this while stress testing our application. We use a JSP to render 1-N entity beans.javax.ejb.EJBException: CMR field value is already loaded at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge$FieldState.loadRelations(JDBCCMRFieldBridge.java:1979) at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.load(JDBCCMRFieldBridge.java:1417) at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.load(JDBCCMRFieldBridge.java:1404) at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.getInstanceValue(JDBCCMRFieldBridge.java:717) at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.getValue(JDBCCMRFieldBridge.java:669) at org.jboss.ejb.plugins.cmp.bridge.EntityBridgeInvocationHandler$FieldGetInvoker.invoke(EntityBridgeInvocationHandler.java:133) at org.jboss.ejb.plugins.cmp.bridge.EntityBridgeInvocationHandler.invoke(EntityBridgeInvocationHandler.java:91) at org.jboss.proxy.compiler.Runtime.invoke(Runtime.java:62)
Regards,
Alex -
23. Re: Exception: CMR field value is already loaded
oyabun Oct 2, 2006 5:30 AM (in response to lfinis)We found the solution for our project. Because of the (old) architecture of our project, we are forced to use a non-standard configuration. That is, we use Standard CMP 2.x EntityBean with cache invalidation for our Entity Beans, with commit option A _and_ Optimistic Locking.
The Wiki article http://wiki.jboss.org/wiki/Wiki.jsp?page=CMPCaching clearly states that when we want global caching we must use Pessimistic Locking (which is default btw.) The problem we had with Pessimistic Locking is that it produced a lot of "Application deadlock" errors so instead we opted for Optimistic Locking which gave us "CMR field value is already loaded".
Our Session Beans use "Supports" by default for transaction type and "Required" only for methods which need to write to the database. Our Entity Beans were completely "Required". Since there was no need for the getter methods to be "Required", we made them read-only and "Supports" to make sure they don't start a new tx.
We use Xdoclet:* @ejb.transaction * type="Supports" * @jboss.method-attributes * read-only="true"
Read more about read-only here http://www.onjava.com/pub/a/onjava/2003/05/28/jboss_optimization.html
This configuration worked for us. We think that due to our erroneous configuration, the CMP container tried to load data multiple times into the cache, which JBoss didn't allow. The new configuration doesn't start any tx for reading access (we traced it and know that). It also seems to behave correctly by loading instances only once into the cache and then reading from it too.
Another solution is to use Instance Per Transaction CMP 2.x EntityBean but that is not acceptable because it's too slow.
Hope that helped.
--
Alex