There are couple of things that will definitely help, depending what type of container you are using. Weblogic for example will try to pass parameters to
ejb method calls by reference if the caller and the ejb are running within the same jvm and loaded with the same classloader. In order to achieve that you need to set the next configuration parameter:
Secondly Weblogic will always optimize the access for collocated ejb objects. What that means is that ejb A (or a servlet or
jsp, etc) calls ejb B weblogic will always try to forward the call to an instance B running on the same server instance like A.
Regards.