Constantine,

>Consider following incomplete example bean with BMP:
>
>class TestBean
>{
>  List l = new ArrayList()
>
>  void ejbCreate()
>  {
>  }
>
>  void test(String a)
>  {
>    l.add(a);
>  }
>}
>
>As far as I understand you, in this example, your algorithm will
>make one list from prototype object shared across all instances.
>How you will handle this case?


Excellent point! We chose to provide a simple and *predictable* mechanism
for reseting instance states. After thinking about scenarios like the one
you just presented, we concluded that trying to support deep hierarchies in
initial states of bean instances would never be predictable and, even more
importantly, efficient.

Also, the spec is intentionally providing standard ways to deal with
situations like yours. Consider the following modifications to your example.

class TestBean
{
   List l = null;

   void ejbCreate()
   {
   }

   void ejbActivate()
   {
      l = new ArrayList();
   }

   void test(String a)
   {
      l.add(a);
   }
}

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

Reply via email to