General
cancel
Showing results for 
Search instead for 
Did you mean: 

Error using perl DBD module for Oracle

sshp
Advisor

Error using perl DBD module for Oracle


Using perl DBD-ORacle-1.12 and DBI-1.30

Am running a perl script to run an Oracle Store procedure. Getting folowing message from perl script.
Can't load /opt/perl/lib/site_perl/5.6.1/PA-RISC1.1-thread-multi/auto/DBD/Oracle/Oracle.slOracle.sl for module DBD::Oracle:Exec format error at /opt/perl/lib/5.6.1/PA-RISC1.1-thread-multiDynaLoader.pm line 206

HP-UX 11.00 - Sept 2002 release
Oracle 8.1.7
10 REPLIES
sshp
Advisor

Re: Error using perl DBD module for Oracle

Actully folowing is the complete error
*******************
/usr/lib/dld.sl: Can't shl_load() a library containing Thread Local Storage: /us
r/lib/libcl.2
/usr/lib/dld.sl: Exec format error
Can't load '/opt/perl/lib/site_perl/5.6.1/PA-RISC1.1-thread-multi/auto/DBD/Oracl
e/Oracle.sl' for module DBD::Oracle: Exec format error at /opt/perl/lib/5.6.1/PA
-RISC1.1-thread-multi/DynaLoader.pm line 206.
Compilation failed in require at ./hillerbundle.pl line 7.
BEGIN failed--compilation aborted at ./hillerbundle.pl line 7.
Brian Crabtree
Honored Contributor

Re: Error using perl DBD module for Oracle

I think that perl for DBD needs to be installed with shared threads. You should look through the documentation for your version of DBD to see what changes need to be made in the perl installation for this to occur.

Brian
H.Merijn Brand (procura
Honored Contributor

Re: Error using perl DBD module for Oracle

Please also state OS (11.00 or 10.20 or 11i) and system architecture PA-RISC 1.1 or PA-RISC 2.0

threaded perl combined with Oracle is deadly!

For Oracle prepared perls, either fetch the appropriate port (including DBI-1.30) from my ITRC site on https://www.beepz.com/personal/merijn or fetch a recent perl from the HP porting center (read recent as not older than 3 month)
Enjoy, Have FUN! H.Merijn
sshp
Advisor

Re: Error using perl DBD module for Oracle

Procura,
Thanks for your reply here is the system information -
HP-UX11.00 32bit, 64 bit OS
CPU - PA2.0 PA8700
I had gotten latest 5.6.1 perl which is multithreaded and used DBI-1.30 and DBD-Oracle-1.12.
Also I looked up your site, and was having problems downloading the Oracle prepped perl. If clicked on the link on your site , it brought up the binary version.
Also I noticed in your notes, you do not mention DBD-Oracle for your perl build.

-Thanks
sshp
Advisor

Re: Error using perl DBD module for Oracle

Anoother question...
Is it correct to understand that to work with Oracle modules ,the perl should not be multithreaded? Because perl5.6.1 from HP-Unix porting center is multithreaded.
Thanks
H.Merijn Brand (procura
Honored Contributor

Re: Error using perl DBD module for Oracle

My ports are non-threaded. The 5.6.1 you have from HP is most likely coming from the application CD. Newer builds from HP porting center's are not threaded anymore

My ports are not SD (software depot), but tbz's (tar bzip). Both GNU tar and bzip2 are also available on beepz.

Right click on the link and choose "save target as"

# cd /opt
# bzip2 -d
(I think) It should end up in /opt/perl

a5:/u/usr/merijn 101 > ll /opt/perl
total 4
9033 drwxrwxrwx 5 root sys 1024 Aug 2 16:28 .
2 drwxr-xr-x 39 root root 1024 Nov 11 18:47 ..
12813 -rw-rw-rw- 1 root sys 387 Aug 2 16:11 README
10472 drwxr-xr-x 2 merijn softwr 1024 Aug 2 16:07 bin
10474 drwxr-xr-x 4 merijn softwr 96 Jul 19 12:16 lib
10482 drwxr-xr-x 4 merijn softwr 96 Jul 19 12:17 man
a5:/u/usr/merijn 102 >

perl's to be used with Oracle should defenitely not be threaded perls, because they interfere with Oracles understanding of threads.

That the OS is 64bit does not inhibit you to run the (much faster) 32bit perl

I cannot supply DBD-Oracle, because of the zillions of different ports of Oracle out there in the scary real world. You should build it yourself.
Enjoy, Have FUN! H.Merijn
sshp
Advisor

Re: Error using perl DBD module for Oracle

Pocura,
THANKS FOR YOUR HELP!!
It was the multithreded perl that was causing the problem.

From HP Unix Porting center I got perl 5.8.0 , which was just put in the last couple of days (I think).
Once I got this perl I loaded DBI-1.30 and DBD-Oracle-1.12

And I was able to connect to a remote DB via perl script.

Thank You
H.Merijn Brand (procura
Honored Contributor

Re: Error using perl DBD module for Oracle

Points will be gratefully accepted :)
Enjoy, Have FUN! H.Merijn
Sunil Talreja
Occasional Advisor

Re: Error using perl DBD module for Oracle

I wasted may to much time to make perl and DBD::Oracle to work on HP 11.11 system (rp8400) sytem.

Finally was able to compile my perl 5.8.6 and the DBI and DBD modules. Two sites below were usefull

http://coding.derkeiler.com/Archive/Perl/perl.dbi.users/2003-10/0037.html

http://www.codecomments.com/PERL_DBI/message156458.html

NOTE:
Either set TWO_TASK or ORACLE_SID not both. They both mean same thing. Learnt the hard way.

Also while compiling perl got two errors during make test. one was ping test and other on lib/ExtUtils/t/Constant). Just ignore them. So far Everything looks good.

I am doing cut and paste of one of above links and attaching it as file, just in case that link is removed in future
H.Merijn Brand (procura
Honored Contributor

Re: Error using perl DBD module for Oracle

The ping error is a misterious failure that arose after a patch to the HP kernel.

We (perl developers) still have not found the cause. I also ignore it.

The Constant return 256 with 0 expected could be 32 vs 64bit process return value clipping. POSIX defines 8 bit if I'm not mistaken. I'll investigate.

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn