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]