Hi Thomas,

> -----Message d'origine-----
> De: Mahler Thomas [mailto:[EMAIL PROTECTED]
> Date: mercredi, 5. novembre 2003 14:17
> À: 'OJB Users List'
> Objet: RE: PB error when the browser is stoped
> 
> 
> Hi Sylvain,
> 
> <snip>
> > 
> > Just some question to be sure to understand:
> > 
> > How could you define a thread in this case?
> 
> The servlet engine uses parallel WorkerThreads to handle all incoming
> requests.
> So you have to make sure that parallel servlet threads don't 
> access the
> broker variable without proper synchronization.

How could I be sure?
How do you mean about proper synchronization?

> 
> > Do you say that all threads use the same class instance?
> 
> If you mean Class object then yes,
> If you mean instance of a class then no.

I don't understand what you mean? What's the difference between a Class object and an 
instance of a Class?

> 
> > 
> > If I declare each time a new PB instance, is this solution 
> > thread safe?
> 
> You have to make sure that each thread (also servlet engine 
> threads) always
> work with their only broker instance and not with a shared instance.
> The most simple way to achieve this is to use a new PB 
> instance in each
> call.

OK. You declare eache time a new PB instance like:
PersistenceBroker pb = PersistenceBrokerFactory....


Thanks
Sylvain

> Of course it's important to close the PB imediately after the 
> unit of work
> is completed
> 
> cheers,
> Thomas
> 
> > 
> > Thanks
> > Sylvain
> > 
> > > > 
> > > >>>    broker = 
> PersistenceBrokerFactory.defaultPersistenceBroker();
> > > >>
> > > >>recommened to use
> > > >>PersistenceBroker pb = PersistenceBrokerFactory....
> > > >>in your methods
> > > >>
> > > >>>    broker.beginTransaction();
> > > >>>    Iterator iter = broker.getIteratorByQuery(query);
> > > >>>                               
> > > >>>    while (iter.hasNext()) {
> > > >>>      Person person = (Person) iter.next();
> > > >>>      appResps.put(person.getPersonId(), 
> person.getPersonName());
> > > >>>    } 
> > > >>>    
> > > >>>    broker.commitTransaction();
> > > >>>  } catch (PersistenceBrokerException t) {
> > > >>>      broker.abortTransaction();
> > > >>>      t.printStackTrace();
> > > >>>  } finally {
> > > >>>      broker.close();
> > > >>>  }
> > > >>>
> > > >>
> > > >>hmm, I'm not familiar with webserver internals, but think if
> > > >>you press 'stop' on the browser your method will be pass
> > > >>through anyway.
> > > >>
> > > >>StackTrace of the exception on refresh?
> > > >>Caused by 'broker.abortTransaction()'?
> > > >>If yes, I think it's a thread problem.
> > > > 
> > > > 
> > > > How could I test it?
> > > > 
> > > If the exception really caused by
> > > broker.abort in searchPerson(String lastName),
> > > don't use the class field broker in your search method
> > > 
> > >  >>recommened to use
> > >  >>PersistenceBroker pb = PersistenceBrokerFactory....
> > >  >>in your methods
> > > 
> > > and repeat your test.
> > > 
> > > regards,
> > > Armin
> > > 
> > > > 
> > > > Regards
> > > > Sylvain
> > > > 
> > > > 
> > > >>regards,
> > > >>Armin
> > > >>
> > > >>
> > > >>>}
> > > >>>**code**
> > > >>>
> > > >>>
> > > >>>
> > > >>>>-----Message d'origine-----
> > > >>>>De: Armin Waibel [mailto:[EMAIL PROTECTED]
> > > >>>>Date: mercredi, 5. novembre 2003 10:22
> > > >>>>À: OJB Users List
> > > >>>>Objet: Re: PB error when the browser is stoped
> > > >>>>
> > > >>>>
> > > >>>>Hi Sylvain,
> > > >>>>
> > > >>>>[EMAIL PROTECTED] wrote:
> > > >>>>
> > > >>>>
> > > >>>>>Hello,
> > > >>>>>
> > > >>>>>I'using PB intances to retrieve info from my database.
> > > >>>>>When the time to search information is too long you can 
> > > >>>>
> > > >>>>press the "stop" button on the browser.
> > > >>>>
> > > >>>>
> > > >>>>>But when I restart my application there is a 
> > > >>>>
> > > >>>>TransactionNotInProgress exception.
> > > >>>>
> > > >>>>
> > > >>>>>Maybe the PB instance isn't closed when I stop the 
> > transaction!??
> > > >>>>>How could I close the PB intansce when I stop the browser?
> > > >>>>>How could I manage this?
> > > >>>>>Is someone has an experience?
> > > >>>>>
> > > >>>>
> > > >>>>Can you describe more detailed, some pseudo code?
> > > >>>>Which version do you use?
> > > >>>>
> > > >>>>regards,
> > > >>>>Armin
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>>>>Thanks
> > > >>>>>Sylvain
> > > >>>>>
> > > >>>>>
> > > >>>>
> > > >>>>------------------------------------------------------------
> > > >>
> > > >>---------
> > > >>
> > > >>>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > >>>>>For additional commands, e-mail: [EMAIL PROTECTED]
> > > >>>>>
> > > >>>>>
> > > >>>>>
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>>>------------------------------------------------------------
> > > >>
> > > >>---------
> > > >>
> > > >>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > >>>>For additional commands, e-mail: [EMAIL PROTECTED]
> > > >>>>
> > > >>>>
> > > >>>
> > > >>>
> > > >>>
> > > >>------------------------------------------------------------
> > > ---------
> > > >>
> > > >>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > >>>For additional commands, e-mail: [EMAIL PROTECTED]
> > > >>>
> > > >>>
> > > >>>
> > > >>
> > > >>
> > > >>
> > > >>------------------------------------------------------------
> > > ---------
> > > >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > >>For additional commands, e-mail: [EMAIL PROTECTED]
> > > >>
> > > >>
> > > > 
> > > > 
> > > > 
> > > 
> > 
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > 
> > > > 
> > > > 
> > > 
> > > 
> > > 
> > > 
> > 
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > 
> > > 
> > 
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to