mapserver error

Lee Keel lee_keel at TRIMBLE.COM
Thu Jan 17 22:28:47 EST 2008


Sorry for the multiple reply-posts, but I didn't realize color would not come through.  The first section of the log below (up to first CLOSE mycursor) did not render valid data in my map, but the second part of the log did render data on the map.
 
-LK

________________________________

From: UMN MapServer Users List on behalf of Lee Keel
Sent: Thu 1/17/2008 9:23 PM
To: MAPSERVER-USERS at LISTS.UMN.EDU
Subject: Re: [UMN_MAPSERVER-USERS] mapserver error



Ed,

Thanks for the reply.  Now I am truely confused!  I turned on logging to catch the queries from mapserver.  Here are the statements that were dumped to the log.  Note the section in blue worked and the section in red did NOT work.

2008-01-17 22:02:19 LOG:  statement: select substring(version() from 12 for (position('on' in version()) - 13))
2008-01-17 22:02:19 LOG:  statement: select attname from pg_attribute, pg_constraint, pg_class where pg_constraint.conrelid = pg_class.oid and pg_class.oid = pg_attribute.attrelid and pg_constraint.contype = 'p' and pg_constraint.conkey[1] = pg_attribute.attnum and pg_class.relname = 'main' and pg_table_is_visible(pg_class.oid) and pg_constraint.conkey[2] is null
2008-01-17 22:02:19 LOG:  statement: BEGIN
2008-01-17 22:02:19 LOG:  statement: DECLARE mycursor BINARY CURSOR FOR SELECT asbinary(force_collection(force_2d(the_geom)),'NDR'),prikey::text from main WHERE the_geom && setSRID('BOX3D(1590352.72000359 431253.572104297,1590665.28836297 431442.558920703)'::BOX3D, find_srid('','main','the_geom') )
2008-01-17 22:02:19 LOG:  statement: FETCH ALL in mycursor
2008-01-17 22:02:19 LOG:  statement: CLOSE mycursor
2008-01-17 22:02:51 LOG:  statement: select substring(version() from 12 for (position('on' in version()) - 13))
2008-01-17 22:02:51 LOG:  statement: select attname from pg_attribute, pg_constraint, pg_class where pg_constraint.conrelid = pg_class.oid and pg_class.oid = pg_attribute.attrelid and pg_constraint.contype = 'p' and pg_constraint.conkey[1] = pg_attribute.attnum and pg_class.relname = 'main' and pg_table_is_visible(pg_class.oid) and pg_constraint.conkey[2] is null
2008-01-17 22:02:51 LOG:  statement: BEGIN
2008-01-17 22:02:51 LOG:  statement: DECLARE mycursor BINARY CURSOR FOR SELECT asbinary(force_collection(force_2d(the_geom)),'NDR'),prikey::text from main WHERE the_geom && setSRID('BOX3D(1588008.45730828 429836.17098125,1593009.55105828 432859.96004375)'::BOX3D, find_srid('','main','the_geom') )
2008-01-17 22:02:51 LOG:  statement: FETCH ALL in mycursor
2008-01-17 22:02:51 LOG:  statement: CLOSE mycursor

I pulled both queries out of the log and both work and return data.  Both returned LINESTRING rows as expected and grew in row count as expected because the BBOX grew.  From what I can tell there is no difference between these two queries other than the BBOX.

mapserv -v:
MapServer version 5.0.0 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF OUTPUT=SWF OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE

If postgres is returning data, but mapserver is not rendering properly; then could there be something wrong in config of mapserver?  Could I have something completely mixed up with in mapfile?

Thanks,
Lee

________________________________

From: Ed McNierney [mailto:ed at topozone.com]
Sent: Thu 1/17/2008 7:36 PM
To: Lee Keel; MAPSERVER-USERS at LISTS.UMN.EDU
Subject: RE: [UMN_MAPSERVER-USERS] mapserver error



Lee -

OK, here's some hypothesizing, which is about the best we can do from
afar.

Your map request works for certain bounding boxes, but not for others.
It appears to both reliably and repeatedly work on the good bounding
boxes, and reliably and repeatably fail on the bad ones.  The layer is a
PostgreSQL layer, so each map-rendering request produces a database
query to retrieve data.

I have never tried DEBUG logging to see if reports database queries, but
if you have control over the database server you can turn on query
logging in the postgresql.conf file.  As a fallback you can look at the
map bounding box and synthesize the queries by hand, but that is prone
to error.

Something should be different between the query that results in a good
map and the query that results in a bad map.  Do both queries actually
work?  Does the data returned look different in any notable way?  What
happens?

BTW, what does "mapserv -v" from the command line return?

     - Ed



More information about the mapserver-users mailing list