in reply to DBD::Oracle and threading on a web server
If I'm reading the error message correctly, you don't need to build a Perl with useithreads in order to fix your compile problem. Assuming I found the right one, the error message your referring to is:
print "WARNING: Oracle is built with multi-threading libra +ries\n" . " You will most likely need to rebuild perl +from sources\n" . " with the following libraries: -lcl -lpthre +ad\n" ;
Adding those options won't build a threaded Perl, it just builds it with threadsafe C runtime libraries and the pthread libraries. The resulting Perl will still be non-threaded, and not suffer the performance hit that imposes.
In any case, if you chose to build a threaded Perl, if DBD::Oracle uses (p)threads under the covers, there is no conflict between that can ithreads. The cloning of Perl data done for spawned iThreads , is a purely Perl affair and will not happen if non-perl library spawns threads--even if that library is dynalinked to a threaded perl.
Finally, going purely on what I see in the XS and C files for DBD::Oracle, it appears to be iThreads-aware, even if it's not warrented as iThreads-safe.
In summary, just add the options above to the link command and (re)build your Perl as you would normally and your problems will (or should) just "go away", with no other risks or special considerations.
|
---|