Java Corda 3 中的 OutOfMemoryError
Java OutOfMemoryError in Corda 3
当 运行 一个 Corda 3 节点时,我得到以下异常:
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
如何增加节点可用的内存量?
您可以 运行 通过使用以下标志从命令行 运行 节点的 corda JAR 来 运行 具有额外内存的节点:
java -Xmx2048m -jar corda.jar
您还可以在节点的 node.conf
配置文件中指定节点应 运行 具有额外的内存:
myLegalName="O=PartyA,L=London,C=GB"
...
jvmArgs=["-Xmx8G"]
最后可以在deployNodes
任务中指定节点应该运行有额外的内存:
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
directory "./build/nodes"
node {
name "O=Node,L=London,C=GB"
...
extraConfig = [
jvmArgs : [ "-Xmx1g"]
]
}
}
参见 https://docs.corda.net/running-a-node.html#starting-an-individual-corda-node。
在 "task deployNodes" 部分添加以下块对我有用 -
extraConfig = [
jvmArgs : [ "-Xmx1g"]
]
在 Gradle 的 Cordform
任务中添加 extraConfig
使用 Corda Enterprise 4.2 对我有效:
task deployNodes(type: net.corda.plugins.Cordform) {
nodeDefaults {
// ...
extraConfig = [ custom: [jvmArgs: [ "-Xms8G", "-Xmx8G", "-XX:+UseG1GC" ]] ]
}
// ...
}
生成的 node.conf 片段是:
custom {
jvmArgs=[
"-Xms8G",
"-Xmx8G",
"-XX:+UseG1GC"
]
}
当 运行 一个 Corda 3 节点时,我得到以下异常:
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
如何增加节点可用的内存量?
您可以 运行 通过使用以下标志从命令行 运行 节点的 corda JAR 来 运行 具有额外内存的节点:
java -Xmx2048m -jar corda.jar
您还可以在节点的 node.conf
配置文件中指定节点应 运行 具有额外的内存:
myLegalName="O=PartyA,L=London,C=GB"
...
jvmArgs=["-Xmx8G"]
最后可以在deployNodes
任务中指定节点应该运行有额外的内存:
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
directory "./build/nodes"
node {
name "O=Node,L=London,C=GB"
...
extraConfig = [
jvmArgs : [ "-Xmx1g"]
]
}
}
参见 https://docs.corda.net/running-a-node.html#starting-an-individual-corda-node。
在 "task deployNodes" 部分添加以下块对我有用 -
extraConfig = [ jvmArgs : [ "-Xmx1g"] ]
在 Gradle 的 Cordform
任务中添加 extraConfig
使用 Corda Enterprise 4.2 对我有效:
task deployNodes(type: net.corda.plugins.Cordform) {
nodeDefaults {
// ...
extraConfig = [ custom: [jvmArgs: [ "-Xms8G", "-Xmx8G", "-XX:+UseG1GC" ]] ]
}
// ...
}
生成的 node.conf 片段是:
custom {
jvmArgs=[
"-Xms8G",
"-Xmx8G",
"-XX:+UseG1GC"
]
}