0

我们开发了一个应用程序,它在表中的保险库中创建义务。如果表的行大小小于 200,则应用程序可以正常工作。但是,如果行数超过 200,则在执行期间会出现以下错误 -

请指定 PageSpecification,因为结果 [201] 比默认页面大小 [200] 多

将分页从默认的 200 增加到 400 后,我收到 java heap out of memory 错误。我厌倦了将节点的堆大小从 512m(默认)增加到 1024m。但是,这个问题仍然没有解决,我在 H2 DB-Exception: java.lang.OutOfMemoryError throw from the UncaughtExceptionHandler throw from the UncaughtExceptionHandler in thread "MVStore background writer nio:C:/Users/Administrator/Desktop/Settlemen t/corda -settlement/build/nodes/Bob/persistence.mv​​.db"

我也厌倦了在 H2 DB 文档中寻找解决方案。但是,找不到任何解决方案。

4

1 回答 1

1

Pagination默认情况下,未指定大小时,Vault 查询会快速失败。请参阅https://docs.corda.net/releases/release-V2.0/api-vault-query.html?highlight=pagination#pagination

与查询大小成比例地增加堆大小应该可以充分扩展(即,您不应该看到任何内存不足错误)。了解您的交易的大小对我们很有用(例如,交易的大小,包括作为 blob 存储在 H2 数据库的交易表中的合约状态),以便我们可以执行一些内部基准测试,看看我们是否可以重现同样的情况。

于 2018-01-23T12:23:14.413 回答