java - 由于内存不足错误,Openshift Wildfly 10 自动重新启动

标签 java openshift wildfly heap-memory wildfly-10

由于堆空间错误,OpenShit Prouction 应用程序每天都会自动重新启动一次,即使我没有在应用程序中配置消息代理,我发现 activemq 正在尝试创建新线程,但我的日志却出现堆空间错误。

我们应该明确禁用 activemq 吗?

[31m01:34:12,417 ERROR [org.apache.activemq.artemis.core.client] (Thread-114 (ActiveMQ-remoting-threads-ActiveMQServerImpl::serverUUID=54cb8ef9-d17a-11e5-b538-af749189a999-28800659-992791)) AMQ214017: Caught unexpected Throwable: java.lang.OutOfMemoryError: unable to create new native thread
    at java.lang.Thread.start0(Native Method)
    at java.lang.Thread.start(Thread.java:714)
    at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:950)
    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1357)
    at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor.execute(OrderedExecutorFactory.java:85)
    at org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnection.write(InVMConnection.java:163)
    at org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnection.write(InVMConnection.java:151)
    at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.send(ChannelImpl.java:259)
    at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.send(ChannelImpl.java:201)
    at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.doConfirmAndResponse(ServerSessionPacketHandler.java:579)
    at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.access$000(ServerSessionPacketHandler.java:116)
    at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler$1.done(ServerSessionPacketHandler.java:561)
    at org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl.executeOnCompletion(OperationContextImpl.java:161)
    at org.apache.activemq.artemis.core.persistence.impl.journal.JournalStorageManager.afterCompleteOperations(JournalStorageManager.java:666)
    at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.sendResponse(ServerSessionPacketHandler.java:546)
    at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.handlePacket(ServerSessionPacketHandler.java:531)
    at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:567)
    at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:349)
    at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:331)
    at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:605)
    at org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnection$1.run(InVMConnection.java:171)
    at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

最佳答案

你可以看看这个comment关于 Wildfly openshift 卡带项目的开放问题。

总而言之,一些用户在使用此墨盒默认设置时遇到了内存和性能问题。 这尤其是因为 Openshift Wildfly 盒默认启用 Java EE 7 Full Profile(使用自定义的standalone.xml 配置文件,而不是默认 Wildfly 独立配置中的standalone-full.xml),这在由于其局限性,小齿轮。

但许多 Java EE 7 用户仅使用 Web Profile,实际上并不需要在应用程序中启用所有 Java EE 7 Full Profile 规范。

因此,通过仅启用 Java EE 7 Web 配置文件功能并禁用 Full Profile 特定功能(例如消息传递子系统),您可以使该盒在小型设备上正常工作。

另请参阅 other comment有关解决方案的详细信息和此 table其中列出了 Java EE 7 配置文件之间的差异。

关于java - 由于内存不足错误,Openshift Wildfly 10 自动重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35450472/

相关文章:

java - 无法从 Spring Security 保护中排除某些 URL

ssl - "SSL23_GET_SERVER_HELLO:reason(1112)"服务器端(Openshift)的解决方法?

jakarta-ee - 无法在无状态 EJB 中注入(inject) JMS 队列

java - 获取维基百科类别链接

java - 如何将小数点后 10 到 5 的幂四舍五入

java - 在 Java 程序中通过 UDP 接收 C++ 字节流

jboss - 在 Wildfly 上部署会产生 "Unable to acquire lock after 15 seconds"异常

cors - OpenShift:服务器为 GET 请求设置的 Access-Control-Allow-Origin 在返回途中消失

kubernetes - 使用OpenShift在卷装载上写入权限

Jboss AS7部署警告: does not point to a valid jar for a Class-Path reference