Help Setting up FCGI for Oracle Connection pooling

Stephen Woodbridge woodbri at SWOODBRIDGE.COM
Tue Jan 23 12:01:13 PST 2007


Hi,

This is my first attempt to get FastCGI running with Mapserver to do 
Oracle connection pooling, and it is not working. Any help would be 
appreciated.

I have the mapfile working for CGI so I know I have the system and 
environment set up correctly, but in fcgi mode I get:

This is the error message:

msDrawMap(): Image handling error. Failed to draw layer named 
'Mexican_States'.
msOracleSpatialLayerOpen(): OracleSpatial error. Cannot create OCI 
Handlers. Connection failure. Check the connection string. Error: .

This is the apache error.log:

[Tue Jan 23 12:44:48 2007] [warn] FastCGI: (dynamic) server 
"/usr/lib/cgi-bin/mapserv410.fcgi" restarted (pid 15479)
[Tue Jan 23 12:44:48 2007] [error] [client 129.44.191.48] FastCGI: 
server "/usr/lib/cgi-bin/mapserv410.fcgi" stderr: CGI Request 1 on 
process 15469
[Tue Jan 23 12:44:48 2007] [error] [client 129.44.191.48] FastCGI: 
server "/usr/lib/cgi-bin/mapserv410.fcgi" stderr: msDrawMap(): Layer 0 
(color_symbol), 0.000s
[Tue Jan 23 12:44:48 2007] [warn] FastCGI: (dynamic) server 
"/usr/lib/cgi-bin/mapserv410.fcgi" (pid 15469) terminated by calling 
exit with status '0'

   LAYER
     NAME "Mexican_States"
     STATUS DEFAULT
     TYPE POLYGON
     CONNECTIONTYPE oraclespatial
     CONNECTION "user/pass at test"
     PROCESSING "CLOSE_CONNECTION=DEFER"
     DATA "GEOMETRY FROM MEXSTATES USING SRID 4326 FILTER VERSION 10g"
     ##DATA "mdata/mexico/mexstates"
     CLASS
       NAME "Mexico States"
       SYMBOL 0
       COLOR 204 204 204
       OUTLINECOLOR 128 128 128
     END
   END


Basically I have followed:

http://mapserver.gis.umn.edu/docs/howto/fastcgi

Running Debian Sarge

1) have the libfcgi-dev loaded
2) have the apache module loaded
3) build mapserver with fcgi support

swoodbridge at data:~/work$ "/usr/lib/cgi-bin/mapserv410.fcgi" -v
MapServer version 4.10.0 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP 
OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER 
SUPPORTS=FASTCGI INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS 
INPUT=ORACLESPATIAL INPUT=SHAPEFILE DEBUG=MSDEBUG

4) have configured apache 1.3 thusly:

FastCgiConfig -initial-env PROJ_LIB=/usr/share/proj -initial-env 
LD_LIBRARY_PATH=/home2/oracle/cl10/lib -initial-env 
TNS_ADMIN=/home/swoodbridge/.oracle/ -initial-env 
ORACLE_HOME=/home2/oracle/cl10/  -appConnTimeout 60 -idle-timeout 60 
-init-start-delay 1 -minProcesses 2 -maxClassProcesses 20 -startDelay 5

LoadModule fastcgi_module /usr/lib/apache/1.3/mod_fastcgi.so

     <Location ~ \.fcgi>
         Options ExecCGI
         SetHandler fastcgi-script
     </Location>

5) installed mapserv as

cp mapserv /usr/lib/cgi-bin/mapserv410
cp mapserv /usr/lib/cgi-bin/mapserv410.fcgi

and have a shell script for CGI to set environment variables

swoodbridge at data:~/work$ cat /usr/lib/cgi-bin/mapserv410a
#!/bin/sh
export TNS_ADMIN=/home/swoodbridge/.oracle/
export ORACLE_HOME=/home2/oracle/cl10/
export LD_LIBRARY_PATH=/home2/oracle/cl10/lib/
/usr/lib/cgi-bin/mapserv410 $*


So this works in CGI mode but not fcgi mode:

# CGI
http://localhost/cgi-bin/mapserv410a?mode=map&layers=all&scale=50000000&map=/home/direct/mapserver/na_navteq_ora.map&mapxy=-75.7+45.42&map_size=300+200

# FCGI
http://localhost/cgi-bin/mapserv410.fcgi?mode=map&layers=all&scale=50000000&map=/home/direct/mapserver/na_navteq_ora.map&mapxy=-75.7+45.42&map_size=300+200


Anyone have some clue on this?

Thanks,
   -Steve W.



More information about the MapServer-users mailing list