I came across an interesting situation I could some clarification on. I
was under the impression that objects were always passed by value in the
EJB world, but I found a situation where that's not happening.
In my system I have an object that I use to pass a set of data from
client to session bean to entity bean. The client is in one VM the EJBs
are in another. My client has a remote interface to a session bean, I
pass the object to the session bean and modify it. The changes are not
reflected in the client, as expected. However, if I pass this object
from the session bean to the entity bean, again via a remote interface,
any changes the entity bean makes to the object are reflected in the
session bean. In a normal java application this would be expected since
arguments are passed by reference. But since I'm using RMI (I thought)
to pass the object between EJBs I would assume that the object is passed
by value even though it's the same VM, but it appears to be passed by
reference.
I consider this a problem because I won't know if all my EJBs are going
to be run in the same VM or not once I move to production and a
multi-server environment.
Am I missing something? Is this weblogic specific?
VM = JDK 1.2.2
OS = NT
server = weblogic 4.5.1
client = java application
Incidentally, I took the code from the session bean and ran it in the
client. Results were the same, the local object wasn't affected by
changes in the remote VM.
Any pointers to reference sources is appreciated,
Lou Bona
Chief Software Architect
agentGo.com
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".