RE: Sybase freetds Solaris 10 CGI

[email protected] Mon, 5 Jan 2009 10:04:44 +0100
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase
Message-ID <OFF41701FA.435E3842-ONC1257535.0031C63A-C1257535.0031DF85@jpmchase.com>
This means that the LD_LIBRARY_PATH variable is not set correctly in the 
Tomcat environment.

Michael




"Baby, Binu" <[email protected]> 
Sent by: [email protected]
01/03/2009 02:22 AM

To
<[email protected]>
cc

Subject
RE: Sybase freetds Solaris 10 CGI






When I comment off the use DBD:Sybase and just have use DBI in my cgi 
script
I get the following error.
-------
install_driver(Sybase) failed: Can't load 
'/usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/DBD/Sybase/Sybase.so' 
for modu
le DBD::Sybase: ld.so.1: perl: fatal: libct.so.3: open failed: No such 
file or directory at /usr/perl5/5.8.4/lib/sun4-solari
s-64int/DynaLoader.pm line 230.
 at (eval 4) line 3
Compilation failed in require at (eval 4) line 3.
Perhaps a required shared library or dll isn't installed where expected
 at /export/home/netcool/connectOS.pl line 37
--------
The file does exist and below is the ldd O/P
ldd 
/usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/DBD/Sybase/Sybase.so
        libct.so.3 =>    /usr/local/lib/libct.so.3
        libintl.so.1 =>  /lib/libintl.so.1
        libtds.so.4 =>   /usr/local/lib/libtds.so.4
        libdl.so.1 =>    /lib/libdl.so.1
        libm.so.2 =>     /lib/libm.so.2
        libc.so.1 =>     /lib/libc.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libsocket.so.1 =>        /lib/libsocket.so.1
        libiconv.so.2 =>         /usr/local/lib/libiconv.so.2
        libgcc_s.so.1 =>         /usr/local/lib/libgcc_s.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        libmd.so.1 =>    /lib/libmd.so.1
        libscf.so.1 =>   /lib/libscf.so.1
        libdoor.so.1 =>  /lib/libdoor.so.1
        libuutil.so.1 =>         /lib/libuutil.so.1
        libgen.so.1 =>   /lib/libgen.so.1
        /platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1
        /platform/SUNW,Sun-Fire-V240/lib/libmd_psr.so.1
 
The program always works fine when I run it form  command prompt
 
Regards
Binu
 
From: [email protected] [mailto:[email protected]] On 
Behalf Of Baby, Binu
Sent: Friday, January 02, 2009 5:01 PM
To: [email protected]
Subject: RE: Sybase freetds Solaris 10 CGI
 
I have the below entries in tomcat web.xml file.
 
    <servlet>
        <servlet-name>cgi</servlet-name>
 <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
        <init-param>
          <param-name>clientInputTimeout</param-name>
          <param-value>100</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>6</param-value>
        </init-param>
        <init-param>
          <param-name>cgiPathPrefix</param-name>
          <param-value>WEB-INF/cgi</param-value>
        </init-param>
 
                <init-param>
          <param-name>passShellEnvironment</param-name>
          <param-value>true</param-value>
        </init-param>
 
        <load-on-startup>5</load-on-startup>
    </servlet>
 
Below is the @INC and modules that gets loaded.
 
@INC = /usr/local/lib /usr/perl5/5.8.4/lib/sun4-solaris-64int 
/usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/sun4-solaris-64int 
/usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl 
/usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int 
/usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl . 
 
AutoLoader.pm => /usr/perl5/5.8.4/lib/AutoLoader.pm --------------
--------------
Carp.pm => /usr/perl5/5.8.4/lib/Carp.pm --------------
--------------
Config.pm => /usr/perl5/5.8.4/lib/sun4-solaris-64int/Config.pm 
--------------
--------------
DBI.pm => /usr/perl5/site_perl/5.8.4/sun4-solaris-64int/DBI.pm 
--------------
--------------
DynaLoader.pm => /usr/perl5/5.8.4/lib/sun4-solaris-64int/DynaLoader.pm 
--------------
--------------
Exporter.pm => /usr/perl5/5.8.4/lib/Exporter.pm --------------
--------------
Exporter/Heavy.pm => /usr/perl5/5.8.4/lib/Exporter/Heavy.pm --------------
--------------
List/Util.pm => /usr/perl5/5.8.4/lib/List/Util.pm --------------
--------------
Scalar/Util.pm => /usr/perl5/5.8.4/lib/Scalar/Util.pm --------------
--------------
lib.pm => /usr/perl5/5.8.4/lib/sun4-solaris-64int/lib.pm --------------
--------------
strict.pm => /usr/perl5/5.8.4/lib/strict.pm --------------
--------------
vars.pm => /usr/perl5/5.8.4/lib/vars.pm --------------
--------------
warnings.pm => /usr/perl5/5.8.4/lib/warnings.pm --------------
--------------
warnings/register.pm => /usr/perl5/5.8.4/lib/warnings/register.pm
 
