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