Hi again,

----- Original Message -----
From: "Yajun Liu" <[EMAIL PROTECTED]>
To: "OJB Users List" <[EMAIL PROTECTED]>; "Armin Waibel"
<[EMAIL PROTECTED]>
Sent: Wednesday, June 11, 2003 6:03 PM
Subject: Re: Multiple threads using one broker


> Armin,
>
> Thanks for the reply.
>
> Let me understand correctly. If I'm building a server application and
it has
> 10 worker threads. Each worker does some database manipulation.
>
> Should I create a PB for each session that a worker goes to work and
then
> close after it finish the work. The worker is pooled.
>
> Or should I create a PB for each worker for its life time?.
>
> Is PB <-> db connection  one-to-one relationship?

Yes. Each PB instance obtains one connection
if needed and close this connection (returns to pool)
on PB.commit/abortTransaction or PB.close().

> If yes, I have to use the
> first approach unless jdbc driver pools the connection.

I think both is possible (because worker is pooled too
and PB instance does not timeout).

When doing the second approach, attention should be paid
to the used connections. When doing PB-select queries without
PB-tx, the connection associated with the PB instance should be
closed (returned to pool) using
PB.serviceConnectionManager().releaseConnection()
after accomplish the query, because without using PB-tx the
associated connection was only closed on PB.close().

But I think the first approach is the better one (easier to use, better
scalability, less memory usage).

regards,
Armin

>
> --Yajun
>
> ----- Original Message -----
> From: "Armin Waibel" <[EMAIL PROTECTED]>
> To: "OJB Users List" <[EMAIL PROTECTED]>
> Sent: Wednesday, June 11, 2003 1:29 AM
> Subject: Re: Multiple threads using one broker
>
> > Hi Yajun,
> >
> > ----- Original Message -----
> > From: "Yajun Liu" <[EMAIL PROTECTED]>
> > To: "OJB Users List" <[EMAIL PROTECTED]>; "Armin Waibel"
> > <[EMAIL PROTECTED]>
> > Sent: Wednesday, June 11, 2003 7:10 AM
> > Subject: Re: Multiple threads using one broker
> >
> >
> > > Does closing broker close database connection? If yes, then it is
too
> > > expensive.
> >
> > broker.close() does
> > - return the PB instance back to PB-pool
> > - close the connection, BUT 'normal' connections
> > are pooled too (mean con.close() return connection back
> > to pool) in OJB by default.
> > Except using DataSource. OJB does never pool
> > DataSources, but DataSources are handles to a real
> > connection (and normally they are pooled too)
> >
> > regards,
> > Armin
> >
> > >
> > > --Yajun
> > >
> > > ----- Original Message -----
> > > From: "Armin Waibel" <[EMAIL PROTECTED]>
> > > To: "OJB Users List" <[EMAIL PROTECTED]>
> > > Sent: Tuesday, June 10, 2003 4:20 PM
> > > Subject: Re: Multiple threads using one broker
> > >
> > >
> > > > Hi Denis,
> > > >
> > > > ----- Original Message -----
> > > > From: "Denis Avdic" <[EMAIL PROTECTED]>
> > > > To: "OJB Users List" <[EMAIL PROTECTED]>
> > > > Sent: Tuesday, June 10, 2003 9:40 PM
> > > > Subject: Multiple threads using one broker
> > > >
> > > >
> > > > > Hi,
> > > > >
> > > > > I am using OJB with Struts and I have a number of actions that
use
> > > > > persistence broker calls to retrieve and store data.
> > > > >
> > > > > Now, if I have a number of users using the application, all
users
> > > > share
> > > > > the same broker.
> > > >
> > > > PersistenceBroker instance itself is not threadsafe. For this
reason
> > > > OJB use a PB-pool to allow a per thread handling of PB
instances.
> > > > Mean each user should get his own PB instance. Get the broker,
> > > > do the work, close the broker. Or you have
> > > > to synchronize user action.
> > > >
> > > > regards,
> > > > Armin
> > > >
> > > > > Thus I get collisions where one user would begin a
> > > > > transaction then another would begin a transaction (and get an
> > > > > exception) and then first user would commit transaction, and
when
> > the
> > > > > second user would try to commit transaction I get an error.
> > > > >
> > > > > What can I do to fix this, is there anything in the
configuration
> > I
> > > > can
> > > > > do, or does anyone have a trick for this?
> > > > >
> > > > > my broker is a regular broker I get by calling
> > > > > PersistenceBrokerFactory.defaultPersistenceBroker();
> > > > >
> > > > > TIA,
> > > > >
> > > > > Denis
> > > > >
> > > > >
> > > >
> >
> ---------------------------------------------------------------------
> > > > > 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