Hello, Well I have had to wait for the sysadmins to do this, but we have done as you recommended and removed all the dbd and then tried doing a make on the system of the dbd to build a new one. It has errors relating to the same problem, but we pressed on and installed anyway Here is a trace, from an attempt to connect
perl -MDBI -e 'DBI->trace(4); DBI->connect("dbi:Oracle:CS89PROD", "/","",{ora_session_mode => 2, RaiseError => 1});' DBI 1.40-ithread dispatch trace level set to 4 (in pid 18625) Note: perl is running without the recommended perl -w option -> DBI->connect(dbi:Oracle:CS89PROD, /, ****, HASH(0x505290)) -> DBI->install_driver(Oracle) for linux perl=5.008005 pid=18625 ruid=500 euid=500 install_driver: DBD::Oracle version 1.19 loaded from /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/DBD/Oracle.pm New DBI::dr (for DBD::Oracle::dr, parent=, id=) dbih_setup_handle(DBI::dr=HASH(0x698190)=>DBI::dr=HASH(0x7809e0), DBD::Oracle::dr, 0, Null!) Had to create DBD::Oracle::dr::imp_data_size unexpectedly at /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi/DBI.pm line 1063. dbih_make_com(Null!, 0, DBD::Oracle::dr, 196, 0) thr#504010 -> STORE in DBD::_::common for DBD::Oracle::dr (DBI::dr=HASH(0x698190)~0x7809e0 'ShowErrorStatement' 1) thr#504010 STORE DBI::dr=HASH(0x7809e0) 'ShowErrorStatement' => 1 <- STORE= 1 at Oracle.pm line 61 <- install_driver= DBI::dr=HASH(0x698190) -> connect for DBD::Oracle::dr (DBI::dr=HASH(0x698190)~0x7809e0 'CS89PROD' '/' **** HASH(0x784020)) thr#504010 New DBI::db (for DBD::Oracle::db, parent=DBI::dr=HASH(0x7809e0), id=) dbih_setup_handle(DBI::db=HASH(0x7809a0)=>DBI::db=HASH(0x784000), DBD::Oracle::db, 694c30, Null!) Had to create DBD::Oracle::db::imp_data_size unexpectedly at /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi/DBI.pm line 1063. dbih_make_com(DBI::dr=HASH(0x7809e0), 775970, DBD::Oracle::db, 196, 0) thr#504010 Undefined subroutine &DBD::Oracle::db::_login called at /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/DBD/Oracle.pm line 222. <> DESTROY ignored for outer handle DBI::db=HASH(0x7809a0) (inner DBI::db=HASH(0x784000)) -> DESTROY for DBD::Oracle::db (DBI::db=HASH(0x784000)~INNER) thr#504010 <- DESTROY= (not implemented) dbih_clearcom 0x7809a0 (com 0x784f90, type 2) done. -- DBI::END -> disconnect_all for DBD::Oracle::dr (DBI::dr=HASH(0x698190)~0x7809e0) thr#504010 <- disconnect_all= (not implemented) at DBI.pm line 659 via -e line 0 ! -> DESTROY for DBD::Oracle::dr (DBI::dr=HASH(0x7809e0)~INNER) thr#504010 ! <- DESTROY= (not implemented) during global destruction dbih_clearcom 0x698190 (com 0x775970, type 1) done. ! <> DESTROY for DBI::dr=HASH(0x698190) ignored (inner handle gone) This was run as oracle the user so it owns the oracle libraries.it needs to use. Interestingly the ORACLE_HOME that the database we are trying to connect to appears to have 32 bit Perl installed and the same one liner runs fine in it If you can point me as to how we get down to finding the files, permissions that cause the error it would be appreciated Cheers Peter -----Original Message----- From: Tim Bunce [mailto:[EMAIL PROTECTED] Sent: Friday, 5 October 2007 06:46 PM To: Martin Evans Cc: dbi-users@perl.org Subject: Re: DBI and DBD::Oracle throw error Had to create DBD::Oracle::dr::imp_data_size unexpectedly On Fri, Oct 05, 2007 at 09:07:48AM +0100, Martin Evans wrote: > Peter McLarty wrote: > >Hi > >Running some redhat servers and created some scripts that use DBI and > >DBD::Oracle to access our 10.2.0.3 databases. > >The script was built and tested and has been used successfully on > >dual core 64bit Xeon CPU servers and with as best as we can tell an > >identical installation on some new quad core servers the script fails > >with the above error. > > > >We have tried a later version of DBI we were using the 1.40 version > >installed as a RPM and have installed 1.59 using perl and make. > > > >DBD::Oracle is 1.19 > > > >I have some strace output from where it fails running a simple piece > >of code that simply connects the the system as / and runs select * > >from dual as well as then would do a couple of log switches > > It may be easier to diagnose with a DBI trace instead of an strace > (see DBI_TRACE in DBI pod). In particular what are the full errors here: > > write(2, "Had to create DBD::Oracle::dr::i"..., 140) = 140 write(2, > "Use of uninitialized value in su"..., 129) = 129 > brk(0x925000) = 0x925000 > write(2, "Had to create DBD::Oracle::db::i"..., 140) = 140 write(2, > "Use of uninitialized value in su"..., 129) = 129 write(2, "Undefined > subroutine &DBD::Oracl"..., 139) = 139 The problem will be some kind of mismatch between the Oracle.pm and Oracle.so (.sl / .whatever extension your shared libraries have). I suggest you carefully find and remove all traces of DBD::Oracle and reinstall it. (Mainly delete all files under all perl @INC dirs that match DBD/Oracle.*) If you still have problems after that then post a one liner that demonstrates the problem: perl -MDBI -e 'DBI->connect("...", ...)' and we'll talk you through getting more info to diagnose the problem. Tim.