i wish i could get off the fence on this one. in my opinion, you're both
right.
forcing the developer to 'clean' instances before use is an error-prone
hassle. when i create an ejb, the last thing i should have to do is clean
out stuff that came from the pool. a 'new' instance should be the same
regardless if it came from the pool after having been used by someone or
not. what happens now when an instance is truly new, it has 'clean' state,
but coming from the pool it has undefined-state (where non-container managed
fields are concerned), unless as Vlada says (and of course i currently do)
the user init's the bean.
the best solution is to return beans from the pool in a consistent and
reproducible state (from a users point-of-view without hand coding).
> -----Original Message-----
> From: Imre Kifor [SMTP:[EMAIL PROTECTED]]
> Sent: Thursday, March 18, 1999 11:27 AM
> To: [EMAIL PROTECTED]
> Subject: Re: (TO SUN: please clarify) Re: ejbCreate( ) - initialize
> instance variables
>
> Point taken. We will update Ejipt accordingly.
>
> Imre Kifor
> Valto Systems
>
> -----Original Message-----
> From: Vlada Matena <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
> Date: Thursday, March 18, 1999 1:34 PM
> Subject: Re: (TO SUN: please clarify) Re: ejbCreate( ) - initialize
> instance
> variables
>
>
> >The only instance's fields that the container is allowed to manipulate
> are
> the
> >fields designated for container-managed persistence. All the other fields
> >are in the hands of the bean developer, and the container should not
> modify
> >them under the covers.
> >
> >Vlada
> >
> >-----Original Message-----
> >From: Imre Kifor <[EMAIL PROTECTED]>
> >To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
> >Date: Thursday, March 18, 1999 9:50 AM
> >Subject: Re: (TO SUN: please clarify) Re: ejbCreate( ) - initialize
> instance variables
> >
> >
> >>Constantine,
> >>
> >>>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
> >>
> >>The issue boils down to resource management. We view bean instances as
> >>reusable resources and have applied the same resource management
> principles
> >>to them as to all the other shared resources we manage in our servers.
> >>
> >>Guaranteeing a consistent and predictable state for all pooled resources
> is
> >>crucial for a robust and scalable server implementation. Resetting
> fields
> in
> >>a generic fashion is not possible in JDK1.1. However, that restriction
> >>should not be extended to the spec itself, especially now that Java 2
> lifted
> >>the restriction in a secure and highly controllable fashion.
> >>
> >>Imre Kifor
> >>Valto Systems
> >>
> >>>
> >>>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".
> >>>
> >>>
> >>
> >>========================================================================
> ==
> =
> >>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".