Vertx mysql 连接停止响应 NullPointerException

Posted

技术标签:

【中文标题】Vertx mysql 连接停止响应 NullPointerException【英文标题】:Vertx mysql connection stops responding on NullPointerException 【发布时间】:2022-01-18 01:49:48 【问题描述】:

在 vertx 中实现的应用程序遇到了一个特殊问题。我有一个大约 20 个连接的连接池。

一旦在任何请求中遇到 NullPointerException,mysql 连接就会停止响应。

在日志下方找到但不明白为什么这会使 mysql 连接无响应。

Exception in thread "vert.x-eventloop-thread-2" io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.lang.NullPointerException

此外,此异常出现的次数与连接池中的连接数完全相同,之后整个应用程序变得无响应。

【问题讨论】:

【参考方案1】:

来自documentation

"调用只有onNext参数的Subscribe方法时, OnError 行为将在线程上重新抛出异常 消息来自可观察序列。这 在这种情况下,OnCompleted 行为是什么都不做。”

看起来您需要处理异常,让程序知道在发生异常(在本例中为 NPE)时该做什么。因此,将onError() 实现添加到您的.subscribe()(或流)中会很棒。

另一个stack overflow answer 可能会有所帮助。

【讨论】:

以上是关于Vertx mysql 连接停止响应 NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章

连接被拒绝,如何解决?

springboot与vertx异步并发对比

Vertx DataAccess 数据库访问

Vertx DataAccess 数据库访问

在 MySQL Cluster 前面使用 Varnish 来缓存响应

source端在hdmi断开连接多久会停止连接