Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Arguments and Return Types

 
Sandeep Prabhakar
Ranch Hand
Posts: 59
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey Ranchers,

Consider this situation.

Say suppose I deploy a bean with Remote Home and Component Interface.

Suppose I have a client running in the same JVM which have a reference to this bean (a reference to the Bean's Remote Interface). Now are the parameters and return values passed by "Copy of Reference" or "Copy of Value"

Cheers,
Sandeep
 
p anish
Ranch Hand
Posts: 32
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ideally it should be copy of value.
But some server's do an optimization like if the call is from one remote bean to another remote bean and both beans are in the same JVM, hte container will automatically convert the remote call to a local call ( and passes argument as copy of reference). may some experts here can throw more lights on it.
 
Ugender Rekulampally
Ranch Hand
Posts: 135
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Sandeep,
The return type, if you are returning a Remote Interface from a method call, that would be a Pass by Value and that would be a stub and Container will take care of serializing it.


Thanks,
Ugender
 
Sandeep Prabhakar
Ranch Hand
Posts: 59
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey Folks,

The return value need not be a Remote Interface. It would be anything that is RMI-IIOP Compatible.
Anish, If the Container optimizes and passes a "Copy of Reference" than I feel that it would hurt the portability of Beans.
The bean developer may be tempted to depend on the side effects caused by passing the reference.
Please let me know if I am missing something here.

Cheers,
Sandeep
 
Patrick Williams
Ranch Hand
Posts: 213
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Based on what I've read in HF EJB, Local Home and Component pass by reference and have to be in the same JVM. Remote Home and Component pass by value even if they are on the same machine as the bean object. Hope this helps.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic