我想存储一个大小为194个字符及以上的字符串数据。当我试图存储这样的字符串时,它正在执行流,状态对象正在被创建,但是在服务器端,它将抛出一个异常,如下所示:
Caused by: net.corda.core.CordaRuntimeException:
com.esotericsoftware.kryo.KryoException:
java.lang.UnsupportedOperationException:
net.corda.nodeapi.internal.persistence.CordaPersistence, which is a
closeable resource, has been detected during flow checkpointing.
Restoring such resources across node restarts is not supported. Make
sure code accessing it is confined to a private method or the
reference is nulled out.
我能够毫无例外地存储194个字符的字符串。但是,如果它超过200个字符,则会出现异常。
我使用的是Contracs4.3版本和默认的H2 DB。我试图存储的字符串是:
"3C03582C57E94C493CEE2B3FFCBAB9757F265DB03EDFB418739D77ECE1C5B66A,EE5B0454A8993279AB1D409872D5B364CD38FCB8C3B6740FB4DEF3B5E55AFEF7,CC96E3E8348ADAC42FFBEA3C7C1A88EDFC7A391421DB6F97FB80C53F52E11F41,69D77466FEACE0F702CBF2244F2A55526DFBC5F1180AB69EA561E15542155AB1“
发布于 2020-05-20 05:06:22
null
。NODE_TRANSACTIONS
表内的TRANSACTION_VALUE
列中(参见这里);我确信Blob列的大小非常大(您可以使用您最喜欢的SQL编辑器检查它的大小);但是您必须记住,控制大小限制的实际上是maxTransactionSize
,它是在网络级别上设置的网络参数之一(即网络中的所有节点都必须遵守这些参数);因此,如果您的maxTransactionSize
设置为500 MB,那么即使NODE_TRANSACTIONS
表能够处理这个问题,也不能发送大小大于500 MB的事务(参见这里)。
网络参数被缓存在节点目录中的network-parameters
文件中。还可以使用节点资源管理器查看该文件的值。https://stackoverflow.com/questions/61909691
复制相似问题