[mapserver-users] Closing data source

Erik H erik.h11.01 at gmail.com
Sun May 6 20:32:12 PDT 2018


Hi list,


I'm running a tiling server which is a bit unusual: it's a Java-based web
server which calls the MapServer 7.0.4 shared library using JNI and the
swig bindings.

Works mostly fine, but I now have a problem with too many open files. This
is for a layer where I use MapServer to display raster data. The input file
is a large TIFF file, output format is PNG. I'm using a small MapScript
file to specify things like the output projection and format,.

For each tile I generate, I dynamically specify the input TIFF file (which
is a radar image and changes every 5 minutes).. My Java code is something
like

mapObj map = new mapObj(mapFileName);
map.getLayer(0).setData(currentFile);
map.setExtent(...)
imageObj img = map.draw();
byte[] tile = img.getBytes();


This produces the PNG images that I want, but the problem is that file
connections to the .tiff file remain open (as I could verify with 'lsof'),
and after a while this becomes a problem.

My question: can I somehow close the data source after generating the PNG?
I tried setting the data source to null, or calling the layer's delete()
function, but that did not seem to have any effect.


Alternatively, I guess I could call GDAL directly from Java to generate my
PNGs, but it's not very clear to me how to do that.

Thanks

Erik
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20180506/12ec9a26/attachment.html>


More information about the mapserver-users mailing list