How do I propagate failures from upstream wms-servers?
Trond Michelsen
trondmm-mapserver at CRUSADERS.NO
Tue Nov 6 13:32:22 PST 2007
On Tue, Nov 06, 2007 at 05:52:22PM +0100, Jacolin Yves wrote:
> Why don't you use
> "wms_exceptions_format" "application/vnd.ogc.se_inimage" ?
This is because I have a webcache in front of mapserver, which will
cache requests for about twelve hours, and I need a way to tell an
errormessage apart from a successful response. The way it is now,
blank images sneaks into the cache occasionally, and this is what I'm
trying to avoid.
I need the cache, because we regularly get over 300 requests per
second (highest peak I've seen so far is 604 request in a single
second), and our servers can't handle this load without caching. Over
the last nine and a half days, we've had almost 110 million wms
requests to our cache, and only 4 million went to the backend.
So basically - I desperately need the cache, but it's extremely
important that it doesn't cache blank images or other error messages
embedded in an image, which is why I want mapserver to return an
application/vnd.ogc.se_xml error whenever any sort of error happens.
> Le Tuesday 06 November 2007 17:35:17 Trond Michelsen, vous avez écrit :
>> Hi.
>>
>> In my mapfile, I have several layers with connectiontype WMS. Once in
>> a while, the WMS-servers that deliver these layers will fail, usually
>> due to high load, and return an application/vnd.ogc.se_xml
>> exception. In these cases, I'd like mapserver to return an exception
>> as well, but instead, mapserver will just log the error message in
>> MS_ERRORFILE, and continue drawing the rest of the layers. If there
>> are no more layers, it will result in a blank image.
>>
>> (BTW: I've also noticed the same behaviour if the remote wms-server
>> answers with an internal server error)
>>
>> Here's the layer definition that I use for testing. exception.cgi will
>> always return a dummy XML exception.
>>
>> LAYER
>> NAME "exception"
>> TYPE RASTER
>> STATUS ON
>> CONNECTION "http://wms1.oslo.dnmi.no/cgi-bin/exception.cgi"
>> CONNECTIONTYPE WMS
>> OFFSITE 255 255 254
>> METADATA
>> "wms_srs" "EPSG:4326"
>> "wms_name" "exception"
>> "wms_server_version" "1.1.1"
>> "wms_formatlist" "image/png"
>> "wms_format" "image/png"
>> "wms_exceptions_format" "application/vnd.ogc.se_xml"
>> END #metadata
>> END #layer
>>
>> Is there something I can do to force mapserver to fail, and return an
>> exception if it fails to draw any of the wms-layers?
>>
>> I'm using mapserver 4.10
>>
>> $ cgi-bin/mapserv -v
>> MapServer version 4.10.0 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP
>> OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER
>> SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT
>> SUPPORTS=WCS_SERVER SUPPORTS=THREADS SUPPORTS=GEOS INPUT=EPPL7
>> INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE DEBUG=MSDEBUG
--
Trond Michelsen
More information about the MapServer-users
mailing list