[Mapserver-users] RE: Slow Oracle connection

COUTUJF at dfo-mpo.gc.ca COUTUJF at dfo-mpo.gc.ca
Fri Jul 9 18:29:11 EDT 2004


Hello everyone,
			I did not see my reply back to Frank in today's
digest so I fear it has not been published. Since there are some very
interesting info in it (mainly the results of Frank's comments) , I'm taking
the chance of republishing it again. Sorry if we end up with the same
message twice...

thanks,


JF
Canadian Coast Guard
coutujf at dfo-mpo.gc.ca

------------------------------------------------------------------------

Dear Frank,
		adding the name of the table to the ovf file did the trick.
Plus, I don't get the funny table names with the accents anymore...

There are a lots of tables in this database, but the table I'm trying to
connect to only has about 4000 records.

The problem I have now, is that my ogrinfo requests are good and quite fast
(couple of seconds...) but my MapServer requests still take forever (and
actually never comes back..).

Here is the ogrinfo output:

INFO: Open of `sipa.ovf'
using driver `VRT' successful.
1: SIPAQBC (Point)

IF I take a look at the ODBC log file I seem to get stuck at the login: (and
again that is only using MapServer, everything is fine with ogrinfo) 


mapserv         284-be4	ENTER SQLAllocEnv 
		HENV *              013E4850

mapserv         284-be4	EXIT  SQLAllocEnv  with return code 0 (SQL_SUCCESS)
		HENV *              0x013E4850 ( 0x00961738)

mapserv         284-be4	ENTER SQLAllocConnect 
		HENV                00961738
		HDBC *              013E4854

mapserv         284-be4	EXIT  SQLAllocConnect  with return code 0
(SQL_SUCCESS)
		HENV                00961738
		HDBC *              0x013E4854 ( 0x009617e0)

mapserv         284-be4	ENTER SQLSetConnectOption 
		HDBC                009617E0
		UWORD                      103 <SQL_LOGIN_TIMEOUT>
		SQLLEN                     5

mapserv         284-be4	EXIT  SQLSetConnectOption  with return code 0
(SQL_SUCCESS)
		HDBC                009617E0
		UWORD                      103 <SQL_LOGIN_TIMEOUT>
		SQLLEN                     5

mapserv         284-be4	ENTER SQLConnectW 
		HDBC                009617E0
		WCHAR *             0x00961910 [      -3] "SIPA\ 0"
		SWORD                       -3 
		WCHAR *             0x1F7C4AA0 [      -3] "******\ 0"
		SWORD                       -3 
		WCHAR *             0x1F7C4AA0 [      -3] "******\ 0"
		SWORD                       -3 


Here is my .map layer in case that's where the problem lies (but I doubt
it):

LAYER
      NAME SIPA
      TYPE POINT
      CONNECTIONTYPE OGR
      CONNECTION "sipa.ovf" 
      DATA "SIPAQBC" 
      STATUS ON
    
    PROJECTION
      "init=epsg:4326"
    END
    TOLERANCE 5
    CLASS
      SYMBOL mapinfo-sym-34
      SIZE 9
      COLOR 255 0 0
      
    END
   END

any ideas?

thanks,

JF
Canadian Coast Guard
coutujf at dfo-mpo.gc.ca




-----Message d'origine-----
De : Frank Warmerdam [mailto:warmerdam at pobox.com]
Envoyé : Thursday, July 08, 2004 10:12 AM
À : COUTUJF at dfo-mpo.gc.ca
Cc : mapserver-users at lists.gis.umn.edu
Objet : Re: [Mapserver-users] Slow Oracle connection


COUTUJF at dfo-mpo.gc.ca wrote:
> Hello,
> 	I'm trying to connect to an Oracle (not spatial) through an ovf file
> and ODBC. I tested the DSN with Access and everything is ok and runs fast.
> When I'm testing my connection with "ogrinfo sipa.ovf", the connection
does
> occur but it's so slow. It can take up to 15 minutes to get the info
back!!!
> 
> Using the same connection with MapServer is not better. I probably hit a
> timeout before anything can be drawn.
> 
> The table scheme is called SIPAQBC and the name of the table is MARINFO so
> here is my ovf file:
> 
> <OGRVRTDataSource>
> <OGRVRTLayer name="SIPAQBC">
> <SrcDataSource>ODBC:SIPAQBC/SIPAQBC at SIPA</SrcDataSource>
> <SrcLayer>MARINFO</SrcLayer>
> <GeometryType>wkbPoint</GeometryType>
> <LayerSRS>WGS84</LayerSRS>
> <GeometryField encoding="PointFromColumns" x="LONGITUDE" y="LATITUDE"/>
> </OGRVRTLayer>
> </OGRVRTDataSource>
> 
> The funny thing is that the output of the "ogrinfo sipa.ovf" command
always
> begins with:
> 
> ERROR 4: Update access not supported for VRT datasources.

JF,

You can use the -ro (read only) flag with ogrinfo to avoid first trying to
open the source in update mode.

> ERROR 1: No column definitions found for table 'Activit?', layer not
usable.
> ERROR 1: No column definitions found for table 'Activit? CPA', layer not

I'm not excactly sure what is happening here.  Do you have any table(s)
with accents in the table names?  It almostly looks as if the table name
had an accent converted into a "?" during reading and this made it
impossible
to query for the table field list.

As to your general problem, I am not certain why but I wouldn't be surprised
to find that alot of time is being spent scanning the layer list or doing
the
spatial extents/feature count required by ogrinfo.  The first two things
that ogrinfo reports for a layer are the feature count and geographic
extents.  It can require two complete passes through the table to collect
this information.  Are there alot of records in your table?

If the problem is that there are alot of tables in your database, then you
can just list the tables you want to access in your connection string.

eg.
<SrcDataSource>ODBC:SIPAQBC/SIPAQBC at SIPA,MARINFO</SrcDataSource>

Note that I don't think MapServer normally queries for feature count or
geographic extents so that slowdown in ogrinfo won't occur in MapServer.

Best regards,
-- 
---------------------------------------+------------------------------------
--
I set the clouds in motion - turn up   | Frank Warmerdam,
warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent





More information about the mapserver-users mailing list