I have looked at previous threads regarding this topic, but did not find the exact problems described - but they might be related - in short:

  • I have the new GeoServer 2.15.0 and configured the GeoWebCache for the WMS service
  • I have a layer from a PostGIS source with 6 million points
  • I have configured a GEOWEBCACHE_CACHE_DIR env variable set to a path which is accessible for Geoserver
  • I have a webapp requesting a WMS layers in a TILED fashin
  • GeoServer creates tiles in the cache for rendering the map with each layer)
  • All sent images (to the client) of my background layer (GeoTIFF) are cached and get served from there

Now the problem: My layer with the many points gets only partially cached, even GeoServer renders them completely and serves the client - but it only saves some of the tiles to the cache. I also have the same problem with pre-seeding my layer. It produces the tiles, but not all.

purple=files sent to client, yellow=tiles getting cached purple=files sent to client, yellow=tiles getting cached

Purple (=files sent to client), Yellow (=tiles actually getting cached)

My setup proves to be working. Caching on demand (when a client requests the tiles for the first time) and pre-seeding work. But in both cases GeoWebCache reproducibly does not cache certain tiles. Also when setting a large enough and larger extent for the pre-seeding, I end up with the same number of tiles being cached. The tiles also render fast enough in the client, so I'm sure this has nothing to do with a timeout.

The log shows me the following...

geoserver | 10 Mar 20:33:02 WARN [lite.gridcoverage2d] - Could not reduce the grid geometry inside the valid area bounds: ReferencedEnvelope[-2.147483647E9 : 2.147483647E9, -85.0 : 85.0] geoserver | Grid geometry isGridGeometry2D[GridEnvelope2D[267..581, 0..4], PARAM_MT["Affine", geoserver | PARAMETER["num_row", 3], geoserver | PARAMETER["num_col", 3], geoserver |
PARAMETER["elt_0_0", 8.996714848883048], geoserver |
PARAMETER["elt_0_2", 172421.68534038262], geoserver |
PARAMETER["elt_1_1", -9.48768472906404], geoserver |
PARAMETER["elt_1_2", 21728.98232072473]]]

...for the tiles that cannot be cached. I checked now again the layer configuration and noted that the native extent (EPSG:900913/3857) doesn't match in the layer settings and in the GeoWebCache seed dialog. It seems, that the GeoWebCache treats only a smaller extent as valid. Both layer extent values come from the same PostGIS layer. I use an out of the box geoserver running on a docker image.

enter image description here enter image description here

Is this a misconfiguration by me, or maybe a bug in GeoWebCache?

  • what do the log files say? Also using "tiled" wms is not a good plan use WMTS or TMS to make sure GWC matches the tile boundaries – Ian Turton Mar 10 '19 at 12:05
  • Added more details with log below. I have already tried WMTS, but that didn't change anything on the observed behaviour. – geotom Mar 10 '19 at 21:02

I deleted the layer and re-added it. Now it seems also GeoWebCache properly detects the real extent and does the caching for he whole of the dataset. A strange problem, that cost me a few hours...and no clue why.

For everyone else with a smiliar problem of partially cached layers. Try to readd the layer and check if GeoWebCache and Geoserver have the same layer extent configured.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.