in reply to Re: Env Variables
in thread Env Variables

Yes, I have set that.. But still no go..

Replies are listed 'Best First'.
Re^3: Env Variables
by marto (Cardinal) on Jun 10, 2010 at 15:42 UTC

    Can you post relevant code please?

      sure thing marto,
      #!/usr/bin/perl use DBI; use CGI; #BEGIN{ $ENV{'ORACLE_HOME'}="/opt/oracle/product/10.2.0/client_1"; $ENV{'LD_LIBRARY_PATH'}="/opt/oracle/product/10.2.0/client_1/lib32:/us +r/local/lib/sprolib:/usr/local/lib:/usr/lib:/usr/openwin/lib:/usr/dt/ +lib:/usr/lib:/usr/ucblib"; #$ENV{'TWO_TASK'}='DB'; #} print "Content-Type:text/html\n\n"; print<<__HTML__; <html> <head> </head> <title>Test123</title> <body> __HTML__ my $DB="sampleSID"; my $HOST="DBSERVERNAME"; my $PORT="1521"; my $USER="ms_swan"; my $PASS="ms_swan915"; print "<br><br>"; print "Environment variables are:". %ENV; print %ENV; print "<br><br><br><br><br><br>"; print "This is before connecting\n"; my $MysqlDbh = DBI->connect("DBI:Oracle:host=$HOST;sid=$DB;por +t=$PORT",$USER, $PASS, {RaiseError => 0, AutoCommit => 1,PrintError = +> 1 }); print $MysqlDbh; if (! $MysqlDbh) { print "Error Error Error"; }else{ print "Connected"; } my $Statement="select * from AdditionalNodeInformation where Node = '1 +23'"; my $Sth = $MysqlDbh->prepare($Statement); if (! $Sth) { print "Unable to prepare query $Statement.\n$DBI::errstr\n"; exit; } if (! $Sth->execute) { print "Unable to execute query $Statement\n$DBI::errstr\n"; exit; }else{ print "This query has been executed"; } print "</html>";


      You can see that the env vars are set.. As 'almut' said, its a problem with Dynamic linking libs.. But i am not certain abt where to set it, other than in crle.. Also, this is running on a TIP server, which is a variation of the IBM's Websphere server.. So, it can be an issue with the server too... And about the error,
      install_driver(Oracle) failed: Can't load '/usr/local/lib/perl5/site_p +erl/5.8.8/sun4-solaris/auto/DBD/Oracle /Oracle.so' for module DBD::Or +acle: ld.so.1: perl: fatal: /opt/oracle/product/10.2.0/client_1/lib/l +ibclntsh.so.10.1: wrong ELF class: ELFCLASS64 at /usr/local/lib/perl5 +/5.8.8/sun4-solaris/DynaLoader.pm line 230. at (eval 4) line 3 Compilation failed in require Perhaps a required shared library or dll isn't installed where expecte +d
      I read that Wrong ELFCLASS error occurs cause of 64-32 bit compatibility.. But this cant be the reason here, as the script works fine on COmmand line..

      Regards,
      Blub:)

        Well you have no use strict; use warnings; in this code, and you use CGI; but never actually use it (consider the latter have of my previous advice. Also a templating system such as HTML::Template may be worth looking into regarding separating your HTML from your perl code.

        On to Oracle matters. At work we use Solaris 10, perl 5.8.8 (I know, I'm working on it) and Oracle 10. IIRC I built DBD::Oracle and had no issues (I can check my exact steps tomorrow morning). We use DBD::Oracle a lot, and out main perl app is a CGI::Application. In the morning I'll post again with some specifics. Until then could you please post how you installed DBD::Oracle, perhaps a perl -V (note the upper case V) as well?

        #BEGIN{ $ENV{'ORACLE_HOME'}="/opt/oracle/product/10.2.0/client_1"; $ENV{'LD_LIBRARY_PATH'}="/opt/oracle/product/10.2.0/client_1/lib32:/us +r/local/lib/sprolib:/usr/local/lib:/usr/lib:/usr/openwin/lib:/usr/dt/ +lib:/usr/lib:/usr/ucblib";
        shows /opt/oracle/product/10.2.0/client_1/lib32. Perhaps this is a problem for you, resulting in wrong ELF class: ELFCLASS64?