我有一个应客户要求通过GRPC从数据库流式处理数据的应用程序。
当客户端在流完成之前关闭时。 该错误正在日志中引发,但我不知道如何捕获它以关闭基础数据库连接,从而导致数据库连接泄漏。
我正在使用Java和grpc-java版本1.23.0。
try {
... events is a stream retrieved from DB
StreamObservers.copyWithFlowControl(response, new StreamObserverWithCallbacks<>(
responseObserver,
count -> {
LOGGER.info("Streaming finished);
events.close();
},
ex -> {
LOGGER.error("Error streaming", ex);
events.close();
}
));
} catch (Exception e) {
LOGGER.error("Any other exception", e);
events.close();
}
这是我关闭客户端时日志中的异常
2019-08-27 18:39:34,155 WARN [grpc-nio-worker-ELG-3-1] i.g.n.s.i.g.n.NettyServerHandler: Stream Error
io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2Exception$StreamException: Stream cl