Websphere 上传 EAR 文件,堆问题

Websphere Uploading EAR file, Heap issue

首先要说的是,我对 java 和 websphere 真的很陌生,所以我的知识非常少。

我正在尝试从 Application Types -> WebSphere enterprise applications

安装应用程序

因此,在我单击“安装”并选择要上传的 EAR 文件并转到“下一步”后,Websphere 卡住了,不再响应。

Websphere 进程的 CPU 使用率上升到 100%,我必须杀死它并重新启动 Websphere。

我在日志中发现的错误是:

FFDC Exception:java.lang.OutOfMemoryError SourceId:com.ibm.ws.management.AdminServiceImpl.queryNames ProbeId:284 Reporter:javax.management.ObjectName@44376c54
java.lang.OutOfMemoryError: Java heap space
    at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:295)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1135)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
    at javax.management.ObjectName.writeObject(ObjectName.java:1263)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1020)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1502)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1555)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1516)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
    at com.ibm.ws.management.connector.ipc.ClientAccessor.request(ClientAccessor.java:112)
    at com.ibm.ws.management.connector.ipc.IPCConnectorClient.sendReceive(IPCConnectorClient.java:484)
    at com.ibm.ws.management.connector.ipc.IPCConnectorClient.queryNames(IPCConnectorClient.java:828)
    at com.ibm.ws.management.AdminClientImpl.queryNames(AdminClientImpl.java:108)
    at com.ibm.ws.management.AdminServiceImpl.queryNames(AdminServiceImpl.java:684)
    at com.ibm.ws.management.status.AbstractStatusCache.getMBean(AbstractStatusCache.java:672)
    at com.ibm.ws.management.status.DeploymentManagerStatusCache.requestReport(DeploymentManagerStatusCache.java:336)
    at com.ibm.ws.management.status.DeploymentManagerStatusCache.requestReport(DeploymentManagerStatusCache.java:368)
    at com.ibm.ws.management.status.DeploymentManagerStatusCache.addToCache(DeploymentManagerStatusCache.java:251)
    at com.ibm.ws.management.status.DeploymentManagerStatusCache.childAdded(DeploymentManagerStatusCache.java:921)
    at com.ibm.ws.management.RoutingTable$AddChildThread.run(RoutingTable.java:1561)

我有两个集群。每个集群有两个成员。我正在尝试使用其中一个集群设置应用程序。

在设置Java and Process Management -> Process definition -> Java Virtual Machine下的集群的每个成员中设置堆的下一个设置:

Maximum heap size 
2048     MB
Initial heap size 
1024     MB

谁能帮我解决这个问题。

如果您有集群,则您使用的是网络部署版。在这种情况下,安装是通过部署管理器完成的。您需要增加 Deployment Manager JVM 的堆大小。在 Web 管理控制台中,转到 System administration > Deployment manager,在那里您还应该有 Java and Process Management 选项。增加堆大小,重新启动 dmgr,然后重新安装应用程序。您可能还需要增加节点代理的堆大小,但从 Dmgr 开始。