Hi, i tested orion 0.9.4p, and obviously you are working on synchronization. And regarding this, i have to report a bug/hint (depending on the state of the code): I have an enterprise bean, who's ejbLoad function may call in certain circumstances a remove on this same bean. In order to inform the server, i make this call via the remote interface. With prior versions, this worked (probably because there was no synchronization at all ?), now i get a: com.evermind.server.DeadlockException: Deadlock detected: thread 5 is waiting for resource entity 16832 in SharedData held by thread 5 at com.evermind.server.ejb.AbstractEJBObject.startCall(JAX) at EntityBeanWrapper2.remove(EntityBeanWrapper2.java:37) at de.netmedia.ejb.general.basebean.NMejbBaseBean.ejbLoad(NMejbBaseBean.java, Compiled Code) at EntityBeanWrapper2.loadState(EntityBeanWrapper2.java, Compiled Code) at com.evermind.server.ejb.EntityEJBObject.endTransaction(JAX) at com.evermind.server.ApplicationServerTransaction.aeu(JAX) at com.evermind.server.ApplicationServerTransaction.ada(JAX) at com.evermind.server.ApplicationServerTransaction.end(JAX, Compiled Code) at EntityBeanWrapper0.remove(EntityBeanWrapper0.java, Compiled Code) at java.lang.reflect.Method.invoke(Native Method) at com.evermind.server.rmi.a4.run(JAX) at com.evermind.util.b.run(JAX, Compiled Code) In the ejb-jar.xml, i set <reentrant>True</reentrant>. As i understood the spec (paragraph 9.1.12), this should allow loopbacks in bean calls (and it's my responsibility to deal with the loopback's side effects and not to make "a concurrent call in the same transaction context" from a client - whatever this means ;-) ). I'm not yet sure, if what i am doing is a good idea - but it should work (should it really? Removing a bean while it's loaded is kind of mean...). Best regards, Jens Stutte ____________________________________________ [EMAIL PROTECTED], http://www.net-media.de NetMedia GmbH Schubertstr. 8 66111 Saarbruecken Germany fon: +49 (0) 681 - 37 98 80 fax: +49 (0) 681 - 33 89 3
