[mapserver-users] Java MapScript on Tomcat servlet does not free GeoTIFF file handles
beu
beu at live.jp
Wed May 20 03:32:34 PDT 2020
Dear all,
I'm coding Java MapScript program as servlet webapp of Tomcat (on Windows),
using "javamapscript.dll" and "mapscript.jar", to process "mapObj" object
dynamically.
But this program has some problems on file-handles.
Could someone please tell me how to fix them?
This program accepts WMS request (GetMap) and returns "image/png" data.
rough flow of this program:
get HTTP request body
create OWSRequest instance
create mapObj instance with some MapFile
call msIO_installStdoutToBuffer()
call mapObj#OWSDispatch()
call mapObj#draw() and create imageObj instance
call imageObj#save() and create temporary image file
set image file data to HTTP response body
delete the image file
call imageObj#delete()
call mapObj#delete()
call OWSRequest#delete()
call msIO_resetHandlers()
Problem 1:
Tomcat-process does not free GeoTIFF file-handles per (pooling) thread.
With "Resource Monitor" of Windows, it is confirmed that Tomcat8.exe is
holding file-handles of "foobar.tif".
MapFile:
MAP
...
LAYER
TYPE RASTER
STATUS ON
DATA "foobar.tif"
END
END
Problem 2:
Tomcat-process does not free *.shp, *.shx file-handles sometimes,
when it is running multi-thread'ly (more than about 150 threads).
Problem 3:
When the total number of file-handles held reaches some value,
Tomcat-process can not open more files, and MapScript always raise
UnknownError.
With best regards,
MapServer (MapScript) 7.4.3 (on Windows)
... release-1911-x64-gdal-3-0-0-mapserver-7-4-3 at GISInternals
Tomcat 8.5.51 (on Windows)
JavaSE 8u251 (on Windows)
Windows Server 2016
Beu
--
Sent from: http://osgeo-org.1560.x6.nabble.com/Mapserver-User-f4226646.html
More information about the MapServer-users
mailing list