I looked at spec and do not see any moment of time where server can
safely reset any field except continer managed fields.

a) Before setting a instance context, there no need to reset anything,
   intance was just created.

b) Aftter setting a instance context and before unsetting, a bean
instance
   has variables which contain refernces to resources like
javax.sql.DataSource,
   and alike and possibly wrapped InstanceContext. So resetting any
field
   can cause unpredicatable problems.

9.4.1
>The instance can take advantage of the setEntityContext(ic) method
>to allocate any resources that are to be held by the instance for
>its lifetime. Such resources cannot be specific to an EJB object
>identity since the instance might be reused during its lifetime
>to serve multiple EJB objects.

c) Aftter unsetting a instance context, container should not use it.

9.4.2
>The container invokes this method when the container wants
>to reduce the number of instances in the pool. After this
>method completes, the container is not allowed to reuse this
>instance, and therefore it should drop any references to
>the instance to allow the Java programming language garbage
>collector to eventually invoke the finalize() method on the
>instance.

So it is not safe to reset anything except container managed fields
during instance lifetime. So I think that Ejipt behaviour is
incorrect one because they reset all fileds.

I would like if Vlada of other author of EJB spec will clarify
the issue.

Constantine

Jim Frentress wrote:
>
> to reduce object creation, this might be better:
>
> class TestBean
> {
>    List l = null;
>    void ejbCreate() {
>         init();
>    }
>    void ejbActivate()
>    {
>         init();
>    }
>
>   void init()
>   {
>       if (l == null)
>                 l = new ArrayList();
>         l.clear();
>   }
>
>     void test(String a)
>    {
>       l.add(a);
>    }
> }
>
> > -----Original Message-----
> > From: Imre Kifor [SMTP:[EMAIL PROTECTED]]
> > Sent: Wednesday, March 17, 1999 2:20 PM
> > To:   [EMAIL PROTECTED]
> > Subject:      Re: ejbCreate( ) - initialize instance variables
> >
> > Sachin,
> >
> >
> > >> class TestBean
> > >> {
> > >>    List l = null;
> > >>
> > >>    void ejbCreate()
> > >>    {
> > >>    }
> > >>
> > >>    void ejbActivate()
> > >>    {
> > >>       l = new ArrayList();
> > >>    }
> > >>
> > >>    void test(String a)
> > >>    {
> > >>       l.add(a);
> > >>    }
> > >> }
> > >
> > >Imre,
> > >
> > >don't we need to have " l = new ArrayList();" in the ejbCreate( )  also
> > as
> > >ejbActivate is not called for every ejbCreate( ) ? In essence does the
> > bean
> > >developer end up initializing in activate as well as create methods.
> >
> >
> > Of course, sorry about that. You have to do initialization in both
> > ejbActivate and ejbCreate methods (or ejbPostCreate in the case of entity
> > beans).
> >
> > Imre
> >
> > >Thanks,
> > >
> > >Sachin.
> > >
> > >
> > >
> > >
> > >>
> > >> The example (combined with our mechanism) will guarantee that 1) your
> > deep
> > >> hierarchies are ready before your business methods hit 2) pooled
> > instances
> > >> don't use up resources by storing deep hierarchies associated with a
> > >> specific EJBObject 3) left over deep hierarchies are not accessible by
> > >> accident when a pooled instance is re-attached to a different
> > >> EJBObject and
> > >> 4) and the whole thing is fast :-)
> > >>
> > >> Imre Kifor
> > >> Valto Systems
> > >>
> > >> >
> > >> >Constantine
> > >> >
> > >> >> -----Original Message-----
> > >> >> From: Constantine Plotnikov <[EMAIL PROTECTED]>
> > >> >> To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
> > >> >> Date: Wednesday, March 17, 1999 8:50 AM
> > >> >> Subject: Re: ejbCreate( ) - initialize instance variables
> > >> >>
> > >> >> >Hi!
> > >> >> >
> > >> >> >1. Do I understand it correctly?  In your server, initial
> > >> values for all
> > >> >> >   fields are saved for each instance and they are restored
> > >> right before
> > >> >> >   creation.
> > >> >> >
> > >> >> >2. If yes, how do you save values?
> > >> >> >   a) in serialized form
> > >> >> >   b) just pointers to values recived as Field.get()
> > >> >> >   c) other, please clarify what.
> > >> >> >
> > >> >> >3. If no, could you please clarify semantics of restoring values
> > >> >> >   in your server.
> > >> >> >
> > >> >> >Constantine
> > >> >> >
> > >> >> >Imre Kifor wrote:
> > >> >> >>
> > >> >> >> We believe that bean instances retrieved from the instance
> > >> pool should
> > >> >> >> always be in their initial state (i.e. the state right after
> > >> >> construction)
> > >> >> >> regardless of the used persistence management type.
> > >> >> >>
> > >> >> >> This means that with Ejipt your 'country' member will be
> > predictably
> > >> set
> > >> >> to
> > >> >> >> "USA" upon entering ejbCreate, ejbFindXXX and ejbActivate.
> > Moreover,
> > >> >> since
> > >> >> >> Ejipt resets all instances before returning them to the
> > >> pool, you will
> > >> >> also
> > >> >> >> be assured that your possibly sensitive or very large member data
> > is
> > >> not
> > >> >> >> held by pooled instances.
> > >> >> >>
> > >> >> >> Imre Kifor
> > >> >> >> Valto Systems
> > >> >> >>
> > >> >> >> -----Original Message-----
> > >> >> >> From: Sachin Aggarwal <[EMAIL PROTECTED]>
> > >> >> >> To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
> > >> >> >> Date: Tuesday, March 16, 1999 11:26 PM
> > >> >> >> Subject: ejbCreate( ) - initialize instance variables
> > >> >> >>
> > >> >> >> >The spec mentions that ejbCreate( ) initializes instance
> > variables.
> > >> >> >> >
> > >> >> >> >Question 1. Who's reponsibility is that in CMP beans ? The
> > >> containers
> > >> or
> > >> >> >> the
> > >> >> >> >bean developers?
> > >> >> >> >
> > >> >> >> >If the answer to above is Bean Developer, then:
> > >> >> >> >Q2. If the instance variable is declared as public String county
> > =
> > >> >> "USA";
> > >> >> >> >and the bean developer does not reinitialize it in
> > >> ejbCreate(), then
> > >> >> does
> > >> >> >> >the container have the right to initialize it to unpredicatable
> > >> values ?
> > >> >> >> >
> > >> >> >> >Thanks for your 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".
> > >> >> >> >
> > >> >> >> >
> > >> >> >>
> > >> >> >>
> > >> >>
> > >> ==================================================================
> > >> =========
> > >> >> >> 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".
> > >> >> >
> > >> >>
> > >> >>
> > >> ==================================================================
> > >> =========
> > >> >> 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".
> > >> >
> > >>
> > >> ==================================================================
> > >> =========
> > >> 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".
> > >
> >
> > ==========================================================================
> > =
> > 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".

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