我目前正在开发一个可运行MySQL的Google Cloud Run Web应用程序,但遇到了无法复制的错误。我在隔夜打开它的早晨刷新应用程序后首先遇到了这个问题。
这里是错误消息:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:成功从服务器接收到的最后一个数据包是236,899,325毫秒之前。成功发送到服务器的最后一个数据包是236,899,326毫秒之前。大于服务器配置的值“ wait_timeout”。为了避免此问题,您应该考虑在应用程序中使用连接之前到期和/或测试连接有效性,增加服务器配置的客户端超时值或使用Connector / J连接属性'autoReconnect = true'。
我知道导致此问题的原因很可能是由于我的应用程序像this thread之前数据库连接超时了。
我打算通过按this thread中所述编辑Cloud MySQL实例来增加等待时间的标志,以期有望解决此问题。
我想复制此问题,以便我可以评估我将来打算的解决方案是否会在将来工作,但是对于复制类似的超时值,我找不到很好的答案。
在Google Cloud Platform中,我尝试停止并重新启动与我的应用程序进行通信的数据库,但这并没有重新创建错误。
有人遇到类似问题吗?如果是这样,我将如何重新创建错误而不必等一夜呢?
您应该实施重试系统,而不是尝试复制连接问题。我将尝试在我的应用程序中实现指数补偿,作为实现此目的的第一种方法。
尝试复制该错误的问题是,由于无法控制的因素,您可能无法再次准确地获得此错误。
我希望您发现此信息有用。