我正在使用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();
答案 0 :(得分:2)
消息大小受用于连接到gRPC服务器的ManagedChannel
的限制。要增加它,您必须自己为gRPC构造和配置ManagedChannel
并将其传递给DamlLedgerClient
的构造函数。
ManagedChannel channel =
ManagedChannelBuilder
.forAddress(host,port)
.usePlaintext()
.maxInboundMessageSize(9999999)
.build();
DamlLedgerClient client = new DamlLedgerClient(Optional.empty(), channel);