Win a copy of Cross-Platform Desktop Applications: Using Node, Electron, and NW.js this week in the JavaScript forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Performance  RSS feed

 
Mahendra Nambiar
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I am running into a problem where an external process is calling an EJB housed in Websphere 3.5 and it takes a very long time to process it. Whereas when an inprocess servlet does the same call, it is very quick... Is this because of the marshalling.. and is there something I can do about it?
thanks,
Mahendra
------------------
SCJP, JCERT Certified Solutions Developer.
 
David Weitzman
Ranch Hand
Posts: 1365
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I don't know anything about Websphere, but jboss supports accessing EJB's within one process without opening sockets.
 
Matthew X. Brown
Ranch Hand
Posts: 165
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The reason the servlet is so much faster is that the servlet and the EJB are "local" to one another- and are within the same JVM. This cuts down on the amount of network calls and overhead. As you probably know, Websphere uses a session facade pattern, via the use of Access Beans- which basically hide the implementation details of the EJB's from the clients. You don't even need to do a JNDI lookup-its provided.
One crazy suggestion is to use http tunnelling to seralize and deserialize the objects and send the objects back to a servlet that uses websphere- execute the ejb call in the servlet, then serialize the objects and send em back to the remote client. Without know the details of your externally running process, its hard to come up with a viable answer.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!