Hi all. I am experienced in
Java, specifically with JSPs and
servlets. However, I am relatively new to EJBs. I am working on a app that uses EJBs in a relatively simple way. Basically, either an "Action" class or a Servlet invokes a stateless session bean (no entity beans involved) to remotely either retrieve or update a database value.
My question relates to the servlet implementation. I have seen various examples from online tutorials and books that use this approach:
1. Declare the remote interface as a member object; e.g.:
2. In the servlet's init() method, instantiate that remote interface instance, like:
3. In subsequent doPost(), doGet(), or service() method calls, use that remote interface instance to do stuff.
My question is this: is it a good idea, in a production app with potentially busy traffic, to use a single session bean like that? The servlet could field many requests near-simultaneously, but each request would need to use the same session bean. My gut tells me that this approach is wrong, that the session bean should not be essentially a singleton member variable; rather, a new instance should be called within each doGet()/doPost()/service() method call. That seems to be the whole point of EJBs; the container would manage how to reuse beans, when to create new ones, etc. But I thought I would check, since I have seen different tutorials use the approach illustrated above.
Do any experts have any advice or insight? Thanks in advance!
[ September 02, 2004: Message edited by: dave taubler ]