Как обработать ошибку RESOURCE EXHAUSTED в вызовах API - PullRequest
0 голосов
/ 23 января 2019

Я использую привязки Java Ledger для получения пакетов из книги через службу 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();

1 Ответ

0 голосов
/ 23 января 2019

Размер сообщения ограничен ManagedChannel, используемым для подключения к серверу gRPC.Чтобы увеличить его, вы должны создать и настроить ManagedChannel для gRPC самостоятельно и передать его конструктору DamlLedgerClient.

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