休眠反应在 aws rds 中没有活动的 Vert.x 上下文

Posted

技术标签:

【中文标题】休眠反应在 aws rds 中没有活动的 Vert.x 上下文【英文标题】:Hibernate reactive No Vert.x context active in aws rds 【发布时间】:2021-12-22 07:45:15 【问题描述】:

我在我的应用程序中随机收到此异常: HR000065:没有激活 Vert.x 上下文

java.lang.IllegalStateException: HR000065: 没有激活 Vert.x 上下文

2021-11-09T17:12:18.143+02:00 在 org.hibernate.reactive.context.impl.VertxContext.put(VertxContext.java:41) ~[hibernate-reactive-core-1.0.1.Final.jar!/:1.0.1.Final]

2021-11-09T17:12:18.143+02:00 已禁止: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:

2021-11-09T17:12:18.143+02:00 在以下位置观察到错误 网站:

2021-11-09T17:12:18.143+02:00 |_ checkpoint ⇢ 处理程序 com.nflp.processingapplication.main.modules.authentication.controller.PrincipalController#getUserAuthentication() [DispatcherHandler]

2021-11-09T17:12:18.143+02:00 |_ 检查点 ⇢ com.nflp.processingapplication.main.modules.api.shared.filter.ApiExceptionFilter

它并不总是发生,但几次之后,我开始收到对数据库的任何请求的超时异常,看起来连接从未释放。 此外,我只在 prod 环境中收到此错误 - 我们使用的是 aws rds,它在本地工作得非常好,即使我创建了一个到 rds 实例的 ssh 隧道并在本地连接到 prod db。 我只在我的应用程序中使用 withTransaction 和 withSession 之类的方法,所以我不认为这会成为功能实现的问题。

【问题讨论】:

【参考方案1】:

问题与我使用 api 的 Stage.Session 实现并使用 Mono.fromCompleationStage() 将其转换为 Reactive Java 流 [Flux,Mono] 的事实有关。 切换到 Mutiny api 后,我不再能够重现此问题。

【讨论】:

以上是关于休眠反应在 aws rds 中没有活动的 Vert.x 上下文的主要内容,如果未能解决你的问题,请参考以下文章

连接节点 v5.10.1 时握手不活动超时错误。到 aws mysql RDS

向AWS RDS输入数据时的事件订阅

Laravel:AWS RDS laravel 中没有表的此类文件或目录

AWS RDS备份是增量备份还是差异备份?

在 AWS RDS 上自动更改 SQL 架构

AWS 是不是支持 RDS 实例的 Autoscaling