Re: error during DBD::Oracle installation (was: error during DBI installation)
Looks like time to get the development stuff you need installed. The log file says: Reading /export/home/oracle/product/9Iclient/precomp/lib/env_precomp.mk Attempting to discover Oracle OCI build rules gcc -c -I. -I/export/home/oracle/product/9Iclient/precomp/public -I/export/home/oracle/product/9Iclient/rdbms/public -I/export/home/oracle/product/9Iclient/rdbms/demo -I/export/home/oracle/product/9Iclient/plsql/public -I/export/home/oracle/product/9Iclient/network/public -I/export/home/oracle/product/9Iclient/rdbms/demo -I/export/home/oracle/product/9Iclient/rdbms/demo -I/opt/ActivePerl-5.8/lib/site_perl/5.8.7/sun4-solaris-thread-multi/auto/DBI/ -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DUSE_SITECUSTOMIZE -DNO_HASH_SEED -DBUILT_BY_ACTIVESTATE -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O-DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" -fPIC "-I/opt/ActivePerl-5.8/lib/5.8.7/sun4-solaris-thread-multi/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"9.2.0.1\" DBD_ORA_OBJ.c by executing: [make -f /export/home/oracle/product/9Iclient/precomp/demo/proc/demo_proc.mk build ECHODO=echo ECHO=echo GENCLNTSH='echo genclntsh' CC=true OPTIMIZE= CCFLAGS= EXE=DBD_ORA_EXE OBJS=DBD_ORA_OBJ.o] Oracle oci build command: [true -o DBD_ORA_EXE DBD_ORA_OBJ.o -L/export/home/oracle/product/9Iclient/lib/ -lclntsh `cat /export/home/oracle/product/9Iclient/lib/ldflags` `cat /export/home/oracle/product/9Iclient/lib/sysliblist` -R/export/home/oracle/product/9Iclient/lib -laio -lposix4 -lm -lthread] Found header files in rdbms/demo. * I can't find the header files I need in your Oracle installation. You probably need to install some more Oracle components. I'll keep going, but the compile will probably fail. See README.clients for more information. * It also says: *** If you have problems... read all the log printed above, and the README and README.help files. (Of course, you have read README by now anyway, haven't you?) So, which part of that is too hard to understand? You're running on ancient Solaris (2.6 - not supported), and you have a fairly old version of Oracle client -- did you check whether it is supported. And DBD does not mean DBD::Oracle - there are lots of DBD::DBMS drivers. On Wed, Apr 2, 2008 at 1:08 PM, Sasidharan, Radhakrishnan < [EMAIL PROTECTED]> wrote: > We are trying to run the DBD installation on a unix server. We are able to > do the Makefile.PL but it failed on the subsequent make. Attached is the > output of the two commands. Kindly help us to resolve this issue. > -- Jonathan Leffler <[EMAIL PROTECTED]> #include Guardian of DBD::Informix - v2008.0229 - http://dbi.perl.org "Blessed are we who can laugh at ourselves, for we shall never cease to be amused."
FW: error during DBI installation.
Hi, We are trying to run the DBD installation on a unix server. We are able to do the Makefile.PL but it failed on the subsequent make. Attached is the output of the two commands. Kindly help us to resolve this issue. Thanks & Regards Radhakrishnan sudo /opt/ActivePerl-5.8/bin/perl Makefile.PL Using DBI 1.48 (for perl 5.008007 on sun4-solaris-thread-multi) installed in /opt/ActivePerl-5.8/lib/site_perl/5.8.7/sun4-solaris-thread-multi/auto/DBI/ Configuring DBD::Oracle ... >>> Remember to actually *READ* the README file! Especially if you have any problems. Using Oracle in /export/home/oracle/product/9Iclient DEFINE _SQLPLUS_RELEASE = "902000100" (CHAR) Oracle version 9.2.0.1 (9.2) Found /export/home/oracle/product/9Iclient/precomp/demo/proc/demo_proc.mk Using /export/home/oracle/product/9Iclient/precomp/demo/proc/demo_proc.mk Reading /export/home/oracle/product/9Iclient/precomp/demo/proc/demo_proc.mk Reading /export/home/oracle/product/9Iclient/precomp/lib/env_precomp.mk Attempting to discover Oracle OCI build rules gcc -c -I. -I/export/home/oracle/product/9Iclient/precomp/public -I/export/home/oracle/product/9Iclient/rdbms/public -I/export/home/oracle/product/9Iclient/rdbms/demo -I/export/home/oracle/product/9Iclient/plsql/public -I/export/home/oracle/product/9Iclient/network/public -I/export/home/oracle/product/9Iclient/rdbms/demo -I/export/home/oracle/product/9Iclient/rdbms/demo -I/opt/ActivePerl-5.8/lib/site_perl/5.8.7/sun4-solaris-thread-multi/auto/DBI/ -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DUSE_SITECUSTOMIZE -DNO_HASH_SEED -DBUILT_BY_ACTIVESTATE -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O-DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" -fPIC "-I/opt/ActivePerl-5.8/lib/5.8.7/sun4-solaris-thread-multi/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"9.2.0.1\" DBD_ORA_OBJ.c by executing: [make -f /export/home/oracle/product/9Iclient/precomp/demo/proc/demo_proc.mk build ECHODO=echo ECHO=echo GENCLNTSH='echo genclntsh' CC=true OPTIMIZE= CCFLAGS= EXE=DBD_ORA_EXE OBJS=DBD_ORA_OBJ.o] Oracle oci build command: [true -o DBD_ORA_EXE DBD_ORA_OBJ.o -L/export/home/oracle/product/9Iclient/lib/ -lclntsh `cat /export/home/oracle/product/9Iclient/lib/ldflags` `cat /export/home/oracle/product/9Iclient/lib/sysliblist` -R/export/home/oracle/product/9Iclient/lib -laio -lposix4 -lm -lthread] Found header files in rdbms/demo. * I can't find the header files I need in your Oracle installation. You probably need to install some more Oracle components. I'll keep going, but the compile will probably fail. See README.clients for more information. * Checking for functioning wait.ph System: perl5.008007 sunos sparky 5.6 generic_105181-35 sun4u sparc sunw,ultra-5_10 Compiler: gcc -O -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DUSE_SITECUSTOMIZE -DNO_HASH_SEED -DBUILT_BY_ACTIVESTATE -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 Linker: /usr/ccs/bin/ld Sysliblist: -lnsl -lsocket -lgen -ldl -lsched Oracle makefiles would have used these definitions but we override them: CC: cc CFLAGS: $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\ $(SHARED_CFLAG) $(USRFLAGS) [$(GFLAG) -xO3 $(CDEBUG) $(NOKPIC_CCFLAGS) -K PIC -DPRECOMP -I. -I/export/home/oracle/product/9Iclient/precomp/public -I/export/home/oracle/product/9Iclient/rdbms/public -I/export/home/oracle/product/9Iclient/rdbms/demo -I/export/home/oracle/product/9Iclient/plsql/public -I/export/home/oracle/product/9Iclient/network/public -DSLMXMX_ENABLE -DSLTS_ENABLE -D_SVID_GETTOD -D_REENTRANT $(LPFLAGS) $(USRFLAGS)] LDFLAGS: -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME) [-o $@ -L/export/home/oracle/product/9Iclient/precomp/lib/ -L$(LIBHOME)] Linking with OTHERLDFLAGS = -L/export/home/oracle/product/9Iclient/lib/ -lclntsh `cat /export/home/oracle/product/9Iclient/lib/ldflags` `cat /export/home/oracle/product/9Iclient/lib/sysliblist` -R/export/home/oracle/product/9Iclient/lib -laio -lposix4 -lm -lthread [from 'build' rule] LD_RUN_PATH=/export/home/oracle/product/9Iclient/lib:/export/home/oracle/product/9Iclient/rdbms/lib Using DBD::Oracle 1.16. Using DBD::Oracle 1.16. Using DBI 1.48 (for perl 5.008007 on sun4-solaris-thread-multi) installed in /opt/ActivePerl-5.8/lib/site_perl/5.8.7/sun4-solaris-thread-multi/auto/DBI/ Writing Makefile for DBD::Oracle *** If you have problems... read all the log printed above, and the README and README.help files. (Of course, you have read README by now anyway, haven't you?) [EMAIL PROTECTED]:21>make Skip blib/lib/DBD/Oracle.pm (unchanged) Skip blib/lib/oraperl.ph (unchanged) Skip blib/arch/auto/DBD/Oracle/dbdimp.h (unchanged) Skip blib/arch/auto/DBD/Oracle/ocitrace.h (unchanged) Skip blib/lib/Ora
Re: execute() failing with: Not an error!
On Wed Apr 02, 2008 at 04:53:36PM +0100, Tim Bunce wrote: > On Wed, Apr 02, 2008 at 11:55:53AM +0200, Mark Lawrence wrote: > > After hours of googling and testing I'm down to you guys as my last > > resort. I have an issue that results in execute() failing with the > > error: > > > > not an error(21) at dbdimp.c line 376 > > > The test script below brings out the problem, everywhere except my > > development environment. I get the same problem if I > > use prepare() instead of prepare_cached(). > > > > Would really appreciate it if someone can duplicate this, especially > > against a target other than DBD::SQLite (that's all I'm able to try at > > the moment). Any ideas before I start submitting bugs to RT? > > I believe it's an error from DBD::SQLite > > Google http://www.google.com/search?q=sqlite+error+%2B21 suggests > http://www.sqlite.org/cvstrac/wiki?p=LibraryRoutineCalledOutOfSequence And/or maybe http://rt.cpan.org/Ticket/Display.html?id=9792 and http://rt.cpan.org/Ticket/Display.html?id=30558. With the one-line patch to DBD::SQLite that's in ticket 30558 things work again for me. I guess Debian had patched this long ago so I didn't see the failure until the CPAN testers started sending in reports. What an extremely useful service to module authors... Although until Matt releases a new version I'm kinda stuck. Can't go round patching everybodys machines. Mark. -- Mark Lawrence
Re: execute() failing with: Not an error!
On Wed, Apr 02, 2008 at 11:55:53AM +0200, Mark Lawrence wrote: > After hours of googling and testing I'm down to you guys as my last > resort. I have an issue that results in execute() failing with the > error: > > not an error(21) at dbdimp.c line 376 > The test script below brings out the problem, everywhere except my > development environment. I get the same problem if I > use prepare() instead of prepare_cached(). > > Would really appreciate it if someone can duplicate this, especially > against a target other than DBD::SQLite (that's all I'm able to try at > the moment). Any ideas before I start submitting bugs to RT? I believe it's an error from DBD::SQLite Google http://www.google.com/search?q=sqlite+error+%2B21 suggests http://www.sqlite.org/cvstrac/wiki?p=LibraryRoutineCalledOutOfSequence Tim. > Cheers, > Mark. > > > 1. Debian GNU/Linux (i686), DBI v1.53, Perl v5.8.8, DBD::SQLite v1.14 > = > > 1..3 > ok 1 - insert id 1 > DBD::SQLite::st execute failed: PRIMARY KEY must be unique(19) at dbdimp.c > line 403 at x.pl line 32. > ok 2 - insert duplicate id 1 > ok 3 - insert id 2 > closing dbh with active statement handles at x.pl line 46. > > > 2. Windows XP, DBI v1.601, Perl v5.10.0 (Strawberry), DBD::SQLite v1.14 > === > 1..3 > ok 1 - insert id 1 > DBD::SQLite::st execute failed: PRIMARY KEY must be unique(19) at dbdimp.c > line 403 at x.pl line 32. > ok 2 - insert duplicate id 1 > DBD::SQLite::st execute failed: not an error(21) at dbdimp.c line 376 at x.pl > line 40. > not ok 3 - insert id 2 > # Failed test 'insert id 2' > # at x.pl line 41. > # Looks like you failed 1 test of 3. > > > 3. The Test Case > > > #!/usr/bin/perl > BEGIN {$ENV{DBI_TRACE} = 0;} > use strict; > use warnings; > use Test::More tests => 3; > use DBI; > > my $dbh; > my $sth; > my $res; > > unlink('test.db'); > $dbh = DBI->connect('dbi:SQLite:test.db'); > $dbh->{RaiseError} = 0; > > $dbh->do(' > CREATE TABLE artists ( > id INTEGER, > name VARCHAR(32), > PRIMARY KEY(id) > ) > '); > > > $sth = $dbh->prepare_cached('INSERT INTO artists(id,name) VALUES(?,?)'); > $res = $sth->execute(1,'one'); > ok($res, 'insert id 1'); > $sth->finish; > > $dbh->begin_work; > $sth = $dbh->prepare_cached('INSERT INTO artists(id,name) VALUES(?,?)'); > $res = $sth->execute(1,'one'); > ok(!$res, 'insert duplicate id 1'); > $dbh->commit if($res); > $dbh->rollback if(!$res); > $sth->finish; > > $dbh->begin_work; > $sth = $dbh->prepare_cached('INSERT INTO artists(id,name) VALUES(?,?)'); > $res = $sth->execute(2, 'two'); # <= This fails: "not an error" > ok($res, 'insert id 2'); > $dbh->commit if($res); > $dbh->rollback if(!$res); > $sth->finish; > > $dbh->disconnect; > exit; > > > -- > Mark Lawrence
Re: execute() failing with: Not an error!
On Wed Apr 02, 2008 at 11:55:53AM +0200, Mark Lawrence wrote: > $dbh->begin_work; > $sth = $dbh->prepare_cached('INSERT INTO artists(id,name) VALUES(?,?)'); > $res = $sth->execute(1,'one'); > ok(!$res, 'insert duplicate id 1'); > $dbh->commit if($res); > $dbh->rollback if(!$res); > $sth->finish; Yes, I also know that the transaction stuff is not necessary here, but I was using transactions in my code and just duplicated here. The failure also occurs with autocommit... Mark. -- Mark Lawrence
execute() failing with: Not an error!
After hours of googling and testing I'm down to you guys as my last resort. I have an issue that results in execute() failing with the error: not an error(21) at dbdimp.c line 376 The test script below brings out the problem, everywhere except my development environment. I get the same problem if I use prepare() instead of prepare_cached(). Would really appreciate it if someone can duplicate this, especially against a target other than DBD::SQLite (that's all I'm able to try at the moment). Any ideas before I start submitting bugs to RT? Cheers, Mark. 1. Debian GNU/Linux (i686), DBI v1.53, Perl v5.8.8, DBD::SQLite v1.14 = 1..3 ok 1 - insert id 1 DBD::SQLite::st execute failed: PRIMARY KEY must be unique(19) at dbdimp.c line 403 at x.pl line 32. ok 2 - insert duplicate id 1 ok 3 - insert id 2 closing dbh with active statement handles at x.pl line 46. 2. Windows XP, DBI v1.601, Perl v5.10.0 (Strawberry), DBD::SQLite v1.14 === 1..3 ok 1 - insert id 1 DBD::SQLite::st execute failed: PRIMARY KEY must be unique(19) at dbdimp.c line 403 at x.pl line 32. ok 2 - insert duplicate id 1 DBD::SQLite::st execute failed: not an error(21) at dbdimp.c line 376 at x.pl line 40. not ok 3 - insert id 2 # Failed test 'insert id 2' # at x.pl line 41. # Looks like you failed 1 test of 3. 3. The Test Case #!/usr/bin/perl BEGIN {$ENV{DBI_TRACE} = 0;} use strict; use warnings; use Test::More tests => 3; use DBI; my $dbh; my $sth; my $res; unlink('test.db'); $dbh = DBI->connect('dbi:SQLite:test.db'); $dbh->{RaiseError} = 0; $dbh->do(' CREATE TABLE artists ( id INTEGER, name VARCHAR(32), PRIMARY KEY(id) ) '); $sth = $dbh->prepare_cached('INSERT INTO artists(id,name) VALUES(?,?)'); $res = $sth->execute(1,'one'); ok($res, 'insert id 1'); $sth->finish; $dbh->begin_work; $sth = $dbh->prepare_cached('INSERT INTO artists(id,name) VALUES(?,?)'); $res = $sth->execute(1,'one'); ok(!$res, 'insert duplicate id 1'); $dbh->commit if($res); $dbh->rollback if(!$res); $sth->finish; $dbh->begin_work; $sth = $dbh->prepare_cached('INSERT INTO artists(id,name) VALUES(?,?)'); $res = $sth->execute(2, 'two'); # <= This fails: "not an error" ok($res, 'insert id 2'); $dbh->commit if($res); $dbh->rollback if(!$res); $sth->finish; $dbh->disconnect; exit; -- Mark Lawrence