我在 CENTOS 7 机器上使用 Geonetwork 3.10 和 APACHE Tomcat。这些是各种组件的特性:
- 服务器版本:Apache Tomcat/7.0.76
- Java 主页:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/jre
- JVM版本:1.8.0_222-b10
- 操作系统名称:Linux
- 操作系统版本:3.10.0-957.27.2.el7.x86_64
我的目录应该管理大约 35000 个文件的元数据的起始数量,并且这个数量会增加。不幸的是,当我尝试查看完整的元数据视图时,我遇到了以下错误:
加载元数据视图时出错
使用 journalctl -f 命令查看日志,它对应于以下错误:
DEBUG [org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver] - Resolving exception from handler [public void org.fao.geonet.api.records.formatters.FormatterApi.getRecordFormattedBy(java.lang.String,java.lang.String,java.lang.String,org.fao.geonet.api.records.formatters.FormatterWidth,java.lang.String,java.lang.String,org.fao.geonet.api.records.formatters.FormatType,boolean,org.springframework.web.context.request.NativeWebRequest,javax.servlet.http.HttpServletRequest) throws java.lang.Exception]: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap space
另一个与 Java 堆空间相关的错误如下:
严重:后台线程容器意外死亡 containerBackgroundProcessor[StandardEngine[Catalina]] java.lang.OutOfMemoryError: Java heap space
看起来在看
/var/log/tomcat/catalina.2020-01-24.log。
我正在使用 Postgres 数据库,并将其设置在
geonetwork/WEB-INF/config-node/srv.xml
文件取消注释该行
<import resource="../config-db/postgres-postgis.xml"/>
我已将文件/usr/share/tomcat/bin/setenv.sh
和/etc/tomcat/tomcat.conf
分别设置为以下值
export CATALINA_OPTS="-Dfile.encoding=UTF-8 -Xms3072m -Xmx3072m -XX:PermSize=530m -XX:MaxPermSize=3072m"
JAVA_OPTS="-Xms4096m -Xmx4g -Xss2M -XX:+UseG1GC"
java堆空间错误也出现在收割过程中
获取本地文件时出错:Java 堆空间。
我用来在日志中找到的另一个错误如下
*DEBUG [org.springframework.jdbc.datasource.DataSourceUtils] - Could not set JDBC Connection read-only
org.postgresql.util.PSQLException: Cannot change transaction read-only property in the middle of a transaction.
我在文件中正确设置了凭据geonetwork/WEB-INF/config-db/jdbc.properties
但即使我检查了我拥有的 .jdbc.properties,它总是会导致只读连接
jdbc.basic.defaultReadOnly=false
请告诉我我做错了什么?还有其他我没有做的微调吗?