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

How to handle RESOURCE EXHAUSTED error in API calls

我正在使用 Java 分类帐绑定通过包裹服务从分类帐中获取包裹,但出现以下错误:

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 服务器。要增加它,你必须自己为gRPC构造和配置ManagedChannel并将其传递给DamlLedgerClient的构造函数。

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