MapServer 4.6 on Mac OS X and Oracle Spatial 10g
Marco Marsella
m.marsella at ITWORKS.IT
Sat Jun 18 04:54:47 PDT 2005
Hi all,
I am trying to get MapServer use an OracleSpatial 10g DB running on a
SUN box. I have installed Oracle Instant Client on the Mac and I can
use sqlplus to connect and query the DB.
Then I have built MS using the Oracle SDK and tried to connect.
However, MS reports a problem with the creation of the OCI handlers:
[Tue Jun 14 15:38:30 2005] [error] PHP Warning: [MapServer Error]:
msDrawMap(): Failed to draw layer named 'Oracle'.\n in /Users/
marsella/Sites/mserve/htdocs/common/wrapper/drawmap.php on line 533
[Tue Jun 14 15:38:30 2005] [error] PHP Warning: [MapServer Error]:
msOracleSpatialLayerOpen(): Cannot create OCI Handlers. Connection
failure. Check the connection string. Error: .\n in /Users/marsella/
Sites/mserve/htdocs/common/wrapper/drawmap.php on line 533
[Tue Jun 14 15:38:30 2005] [error] PHP Notice: Use of undefined
constant MS_CHILDERR - assumed 'MS_CHILDERR' in /Users/marsella/Sites/
mserve/htdocs/common/wrapper/drawmap.php on line 668
- I have set the following shell variables:
export DYLD_LIBRARY_PATH="/usr/local/oracle/lib"
export LD_LIBRARY_PATH="/usr/local/oracle/lib"
export JAVA_HOME=/Library/Java/Home
export SQLPATH=/usr/local/oracle
export TNS_ADMIN=/Users/marsella/Sites/mserve/eclo/etc
- I have tried SQL*Plus and it works using the following command:
/usr/local/oracle/sqlplus scott/tiger at locustgis1:1521/ECLO2
Then I have set the following SetEnvIf clauses in httpd.conf:
SetEnvIf Request_URI ".*" TNS_ADMIN "/Users/marsella/Sites/mserve/
eclo/etc"
SetEnvIf Request_URI ".*" SQLPATH "/usr/local/oracle"
SetEnvIf Request_URI ".*" LD_LIBRARY_PATH "/usr/local/oracle/lib"
SetEnvIf Request_URI ".*" DYLD_LIBRARY_PATH "/usr/local/oracle/lib"
I have checked that the tnsnames.ora file is readable by any user.
The tnsnames.ora file is:
ECLO2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = locustgis1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ECLO2)
)
)
The layer is as follows:
LAYER
NAME "Oracle"
TYPE POINT
STATUS OFF
CONNECTIONTYPE oraclespatial
CONNECTION "scott/tiger@//locustgis1:1521/ECLO2" (I also
tried "scott/tiger at ECLO2" with the same result)
DATA "shape FROM OPS$LOCUST.test USING SRID 8307"
CLASS
NAME "Hoppers"
SYMBOL "circle"
COLOR 0 255 0
END
END
and the table test is:
SQL*Plus: Release 10.1.0.3.0 - Production on Tue Jun 14 15:32:18 2005
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit
Production
With the Partitioning, OLAP and Data Mining options
SQL> describe OPS$LOCUST.test;
Name Null? Type
------------------- -------- ----------------------------
GA NUMBER(38)
SHAPE OPS$LOCUST.SDO_GEOMETRY
Is there anything you see wrong ?
Thank you very much.
Marco
More information about the MapServer-users
mailing list