On Mon, Aug 26, 2002 at 09:30:04PM +0200, Gerald Richter wrote:
> Hi Tim,
> 
> > >
> > > I know it isn't an easy thing. My main hope was that the error message
> at
> > > the end of my report
> > >
> > >
> > > > > *********** Internal ERROR kghubatchfree_01 [0x1ecb290] ***********
> > > > > additional information [0] [0] [0]
> > > > > ***** Dump of memory around addr 0x1ecb290:
> > > > >....
> > >
> > > does tell you anything obvious, that isn't obvious to me because of my
> > > limited OCI knowledge.
> >
> > The only thing it tells me is that the symptom is deep in the internals :(
> >
> 
> I happy to tell you that I have solved the problem.

Excellent news.

> By allocating a separate
> environment handle for every database handle I share, it works now as
> expected, that means I can share a Oracle database connection between
> threads. I append a patch against 1.12, that contains the follwing things:
> 
> - changed fprintf to PerlIO_printf and FILE * to PerlIO * to avoid compiler
> warnings and segfault when traceing
> - make DBD::Orcale run with ithread:
> -- add CLONE sub to reset $drh
> -- make ora_long, _trunc, _cache, _cache_o per thread
> - Add connect attribute ora_dbh_share to allow sharing of database
> connection
> - Add some docs about ora_dbh_share to Oracle.pm
> 
> I hope these things will apear somehow in the next DBD::Oracle version when
> you get time to work on it.

I've applied the patch. Many thanks.

Any chance you could come up with a standard t/*.t test for it?

Tim.

Reply via email to