知识库

java.lang.OutOfMemoryError:无法创建新本地线程

当客户端应用程序通过 bolt 或 bolt+routing 协议与 Neo4j 服务器建立会话时,服务器会分配一个线程作为服务器端的 bolt 工作线程来处理该连接。Neo4j 服务器生成的 bolt 工作线程数量没有服务器端限制,因此 JVM 可能会耗尽本机线程。具体数量取决于服务器硬件规格,但可能会达到数千个。

如果在 Neo4j 服务器的 debug.log 或 neo4j.log 中发现类型为 java.lang.OutOfMemoryError: unable to create new native thread 的异常,这几乎可以肯定是客户端在应用程序代码中未正确关闭会话导致的。

2017-12-14 00:00:35.710+0000 ERROR [o.n.b.t.SocketTransportHandler] Fatal error occurred when handling a client connection: unable to
create new native thread unable to create new native thread
java.lang.OutOfMemoryError: unable to create new native thread

解决办法是检查应用程序代码中所有创建 Session 对象的地方,并确认它们遵循文档中的指导。例如,如果您使用 Neo4j Java Driver,请使用 try-with-resources

© . This site is unofficial and not affiliated with Neo4j, Inc.