Hi all,
I've encountered a problem with jboss 3.0.7, but according to CVS
the same would be in latest release. I've got BMP entity bean, standard
configuration. Two clients access the same bean instance without
transaction context. I see the following in the log:
client1: EntitySynchronizationInterceptor.invoke, ctx.isValid == false
client1: ejbLoad started
client1: ejbLoad finished, ctx.isValid == false
client2: EntitySynchronizationInterceptor.invoke, ctx.isValid == false
client2: ejbLoad started
client1: ctx.isValid == true
client1: business method
Here my business method fails because ejbLoad in another thread (client2) is modifiyng bean's internal state. I thought that container should
serialize calls to the same bean instance, but I'm not sure that
this is the only possible spec. interpretation. As for me, I'd put ejbLoad call in EntitySynchronizationInterceptor.invoke into synchronized(ctx) block.