I am a DBA at Invacare corp. Several years ago we had a developer in here
to wtie an ETL program in PERL to run our nightly Information Warehouse
loads. This has been running fine until I tried to upgrade the Oracle
Dtaabase to 9i v9.2.0.3. Now I cannot seem to get PERL to lnk with the
database with the make test command. I have followed every note I could
find including the README (keep in mind I am a DBA not a PERL developer
(which we have none on staff)) to no avail. I keep getting stuck in the
same place.
OS = AIX 4.3.3 - ksh
Perl = 5.00502
Database = Oracle 9.2.0.3
DBD = 1.03
Here are the perl -V specs
Summary of my perl5 (5.0 patchlevel 5 subversion 2) configuration:
Platform:
osname=aix, osvers=4.3.2.0, archname=aix
uname='aix uss7a01 3 4 000931374c00 '
hint=previous, useposix=true, d_sigaction=define
usethreads=undef useperlio=undef d_sfio=undef
Compiler:
cc='/usr/vac/bin/xlc_r', optimize='-O', gccversion=
cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE
-qmaxmem=16384'
ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE
-qmaxmem=16384'
stdchar='unsigned char', d_stdstdio=define, usevfork=false
intsize=4, longsize=4, ptrsize=4, doublesize=8
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
alignbytes=8, usemymalloc=n, prototype=define
Linker and Libraries:
ld='ld', ldflags =' -L/opt/iw/packages/lib'
libpth=/usr/vac/lib /opt/iw/packages/lib /lib /usr/lib /usr/ccs/lib
libs=-L/usr/vac/lib -lnsl -ldbm -ldl -lld -lm_r -lc_r -lcrypt -lbsd
-lPW
libc=, so=a, useshrplib=false, libperl=libperl.a
Dynamic Linking:
dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='-bE:perl.exp'
cccdlflags=' ', lddlflags='-bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp
-bE:$(BASEEXT).exp -b noentry -lc_r -L/opt/iw/packages/lib'
Characteristics of this binary (from libperl):
Built under aix
Compiled at Jun 4 1999 21:34:47
@INC:
/opt/iw/packages/lib/perl5/5.00502/aix
/opt/iw/packages/lib/perl5/5.00502
/opt/iw/packages/lib/perl5/site_perl/5.005/aix
/opt/iw/packages/lib/perl5/site_perl/5.005
.
I found that you need to export 2 parameters before starting
$export OBJECT_MODE=64
$export export ORACLE_USERID= user/pass
from there i ran a
usaxs02:iwdba:/opt/iw/build/perl/modules/DBD-Oracle-1.03>make realclean
rm -f blib/script/ora_explain
rm -rf Oracle.c Oracle.xsi dll.base dll.exp sqlnet.log
libOracle.def ./blib Makefile.aperl blib/arch/auto/DBD/Oracle/extrali
bs.all perlmain.c mon.out core so_locations pm_to_blib *~ */*~ */*/*~ *.o
*.a perl.exe Oracle.bs Oracle.bso Oracle.def Oracle.exp
mv Makefile Makefile.old > /dev/null 2>&1
rm -rf blib/lib/auto/DBD/Oracle blib/arch/auto/DBD/Oracle
rm -f blib/arch/auto/DBD/Oracle/Oracle.so
blib/arch/auto/DBD/Oracle/Oracle.bs
rm -f blib/arch/auto/DBD/Oracle/Oracle.a
rm -f blib/lib/Oraperl.pm blib/lib/DBD/Oracle.pm
blib/lib/oraperl.ph
rm -rf Makefile Makefile.old
usaxs02:iwdba:/opt/iw/build/perl/modules/DBD-Oracle-1.03>perl Makefile.PL
Using DBI 1.13 installed in
/opt/iw/packages/lib/perl5/site_perl/5.005/aix/auto/DBI
Configuring DBD::Oracle ...
>>> Remember to actually *READ* the README file!
Especially if you have any problems.
Using Oracle in /ORACLE/iwdba/9.2.0
Found /ORACLE/iwdba/9.2.0/rdbms/demo/demo_rdbms.mk
Using /ORACLE/iwdba/9.2.0/rdbms/demo/demo_rdbms.mk
Reading /ORACLE/iwdba/9.2.0/rdbms/demo/demo_rdbms.mk.
Reading /ORACLE/iwdba/9.2.0/rdbms/lib/env_rdbms.mk.
Deleting -b64 from COMPOBJS because -b64 doesn't exist.
Deleting ORA_NLS = $(ORACLE_HOME)/ocommon/nls/admin/data/
because it is not already set in the environment
and it can cause ORA-01019 errors.
Deleting ORA_NLS33 = $(ORACLE_HOME)/ocommon/nls/admin/data/
because it is not already set in the environment
and it can cause ORA-01019 errors.
Use of uninitialized value at Makefile.PL line 735.
Evaluating `cat $(LIBHOME)sysliblist`
expanded `cat /ORACLE/iwdba/9.2.0/lib/sysliblist`
returned '/lib/crt0_64.o -ldl -lc -lm -lpthreads -lodm -lbsd_r -lld'
Found header files in rdbms/demo.
Warning: You will probably need to rebuild perl using the xlc_r compiler.
You may also need do: ORACCENV='cc=xlc_r'; export ORACCENV
Also see the README about the -p option
System: perl5.00502 aix uss7a01 3 4 000931374c00
Compiler: /usr/vac/bin/xlc_r -O -D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE -qmaxmem=16384
Linker: /usr/bin/ld
Oracle makefiles would have used these definitions but we override them:
CC: $(ORACLE_HOME)/bin/oraxlc $(ORAXLCFLAGS)
CFLAGS: $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\
$(SHARED_CFLAG) $(USRFLAGS)
[$(GFLAG) -O3 $(CDEBUG) -q64 -I/ORACLE/iwdba/9.2.0/rdbms/demo
-I/ORACLE/iwdba/9.2.0/rdbms/public -I/ORACLE/iwdba/9.2.0/pl
sql/public -I/ORACLE/iwdba/9.2.0/network/public $(SPFLAGS) $(LPFLAGS)
$(USRFLAGS)]
build: $(CC) $(LDFLAGS) $(ORALIBPATH) -o $(EXE) $(OBJS)
$(OCISHAREDLIBS)
expanded `cat /ORACLE/iwdba/9.2.0/lib/sysliblist`
[ /ORACLE/iwdba/9.2.0/bin/oraxlc $(ORAXLCFLAGS) -q64 -L
$(LIBHOME) -L/ORACLE/iwdba/9.2.0/rdbms/lib/ -o $(EXE) $(OBJS) -lcl
ntsh $(EXPDLIBS) -lld -lm /lib/crt0_64.o -ldl -lc -lm -lpthreads -lodm
-lbsd_r -lld -lm $(USRLIBS) -lpthreads]
LDFLAGS: -q64
[-q64]
Linking with /ORACLE/iwdba/9.2.0/rdbms/lib/defopt.o /lib/crt0_64.o
-lclntsh -lld -lm -ldl -lc -lm -lpthreads -lodm -lbsd_r -lld -l
m -lpthreads [from $(DEF_OPT) $(OCISHAREDLIBS)]
Checking if your kit is complete...
Looks good
Warning: By default new modules are installed into your 'site_lib'
directories. Since site_lib directories come after the normal library
directories you must delete any old DBD::Oracle files and directories from
your 'privlib' and 'archlib' directories and their auto subdirectories.
Using DBD::Oracle 1.03.
Using DBI 1.13 installed in
/opt/iw/packages/lib/perl5/site_perl/5.005/aix/auto/DBI
Writing Makefile for DBD::Oracle
*** If you have problems, read the README and README.help files ***
(Of course, you have read README by now anyway, haven't you?)
usaxs02:iwdba:/opt/iw/build/perl/modules/DBD-Oracle-1.03>make
mkdir blib
mkdir blib/lib
mkdir blib/lib/DBD
cp Oraperl.pm blib/lib/Oraperl.pm
cp Oracle.pm blib/lib/DBD/Oracle.pm
cp oraperl.ph blib/lib/oraperl.ph
/opt/iw/packages/bin/perl "
-I/opt/iw/packages/lib/perl5/5.00502/aix" "
-I/opt/iw/packages/lib/perl5/5.00502" -e 'use ExtUtils
::Mksymlists; Mksymlists("NAME" => "DBD::Oracle", "DL_FUNCS" => { },
"DL_VARS" => []);'
/opt/iw/packages/bin/perl -p -e "s/~DRIVER~/Oracle/g" <
/opt/iw/packages/lib/perl5/site_perl/5.005/aix/auto/DBI/Driver.xst >
Oracle.xsi
/opt/iw/packages/bin/perl -I/opt/iw/packages/lib/perl5/5.00502/aix
-I/opt/iw/packages/lib/perl5/5.00502 /opt/iw/packages/lib
/perl5/5.00502/ExtUtils/xsubpp -typemap
/opt/iw/packages/lib/perl5/5.00502/ExtUtils/typemap Oracle.xs >Oracle.tc &&
mv Oracle.tc Or
acle.c
/usr/vac/bin/xlc_r -c -I/ORACLE/iwdba/9.2.0/rdbms/demo
-I/ORACLE/iwdba/9.2.0/rdbms/public -I/ORACLE/iwdba/9.2.0/plsql/public
-I/ORACLE/iwdba/9.2.0/network/public -I/ORACLE/iwdba/9.2.0/rdbms/demo
-I/ORACLE/iwdba/9.2.0/rdbms/demo -I/opt/iw/packages/lib/perl5
/site_perl/5.005/aix/auto/DBI -D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE -qmaxmem=16384 -O -DVERSION=\"1.03\" -DXS_VERSION=
\"1.03\" -I/opt/iw/packages/lib/perl5/5.00502/aix/CORE Oracle.c
/usr/vac/bin/xlc_r -c -I/ORACLE/iwdba/9.2.0/rdbms/demo
-I/ORACLE/iwdba/9.2.0/rdbms/public -I/ORACLE/iwdba/9.2.0/plsql/public
-I/ORACLE/iwdba/9.2.0/network/public -I/ORACLE/iwdba/9.2.0/rdbms/demo
-I/ORACLE/iwdba/9.2.0/rdbms/demo -I/opt/iw/packages/lib/perl5
/site_perl/5.005/aix/auto/DBI -D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE -qmaxmem=16384 -O -DVERSION=\"1.03\" -DXS_VERSION=
\"1.03\" -I/opt/iw/packages/lib/perl5/5.00502/aix/CORE dbdimp.c
/usr/vac/bin/xlc_r -c -I/ORACLE/iwdba/9.2.0/rdbms/demo
-I/ORACLE/iwdba/9.2.0/rdbms/public -I/ORACLE/iwdba/9.2.0/plsql/public
-I/ORACLE/iwdba/9.2.0/network/public -I/ORACLE/iwdba/9.2.0/rdbms/demo
-I/ORACLE/iwdba/9.2.0/rdbms/demo -I/opt/iw/packages/lib/perl5
/site_perl/5.005/aix/auto/DBI -D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE -qmaxmem=16384 -O -DVERSION=\"1.03\" -DXS_VERSION=
\"1.03\" -I/opt/iw/packages/lib/perl5/5.00502/aix/CORE oci7.c
/usr/vac/bin/xlc_r -c -I/ORACLE/iwdba/9.2.0/rdbms/demo
-I/ORACLE/iwdba/9.2.0/rdbms/public -I/ORACLE/iwdba/9.2.0/plsql/public
-I/ORACLE/iwdba/9.2.0/network/public -I/ORACLE/iwdba/9.2.0/rdbms/demo
-I/ORACLE/iwdba/9.2.0/rdbms/demo -I/opt/iw/packages/lib/perl5
/site_perl/5.005/aix/auto/DBI -D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE -qmaxmem=16384 -O -DVERSION=\"1.03\" -DXS_VERSION=
\"1.03\" -I/opt/iw/packages/lib/perl5/5.00502/aix/CORE oci8.c
1500-030: (I) INFORMATION: fetch_func_autolob: Additional optimization
may be attained by recompiling and specifying MAXMEM opti
on with a value greater than 16384.
mkdir blib/arch
mkdir blib/arch/auto
mkdir blib/arch/auto/DBD
mkdir blib/arch/auto/DBD/Oracle
Running Mkbootstrap for DBD::Oracle ()
chmod 644 Oracle.bs
LD_RUN_PATH="/ORACLE/iwdba/9.2.0/lib:/lib" ld -o
blib/arch/auto/DBD/Oracle/Oracle.so -bhalt:4 -bM:SRE -bI:/opt/iw/packages/
lib/perl5/5.00502/aix/CORE/perl.exp -bE:Oracle.exp -b noentry -lc_r
-L/opt/iw/packages/lib Oracle.o dbdimp.o oci7.o oci8.o /ORACL
E/iwdba/9.2.0/rdbms/lib/defopt.o /lib/crt0_64.o
-L/ORACLE/iwdba/9.2.0/lib/ -lclntsh -lld -lm -ldl -lc -lm -lpthreads -lodm
-lbsd_
r -lld -lm -lpthreads
chmod 755 blib/arch/auto/DBD/Oracle/Oracle.so
cp Oracle.bs blib/arch/auto/DBD/Oracle/Oracle.bs
chmod 644 blib/arch/auto/DBD/Oracle/Oracle.bs
mkdir blib/lib/auto/DBD
mkdir blib/lib/auto/DBD/Oracle
mkdir blib/man1
mkdir blib/man3
Manifying blib/man3/DBD::Oraperl.3
Manifying blib/man3/DBD::Oracle.3
Manifying blib/man1/ora_explain.1
mkdir blib/script
cp ora_explain blib/script/ora_explain
/opt/iw/packages/bin/perl -I/opt/iw/packages/lib/perl5/5.00502/aix
-I/opt/iw/packages/lib/perl5/5.00502 -MExtUtils::MakeMake
r -e "MY->fixin(shift)" blib/script/ora_explain
Target "makemakerdflt" is up to date.
usaxs02:iwdba:/opt/iw/build/perl/modules/DBD-Oracle-1.03>make test
PERL_DL_NONLAZY=1 /opt/iw/packages/bin/perl -Iblib/arch -Iblib/lib
-I/opt/iw/packages/lib/perl5/5.00502/aix -I/opt/iw/packag
es/lib/perl5/5.00502 -e 'use Test::Harness qw(&runtests $verbose);
$verbose=0; runtests @ARGV;' t/*.t
t/base..............install_driver(Oracle) failed: Can't load
'blib/arch/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: dlopen:
blib/arch/auto/DBD/Oracle/Oracle.so: can't load library
blib/arch/auto/DBD/Oracle/Oracle.so103 blib/arch/auto/DBD/Oracle/Oracle.so
a
t /opt/iw/packages/lib/perl5/5.00502/aix/DynaLoader.pm line 168.
at (eval 1) line 2
at t/base.t line 17
dubious
Test returned status 8 (wstat 2048, 0x800)
DIED. FAILED tests 4-5
Failed 2/5 tests, 60.00% okay
t/general...........install_driver(Oracle) failed: Can't load
'blib/arch/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: dlopen:
blib/arch/auto/DBD/Oracle/Oracle.so: can't load library
blib/arch/auto/DBD/Oracle/Oracle.so103 blib/arch/auto/DBD/Oracle/Oracle.so
a
t /opt/iw/packages/lib/perl5/5.00502/aix/DynaLoader.pm line 168.
at (eval 1) line 2
at t/general.t line 20
dubious
Test returned status 8 (wstat 2048, 0x800)
t/long..............Can't load 'blib/arch/auto/DBD/Oracle/Oracle.so' for
module DBD::Oracle: dlopen: blib/arch/auto/DBD/Oracle/Oracl
e.so: can't load library blib/arch/auto/DBD/Oracle/Oracle.so103
blib/arch/auto/DBD/Oracle/Oracle.so at /opt/iw/packages/lib/perl5/5.
00502/aix/DynaLoader.pm line 168.
at t/long.t line 4
BEGIN failed--compilation aborted at t/long.t line 4.
dubious
Test returned status 8 (wstat 2048, 0x800)
t/plsql.............Can't load 'blib/arch/auto/DBD/Oracle/Oracle.so' for
module DBD::Oracle: dlopen: blib/arch/auto/DBD/Oracle/Oracl
e.so: can't load library blib/arch/auto/DBD/Oracle/Oracle.so103
blib/arch/auto/DBD/Oracle/Oracle.so at /opt/iw/packages/lib/perl5/5.
00502/aix/DynaLoader.pm line 168.
at t/plsql.t line 17
BEGIN failed--compilation aborted at t/plsql.t line 17.
dubious
Test returned status 8 (wstat 2048, 0x800)
t/reauth............skipping test on this platform
Failed Test Status Wstat Total Fail Failed List of failed
-------------------------------------------------------------------------------
t/base.t 8 2048 5 2 40.00% 4-5
t/general.t 8 2048 ?? ?? % ??
t/long.t 8 2048 ?? ?? % ??
t/plsql.t 8 2048 ?? ?? % ??
1 test skipped.
Failed 4/5 test scripts, 20.00% okay. 2/5 subtests failed, 60.00% okay.
make: 1254-004 The error code from the last command is 2.
any ideas?
Mike Paladino
Database Administrator
ext. (440)326-3995
-----------------------------------------
The contents of this message represent the opinions of the employee
and not necessarily the opinions of Invacare Corporation.