gpt4 book ai didi

java - CordApp Java 堆空间错误和 javax.net.ssl.SSLException

转载 作者:行者123 更新时间:2023-11-30 01:59:40 25 4
gpt4 key购买 nike

我们创建了一个应用程序:

  • 2 个节点 + 1 个公证人
  • 2 个 Web 应用程序(每个节点一个)

Corda 版本为 3.2

CordApp 具有:

  • 第一个流程,在输入中接收对象列表,用于创建状态列表。该列表将是交易的输出
  • 对象列表(大约 3000 个对象)被分成大小为 450 的列表(因为 ActiveMQ Artemis 对于较大大小的列表会出现错误 [java.lang.IllegalArgumentException:记录太大而无法存储])

  • 在第一个流程之后,我们启动另一个具有类似逻辑的流程。在本例中,我们有一个 StateAndRef 列表(使用 RPCops 查询的结果)作为流程中的输入接收并用作交易的输出。

  • 在本例中,我们将列表(大约 3000 个对象)拆分为包含 450 个元素的子列表。

我们随机收到Java堆空间错误SslHandshakeCompletionEvent(javax.net.ssl.SSLException:握手超时)。这似乎是严重的内存泄漏。

我们可以在本地计算机上使用参数 -Xmx10240m (10GB) 完成整个工作流程。监控资源,似乎堆在事务期间特别增长。

这次崩溃的原因可能是什么?

是否可以将 Corda 与此大小的列表一起使用?

最佳答案

解决方案是不仅在州的实体类中添加对 toString 和 hashCode 的重写,而且还在包含这些实体的类中添加 toString 和 hashCode 的重写(扩展了 MappedSchema 的类)。现在,节点的已用内存永远不会超过 1.2 GB。

关于java - CordApp Java 堆空间错误和 javax.net.ssl.SSLException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53301837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com