On Fri, 7 Jun 2002 11:53:33 +0100
Tim Bunce <[EMAIL PROTECTED]> wrote:
>> I load DBI and DBD in each thread, in an "eval" statement, hoping
>> that that will force separate loading for each thread (am I wrong?);
>
>Depends on how you're doing it.
In the sub that is called at thread creation, I put:
eval 'require DBI' ;
But I still don't know whether DBI is really loaded at each execution of the eval.
Maybe I should put all the sub in a "eval" string.
>Please try doing:
>
> DBI->connect( ..., {
> ora_init_mode => N,
> });
>
>Where N is the value of OCI_OBJECT + OCI_THREADED.
>You can get those values from the Oracle header files (probably
>$ORACLE_HOME/rdbms/demo/*.h - I don't have ready access to the
>header files to find the values for you.)
Thank you very much for this tip. For information, I found these values in
$ORACLE_HOME/rdbms/demo/oci.h:
/* the application is in threaded environment */
#define OCI_THREADED 0x01
/* the application is in object environment */
#define OCI_OBJECT 0x02
and some useful explanations in $ORACLE_HOME/rdbms/demo/ociap.h.
>A combination of loading the DBI into separate interpreters plus
>using the ora_init_mode might be good enough. Try it first.
Using "ora_init_mode", I get core-dumps only occasionally (that's far better!...). I
will investigate further to see if my own code is really correct. I'll tell you if I
find errors related to DBI.
Thank you again for your help.
--
J�r�my JUST <[EMAIL PROTECTED]>