[Tilecache] out of range bbox requests and Tilecache failures
David Herbert
darb1 at bas.ac.uk
Thu Nov 22 05:00:19 EST 2007
Apologies for cross-posting this - not sure quite where it belongs.
While using Firebug (Firefox 2.0.0.9 WinXP) to look at performance and
client-side memory usage of my OpenLayers 2.5 app (which uses Tilecache
1.9 in standalone server mode with a seeded cache of WMS layer images),
I noticed a large number (50+) failed 404 responses for images e.g:
http://10.48.1.76:8084/?LAYERS=Coastline%20and%20bathymetry&STYLES=sggis_bathymetry_polygon%2Csggis_coastline&FORMAT=image%2Fpng&TRANSPARENT=off&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A2007056&BBOX=-82000,-43494.81471999999,-30705.185279999998,7800.000000000015&WIDTH=256&HEIGHT=256
Now the BBOX values being asked for in this request are way outside the
bounds I have specified in tilecache.cfg - here is the extract for the
above layer:
[Coastline and bathymetry]
type=WMSLayer
url=http://10.48.1.76:8080/geoserver/wms?transparent=off
layers=sggis:bathy_poly,sggis:coastline2007
extension=png
#extent_type=loose
bbox=-82000,7800,80000,116000
maxResolution=200.370370
srs=EPSG:2007056
metaTile=true
(The coordinates are a metre projection for South Georgia in the
Southern Ocean). Tilecache correctly reports this with the following
error:
An error occurred: Lower left corner (-82000.000000, -43494.814720) is
outside layer bounds [-82000.0, 7800.0, 80000.0, 116000.0].
To remove this condition, set extent_type=loose in your configuration.
An HTTP 404 response is generated. If I do as the error suggests and
set extent_type=loose (uncomment the line above) then I notice a marked
drop in performance - one layer takes half a minute to load from the
cache for some reason. There are also 20-30 HTTP 500 responses which
generate the error:
An error occurred: Zero length data returned from layer.
File "C:\Program Files\Apache Software
Foundation\Apache2.2\htdocs\tilecache\TileCache\Service.py", line 495,
in wsgiHandler
format, image = service.dispatchRequest( fields, path_info,
req_method, host )
File "C:\Program Files\Apache Software
Foundation\Apache2.2\htdocs\tilecache\TileCache\Service.py", line 443,
in dispatchRequest
return self.renderTile(tile, params.has_key('FORCE'))
File "C:\Program Files\Apache Software
Foundation\Apache2.2\htdocs\tilecache\TileCache\Service.py", line 403,
in renderTile
else: raise Exception("Zero length data returned from layer.")
Either way, it seems like a lot of time is being wasted when the app
loads doing requests which won't result in anything but failure. So I'd
like to understand why these out of range requests are being made by
OpenLayers and perhaps find an approach to prevent them. Unfortunately
I'm not a Python programmer so I'm not in familiar territory.
Any help much appreciated!
Thanks,
David Herbert
British Antarctic Survey.
--
This message (and any attachments) is for the recipient only. NERC is subject
to the Freedom of Information Act 2000 and the contents of this email and any
reply you make may be disclosed by NERC unless it is exempt from release under
the Act. Any material supplied to NERC may be stored in an electronic
records management system.
More information about the Tilecache
mailing list