首页 文章

尝试计算大图层的本机边界框时,Geoserver超时

提问于
浏览
1

我正在开发一个项目,涉及连接到外部oracle数据库作为数据 store . 我正在尝试基于oracle store 中的db Views向 Geoserver 添加多个图层 .

Many layers are fine: 当点击"Compute from data"来计算本机边界框坐标(minX,minY,maxX,maxY)时,除了相当显着的延迟之外,其他几个视图都很好 . 后台任务似乎在约2-10分钟后完成 . 这可以...

The problem: 单击"Compute from data"后,有一些非常大的视图未完成 . 该过程似乎超时 . 我附上了显示此问题的屏幕截图 . 即,旋转器消失但边界坐标保持空白 .

有没有人遇到过这个?我试过增加Jetty http.timeout和threads.timeout,没有骰子 .

进度微调器出现在右上角,表示正在进行计算,它将旋转大约15分钟,然后简单地消失,坐标框保持空白 . 它只是停止没有错误 - 我已经检查了日志文件 .

这台服务器运行在一个带有大量内存的centos 7盒子上 . Geoserver本身运行3GB内存 .

你有没有经历过这个?

此外,我正在考虑手动计算这些边界框值,对照从根据所有几何值计算的oracle View导出的CSV . 我可以使用像JTS这样的java包,有更好的方法吗?

https://en.wikipedia.org/wiki/JTS_Topology_Suite

任何帮助赞赏 .

enter image description here

enter image description here

enter image description here

1 回答

  • 2

    简单的答案是,当以一般方式使用时,Oracle空间很糟糕,因为GeoServer设计用于许多数据库,它的数据库访问代码中不能有(许多)空间加速技巧 . 一个好的数据库(例如PostGIS)一直很快,如果你使用基于本地知识的提示来调整它,Oracle只会很快 . 您没有说您正在使用哪个版本的GeoServer,但最新版本可能比旧版本更快 .

    要计算表的边界,您可以使用以下方法向Oracle请求:

    SELECT SDO_TUNE.EXTENT_OF('TABLE_NAME', 'SPATIAL_COLUMN');
    

    要么

    select sdo_aggr_mbr(MY_GEOMETRY) from MY_TABLE;
    

    GIS stackexchange site上的question讨论了调优这些查询 .

相关问题