Use DBD:Sybase is where it fails
 
Binu
 
 
From: Rearick, Kenneth [mailto:[email protected]] 
Sent: Friday, January 02, 2009 4:29 PM
To: Baby, Binu; [email protected]
Subject: RE: Sybase freetds Solaris 10 CGI
 
Make sure the you are coping the environment variables in the apache. In 
the htppd.conf you need something like this.
 
<IfModule mod_env.c>
 
    # PassEnv Directive
    # Description: Passes environment variables from the shell
    # Syntax: PassEnv env-variable [env-variable] ...
    # Context: server config, virtual host, directory, .htaccess
    # Override: FileInfo
    # Status: Base
    # Module: mod_env
    #
    # Specifies one or more environment variables to pass to CGI scripts 
and SSI pages from the environment of the shell which invoked the httpd 
process.
    #
    # Example
    # PassEnv LD_LIBRARY_PATH
    #
    #
    # SetEnv Directive
    # Description: Sets environment variables
    # Syntax: SetEnv env-variable value
    # Context: server config, virtual host, directory, .htaccess
    # Override: FileInfo
    # Status: Base
    # Module: mod_env
    #
    # Sets an environment variable, which is then passed on to CGI scripts 
and SSI pages.
    #
    # Example
    # SetEnv SPECIAL_PATH /foo/bin
    #
    #
    # UnsetEnv Directive
    # Description: Removes variables from the environment
    # Syntax: UnsetEnv env-variable [env-variable] ...
    # Context: server config, virtual host, directory, .htaccess
    # Override: FileInfo
    # Status: Base
    # Module: mod_env
    #
    # Removes one or more environment variables from those passed on to 
CGI scripts and SSI pages.
    #
    # Example
    # UnsetEnv LD_LIBRARY_PATH
    #
 
    PassEnv LD_LIBRARY_PATH
    PassEnv SYBASE
    PassEnv SYBASE_OCS
    PassEnv DSQUERY
    PassEnv PERL5LIB
 
Kenneth N Rearick 
Xylo Technologies 
Information Services 
Sybase Database Group 
Phone: (507) 538-1214 
Pager:  (507) 270-0735 
OC 1-03-5 
[email protected] 
 

From: [email protected] [mailto:[email protected]] On 
Behalf Of Baby, Binu
Sent: Friday, January 02, 2009 4:55 PM
To: [email protected]
Subject: DBD:Sybase freetds Solaris 10 CGI
 
I am using Freetds,  DBD:Sybase on solaris 10 connect to Syabase databse.
The program is able to connect and access data when I run it from command 
prompt
 
But the same script fails if I run it as CGI from apache/tomcat.
 
The script fails at line
Use DBD::Sybase
 
Any suggestions?
 
Regards
Binu


This communication is the property of Qwest and may contain confidential 
or privileged information. Unauthorized use of this communication is 
strictly prohibited and may be unlawful. If you have received this 
communication in error, please immediately notify the sender by reply 
e-mail and destroy all copies of the communication and any attachments.

-----------------------------------------
This communication is for informational purposes only. It is not
intended as an offer or solicitation for the purchase or sale of
any financial instrument or as an official confirmation of any
transaction. All market prices, data and other information are not
warranted as to completeness or accuracy and are subject to change
without notice. Any comments or statements made herein do not
necessarily reflect those of JPMorgan Chase & Co., its subsidiaries
and affiliates.

This transmission may contain information that is privileged,
confidential, legally privileged, and/or exempt from disclosure
under applicable law. If you are not the intended recipient, you
are hereby notified that any disclosure, copying, distribution, or
use of the information contained herein (including any reliance
thereon) is STRICTLY PROHIBITED. Although this transmission and any
attachments are believed to be free of any virus or other defect
that might affect any computer system into which it is received and
opened, it is the responsibility of the recipient to ensure that it
is virus free and no responsibility is accepted by JPMorgan Chase &
Co., its subsidiaries and affiliates, as applicable, for any loss
or damage arising in any way from its use. If you received this
transmission in error, please immediately contact the sender and
destroy the material in its entirety, whether in electronic or hard
copy format. Thank you.

Please refer to http://www.jpmorgan.com/pages/disclosures for
disclosures relating to UK legal entities.