我得到了java.lang.OutOfMemoryError: Metaspace
异常,因为新的部署在生产(在此更改之前,我们使用单独的jar进行调度,它工作得很好,但由于一些网络问题,它再次停止,所以我们添加了调度程序,并包含到wildfly服务器与其他war)环境。所以基本上我们使用的是wildfly 11.0.0最终服务器,其中有4个war文件,其中一个有@scheduled -或scheduler,它每10分钟运行一次。因此,我们通常会停止wildfly的服务,并在新的war部署后重新启动,但在特定时间(4到5小时)后,应用程序开始变慢,当看到服务器的控制台时,我可以看到java.lang.OutOfMemoryError: Metaspace如下所示:
WARN [org.jboss.modules] (default task-11) Failed to define class com.arjuna.ats.jta.cdi.TransactionScopeCleanup$1 in Module "org.jboss.jts" from local module loader @1e802ef9 (finder: local module finder @2b6faea6 (roots: E:\Data\wildfly-11.0.0.Final\modules,E:\Data\wildfly-11.0.0.Final\modules\system\layers\base)): java.lang.OutOfMemoryError: Metaspace
ERROR [org.jboss.as.ejb3.invocation] (default task-55) WFLYEJB0034: EJB Invocation failed on component AuditLoggerHandler for method public void com.banctec.caseware.server.logger.AuditLoggerHandlerBean.publishCaseAudit(java.lang.String,com.banctec.caseware.server.helpers.SessionHolder,com.banctec.caseware.resources.Resource[],java.lang.Long) throws com.banctec.caseware.exceptions.CaseWareException: javax.ejb.EJBTransactionRolledbackException: WFLYEJB0457: Unexpected Error
因此,对于每个操作,我们都会收到与java.lang.OutOfMemoryError: Metaspace
类似的错误
因此,首先,我从@scheduler中删除了普通代码,并使用了Executor框架,其中我使用了5个固定的线程池,随着这个更改,我们再次部署了,但同样的问题又来了。
我不确定是什么原因导致服务器一次又一次地停机,并导致这个内存泄漏问题。
在所有4个war中,我们都使用了Spring boot 2.0.2。
感谢您的帮助。对不起,我的英语不好。
发布于 2021-09-06 06:34:49
你需要增加你的堆空间。并检查是否有内存泄漏。请看下面的链接。http://www.mastertheboss.com/java/solving-java-lang-outofmemoryerror-metaspace-error/
发布于 2021-09-06 06:53:02
您可以使用诸如Jprofiler之类的工具来查找内存泄漏。它就像一种护身符。查看下面的链接https://www.youtube.com/watch?v=032aTGa-1XM
https://stackoverflow.com/questions/69034984
复制相似问题