我正在使用WLP运行应用程序,当我在eclipse中启动服务器时,我得到如下例外:
异常:从线程中的UncaughtExceptionHandler抛出java.lang.OutOfMemoryError"共享TCPChannel NonBlocking接受线程"
异常:从线程中的UncaughtExceptionHandler抛出java.lang.OutOfMemoryError"默认执行程序-thread-34"
异常:java.lang.OutOfMemoryError从线程中的UncaughtExceptionHandler抛出" kernel-command-listener"
我能够启动服务器并提前托管应用程序。而这刚刚开始发生。另外,我可以为不同的应用程序启动其他wlp服务器。
任何指针都将受到赞赏!
由于
答案 0 :(得分:1)
OOM错误本身通常会提供线索。如果查看日志以查看异常的堆栈跟踪,则该消息可能指示无法分配的资源。可以通过耗尽Java堆空间,本机空间或系统资源(如线程等)来抛出OOM。
有很多很好的资源可用于诊断OOM,例如: https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/memleaks002.html
如果没有改变(就像你没有更改服务器的jvm.options文件中的堆设置,或者向服务器添加一个大的新功能或应用程序),那么很可能问题来自于盒子本身。您可能已超出操作系统的最大线程设置或超出了系统的内存(物理+交换),文件句柄等。
如果是这种情况,您应该检查您的操作系统的功能是什么(即基于unix的系统的“ulimit -a”)并检查当前正在运行的内容(“top”,“vmstat”等)。 )。你可能能够调整你的ulimit设置(假设你在Mac / Linux /等上运行 - 我相信Windows有类似的设置,但我不知道它们是否随意)允许这个服务器和所有其他进程同时运行,但更有可能你需要停止运行一些进程。
希望这有帮助,Andy