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.
