我正在使用Vertx 3解决一个奇怪的问题。我已经为HTTP路由创建了一个请求处理程序,它可以查询PostgreSQL数据库。这一切都是非常标准的,它可以工作,直到行数超过4950.这是尽管使用queryStream,它应该扩展。
我已经简化了下面的代码来说明问题:
dbClient.getConnection(res -> {
if (res.failed()) {
event.fail(500);
return;
}
try (final SQLConnection conn = res.result()) {
conn.queryStream("select x, y, z from large_table", stream -> {
if (stream.succeeded()) {
final SQLRowStream rowStream = stream.result();
rowStream.handler(row -> {
// Do something with row here, but leaving it empty now
}).endHandler(endHandler -> {
response.end();
});
}
});
}
如何对此进行故障排除?当我在psql中运行查询或在Java SE中使用常规JDBC时,它没有任何问题。
如果我在查询中附加“LIMIT 4000”,它就可以正常工作。
或者我误解了Vertx的JDBC支持,因为我需要执行此操作作为阻止代码,因为它花了这么长时间?
答案 0 :(得分:0)
似乎升级到vert.x 3.5.2解决了这个问题。我不确定实际根本原因是什么。