在vertx中开始或经过一段时间后出现JDBCClient错误

时间:2016-09-15 11:00:56

标签: java vert.x

the error in question

请原谅终端的图片 - 我的项目设置非常糟糕,所以我无法在此处粘贴实际日志。

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

JDBCClient在服务器负载上初始化,我觉得错误可能与它连接的AWS服务器有关,给它一个超时信号。在提出请求之前,有什么办法可以检查这个并重新初始化JDBCClient吗?或者在某些我不了解的地方还有其他问题?

1 个答案:

答案 0 :(得分:2)

RejectedExecutionException

有两个原因
  1. RejectedExecutionException的原因之一就是我们尝试的时候 在我们关闭执行程序后执行一个新任务。
  2. 执行者出现RejectedExecutionException的另一个案例 不能承担任何更多的任务。有时候是这样的 当达到其本地“记忆”的限制时。
  3. 在您的情况下,此异常导致108 JDBCClientImpl.java的{​​{1}}行exec.execute()。这里execExecutorService的对象,它导致RejectedExecutionException,因为该任务无法提交执行,因为此执行程序已关闭或已达到其容量。

    1. 检查您是ResultSetStatement还是Connection关闭 是不是。
    2. 检查您是否多次初始化JDBCClientImpl 也可能导致此例外。
    3. ThreadPoolExecutor有一个关闭的finalize()方法 遗嘱执行人。鉴于我们没有提到下属 遗嘱执行人,似乎最终确定的可能性很大 导致关机。
    4. 您可以查看RejectedExecutionExceptionJDBCCLientImpl.java这个网址,以查找getConnection()方法来源。