如何在API调用中处理RESOURCE EXHAUSTED错误

时间:2019-01-22 21:34:17

标签: daml

我正在使用Java Ledger Bindings通过Package Service从分类帐中获取软件包,并且出现以下错误:

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();

1 个答案:

答案 0 :(得分:2)

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

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