RejectedExecutionException

RejectedExecutionException

java - 在vertx中启动或一段时间后出现JDBCClient错误-LMLPHP

打扰一下终端的图片-我的项目设置非常糟糕,因此我无法将实际日志粘贴到此处。

有时,当我启动我的vertx Web服务器并登录时,它做得很好,没有任何问题。一段时间后,任何数据库请求(例如再次登录)都将返回此错误。有时这只是在启动时发生。

JDBCClient是在服务器负载上初始化的,我认为错误可能与它所连接的AWS服务器有关,并向其提供超时信号。有什么办法可以在发出请求之前检查并重新初始化JDBCClient?还是我不知道的另一个地方?

最佳答案

RejectedExecutionException有两个原因


RejectedExecutionException的原因之一是当我们尝试
关闭执行程序后,执行新任务。
RejectedExecutionException的另一种情况是执行器出现
不能再承担更多的任务。有时候是这样的
当达到其本地“内存”的限制时。


在您的情况下,此异常导致108的第JDBCClientImpl.java行(即exec.execute())出现。这里的execExecutorService的对象,该对象导致RejectedExecutionException,因为无法提交任务执行该任务,或者是因为该执行器已关闭,或者由于其容量已达到。


检查您是否正在ResultSetStatementConnection关闭
是否。
检查您是否多次初始化JDBCClientImpl
也可能导致此异常。
ThreadPoolExecutor具有finalize()方法,可以关闭
执行者。鉴于我们没有提及基础
执行者,最终敲定似乎很有可能
导致关机。


您可以检出此URL的RejectedExecutionException以及此JDBCCLientImpl.java的位置,您可以在其中找到getConnection()方法的源。

关于java - 在vertx中启动或一段时间后出现JDBCClient错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39509414/

10-12 16:16