[Mulgara-general] Connections thread safe?
Paul Gearon
gearon at ieee.org
Wed Feb 27 03:57:56 UTC 2008
On Tue, Feb 26, 2008 at 9:31 PM, Life is hard, and then you die
<ronald at innovation.ch> wrote:
> On Tue, Feb 26, 2008 at 03:16:38PM -0600, Paul Gearon wrote:
> > On Tue, Feb 26, 2008 at 1:32 PM, Alex Hall <alexhall at revelytix.com> wrote:
> > > Are Connections in Mulgara thread-safe? I am writing an abstraction
> > > layer on top of Mulgara to represent ontology models, and each "model"
> > > needs to have a Connection to the server that it uses to execute queries
> > > to get ontology metadata, list classes, etc.
> > >
> > > Since the ConnectionFactory caches the Connections that it creates, if
> > > the models all share the same factory then they will wind up using the
> > > same Connection object. This could possibly result in multiple,
> > > overlapping commands being executed on the same session from different
> > > threads. Is this OK, or should I ensure that each model gets its own
> > > Connection instance?
> >
> > The plan was to use one factory per thread. However, now that you
> > raise it, it sounds like a bad idea. I should probably put in some
> > TLS so that a shared factory will hand out new Connections for new
> > threads.
>
> How about separating the concepts of factory and pooling: let the
> ConnectionFactory be just that, a factory, which always creates a new
> connection when asked, and create a ConnectionPool (that take a
> ConnectionFactory as a parameter) which manages a pool of connections
> and which uses a check-out/check-in approach (maybe use commons-pool
> for this).
Sounds like we have a volunteer. :-)
Paul
More information about the Mulgara-general
mailing list