You can store the state in SLSB but it will not be dedicated to one client.
So only the one which can be shared across the client like resource
connections etc.
but you must check the validity of these variables . You dont know which
instance will service the client.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cheers
Ashwani Kalra
Sr. Mem. Dev. Staff
Aithent Technologies
India
http://www.geocities.com/ashwani_kalra/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


-----Original Message-----
From: A mailing list for Enterprise JavaBeans development
[mailto:[EMAIL PROTECTED]]On Behalf Of Kher M
Sent: Tuesday, November 13, 2001 10:08 AM
To: [EMAIL PROTECTED]
Subject: Re: State in Stateless Session Bean


Hi guys,
 Is it ok if i store state in a stateless bean. Like i
want to keep the home reference of other beans as a
state.  Wont this work in all application servers?. I
got difficulty convincing my Project manager since it
is not given in specification. Is there any link in
the specification to gurantee this.

PLease reply
Cherry


--- Sanjeev Verma <[EMAIL PROTECTED]> wrote:
> Hi guys
> I have been following this thread for some time now,
> and everyone seems
> to say that the ejbCreate() will get fired at the
> moment the SLSB goes
> into the method ready pool.
>
> I think that is not the case. Try this: using
> Weblogic 5.1, create a
> pool of SLSBs at startup of the Server by specifying
> the number in the
> initial-beans-in-free-pool tag of the
> weblogic-ejb-jar file. Keep some
> SOP (System.out.println()) command in the
> ejbCreate() method. You will
> find that the SOP will not be printed.
>
> Next try this: Give an additional SOP in the
> setSessionContext() method.
> This command will execute the number of times you
> have mentioned in the
> initial-beans-in-free-pool tag.
>
> I think this should lead to the conclusion that in
> SLSB, we should carry
> out all our initialization work in the
> setSessionContext() method, which
> will get executed whenever the bean instance gets
> created. The
> ejbCreate() method may or may not get fired on the
> instance.
>
> Next read this (Ctrl-v from Mastering EJB Ed Roman)
> and see figure on
> page No. 684 of the same book
>
> <quote>
> When Are My Beans Created?
> We've learned that the container is responsible for
> pooling stateless
> session beans. The container creates and destroys
> beans when the
> container decides it's the right time to resize its
> pool. Your client
> code is absolutely not responsible for creating
> beans. A client deals
> with the networked bean wrapper, called the EJB
> object. The EJB object
> is part of the container, and it is responsible for
> retrieving beans
> from a pool to service client requests. But if the
> container is
> responsible for bean life cycle, then why does the
> home interface
> specify create() and remove() methods? What you must
> remember is that
> these methods are for creating and destroying EJB
> objects. This may not
> correspond to the actual creation and destruction of
> beans. The client
> shouldn't care whether the actual bean is created or
> destroyed-all the
> client code cares about is that the client has an
> EJB object to invoke.
> The fact that beans are pooled behind the EJB object
> is irrelevant. So,
> when debugging your EJB applications, don't be
> alarmed if your bean
> isn't being created or destroyed when you call
> create() or remove() on
> the home object. Depending on your container's
> policy, your stateless
> session beans may be pooled and reused, with the
> container creating and
> destroying at will. </quote>
>
> I am not very sure that ejbRemove() will be called
> at the time when the
> bean is removed from the ready pool. Can someone
> shed some light??
>
> Please comment
>
> Regards
> Sanjeev
>
> -----Original Message-----
> From: Mohit Agrawal [ mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, November 07, 2001 11:59 AM
> To: [EMAIL PROTECTED]
> Subject: Re: [Re:State in Stateless Session Bean]
>
> Hi Gavin
> Instance variables like db connection or socket
> connections etc which
> can be used by any client irrespective of state can
> be initilized in
> ejbCreate().
>
> U can open connectin in ejbCreate() and can destroy
> it in ejbRemove().
> While bean instance is in pool, connection will
> remain open and will be
> accessible to all.
>
> Following code snipt may help u :-
>
> public void ejbCreate()
>  {
>   try
>   {
>    captureJDBCConnection();
>   }
>   catch(Exception e)
>   {
>    e.printStackTrace();
>     }
>  }
>
> public void ejbRemove()
>  {
>   try
>   {
>    releaseJDBCResources();
>   }
>   catch(Exception e)
>   {
>    e.printStackTrace();
>   }
>  }
>
>
>
> Regards
> Mohit
>
> -------Original Message-------
>
> From: Gavin Selvaratnam
> Date: Wednesday, November 07, 2001 11:43:20 AM
> To: Mohit Agrawal
> Subject: Re: [Re:State in Stateless Session Bean]
>
> Hi Mohit,
> Well what I want to do is initialize a DB conection
> in a SLSB. But I
> dont want to create an destroy the connection for
> each method invoked,
> as it will be a performance degrader. I want to keep
> the connection in
> the SLSB and when the SLSB is destroyed the
> connection should be
> destroyed.
>
> Thanks,
> Gavin
>
>
>
> Mohit Agrawal
> <magrawal@ARGU To: Gavin Selvaratnam
> <[EMAIL PROTECTED]> SOFT.COM>
> cc:
> Subject: Re: [Re:State in Stateless Session
> 11/07/2001 Bean]
> 10:32 AM
>
>
>
>
>
>
> hi gavin,
> Actually u dont have any control over the state of
> instance variabls of
> a SLSB. U can only initilize once in ejbCreate()
> which will be called
> the time of instance creation. After that u cannot
> control the state of
> instance variables in SLSB. Thats why it is not
> suggested to use client
> state specific instance variables in SLSB. What is
> ur actual problem, if
> tell in detail, it might be possible to find some
> alternative solutions.
>
> Regards
> Mohit
>
>
========================================================================
> ===
> 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".
>
> =========================
> To unsubscribe, send email to [EMAIL PROTECTED]
> and
=== message truncated ===


__________________________________________________
Do You Yahoo!?
Find the one for you at Yahoo! Personals
http://personals.yahoo.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".

===========================================================================
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".

Reply via email to