daml - 如何处理 API 调用中的 RESOURCE EXHAUSTED 错误

标签 daml

我正在使用 Java Ledger Bindings 通过 Package 服务从分类帐中获取包,并收到以下错误:
RESOURCE_EXHAUSTED: gRPC message exceeds maximum size
我的应用程序基于 Ping-Pong 示例应用程序,并且 daml 模型有大约 300 多个 daml 文件。

异常发生在以下代码块周围:

DamlLedgerClient client = DamlLedgerClient.forHostWithLedgerIdDiscovery(host, port, Optional.empty());
client.connect();
PackageClient packageService = client.getPackageClient();
Flowable<String> packagesIds = packageService.listPackages();

最佳答案

消息大小受 ManagedChannel 限制。用于连接 gRPC 服务器。要增加它,您必须构建和配置 ManagedChannel对于 gRPC 自己并将其传递给 DamlLedgerClient 的构造函数.

ManagedChannel channel =
    ManagedChannelBuilder
    .forAddress(host,port)
    .usePlaintext()
    .maxInboundMessageSize(9999999)
    .build();
DamlLedgerClient client = new DamlLedgerClient(Optional.empty(), channel);

关于daml - 如何处理 API 调用中的 RESOURCE EXHAUSTED 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54316767/

相关文章:

daml - Main.daml 中的语法错误

java - InvalidProtocolBufferException 尝试获取主模块包 ID

daml - 如果 Daml 共享相同的账本或从 1.18.0 版本的 postgreSQL 开始,Daml 如何能够维护各方之间的隐私?

monads - 使用 getTime 函数时出现问题

node.js - 如何使用 Nodejs 绑定(bind)从 DAML 中的存档合约中获取数据?

daml - 有没有一种方法可以尝试通过ID来获取契约(Contract),并且在契约(Contract)处于非事件状态时不会失败?

daml - 如何提取党的名称?

java - 开始使用 Ledger API