Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQLException-无法检索事务只读状态服务器_Java_Mysql_Jdbc_Amazon Rds_Dropwizard - Fatal编程技术网

Java SQLException-无法检索事务只读状态服务器

Java SQLException-无法检索事务只读状态服务器,java,mysql,jdbc,amazon-rds,dropwizard,Java,Mysql,Jdbc,Amazon Rds,Dropwizard,这个问题似乎在互联网上到处都有,但没有任何具体的解决办法。我已经放弃了各种尝试 有没有人能提供更具体的解决方案,或者提供一种方法来进一步了解潜在问题 一些表上的一些insert查询似乎失败,出现以下错误: application-2020-01-30-3.log.gz:org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException: java.sql.SQLException: Could not retrieve transatio

这个问题似乎在互联网上到处都有,但没有任何具体的解决办法。我已经放弃了各种尝试

有没有人能提供更具体的解决方案,或者提供一种方法来进一步了解潜在问题

一些表上的一些insert查询似乎失败,出现以下错误:

application-2020-01-30-3.log.gz:org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException: java.sql.SQLException: Could not retrieve transation read-only status server [statement:"INSERT INTO TABLE ({FIELDS}) VALUES({VALUES})", located:"INSERT INTO TABLE ({FIELDS}) VALUES({VALUES})", rewritten:"/* TableDAO.save */ INSERT INTO TABLE ({FIELDS}) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)"
application-2020-01-30-3.log.gz:    at org.skife.jdbi.v2.SQLStatement.internalExecute(SQLStatement.java:1338)
application-2020-01-30-3.log.gz:    at org.skife.jdbi.v2.Update.executeAndReturnGeneratedKeys(Update.java:82)
application-2020-01-30-3.log.gz:    at org.skife.jdbi.v2.sqlobject.UpdateHandler$1.value(UpdateHandler.java:56)
application-2020-01-30-3.log.gz:    at org.skife.jdbi.v2.sqlobject.UpdateHandler.invoke(UpdateHandler.java:79)
application-2020-01-30-3.log.gz:    at org.skife.jdbi.v2.sqlobject.SqlObject.invoke(SqlObject.java:224)
application-2020-01-30-3.log.gz:    at org.skife.jdbi.v2.sqlobject.SqlObject$3.intercept(SqlObject.java:133)
application-2020-01-30-3.log.gz:    at org.skife.jdbi.v2.sqlobject.CloseInternalDoNotUseThisClass$$EnhancerByCGLIB$$dd33673f.save(<generated>)
application-2020-01-30-3.log.gz:    at com.zoomcar.services.inventory.core.impl.UtilizationManagerImpl.calculateUtilization(UtilizationManagerImpl.java:233)
application-2020-01-30-3.log.gz:    at com.zoomcar.services.inventory.scheduler.jobs.UtilizationCalculationJob.execute(UtilizationCalculationJob.java:25)
application-2020-01-30-3.log.gz:    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
application-2020-01-30-3.log.gz:    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
application-2020-01-30-3.log.gz:Caused by: java.sql.SQLException: Could not retrieve transation read-only status server
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:545)
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:513)
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:505)
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:479)
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:489)
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:2610)
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:2576)
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.PreparedStatement.checkReadOnlySafeStatement(PreparedStatement.java:1082)
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.PreparedStatement.execute(PreparedStatement.java:1102)
application-2020-01-30-3.log.gz:    at jdk.internal.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
application-2020-01-30-3.log.gz:    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
application-2020-01-30-3.log.gz:    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
application-2020-01-30-3.log.gz:    at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114)
application-2020-01-30-3.log.gz:    at com.sun.proxy.$Proxy72.execute(Unknown Source)
application-2020-01-30-3.log.gz:    at org.skife.jdbi.v2.SQLStatement.internalExecute(SQLStatement.java:1327)
application-2020-01-30-3.log.gz:    ... 10 common frames omitted
application-2020-01-30-3.log.gz:Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 67,698,890 milliseconds ago.  The last packet sent successfully to the server was 67,698,891 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:590)
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:57)
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:1983)
application-2020-01-30-3.log.gz:    at com.mysql.cj.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:1936)
application-2020-01-30-3.log.gz:org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException:java.sql.SQLException:无法检索事务只读状态服务器[语句:“插入表({FIELDS})值({VALUES})”,位于:“插入表({FIELDS})值({VALUES})”,重写:“/*TableDAO.save*/INSERT-INTO-TABLE”({FIELDS})值(?,,,,,,,,,,,,,,,,?)”
application-2020-01-30-3.log.gz:org.skife.jdbi.v2.SQLStatement.internalExecute(SQLStatement.java:1338)
application-2020-01-30-3.log.gz:org.skife.jdbi.v2.Update.executeAndReturnGeneratedKey(Update.java:82)
application-2020-01-30-3.log.gz:org.skife.jdbi.v2.sqlobject.UpdateHandler$1.value(UpdateHandler.java:56)
application-2020-01-30-3.log.gz:org.skife.jdbi.v2.sqlobject.UpdateHandler.invoke(UpdateHandler.java:79)
application-2020-01-30-3.log.gz:org.skife.jdbi.v2.sqlobject.sqlobject.invoke(sqlobject.java:224)
application-2020-01-30-3.log.gz:org.skife.jdbi.v2.sqlobject.sqlobject$3.intercept(sqlobject.java:133)
application-2020-01-30-3.log.gz:org.skife.jdbi.v2.sqlobject.CloseInternalDoNotUseThisClass$$EnhancerByGlib$$dd33673f.save()
application-2020-01-30-3.log.gz:com.zoomcar.services.inventory.core.impl.UtilizationManagerImpl.calculateUtilization(UtilizationManagerImpl.java:233)
application-2020-01-30-3.log.gz:com.zoomcar.services.inventory.scheduler.jobs.UtilizationCalculationJob.execute(UtilizationCalculationJob.java:25)
application-2020-01-30-3.log.gz:org.quartz.core.JobRunShell.run(JobRunShell.java:202)
application-2020-01-30-3.log.gz:org.quartz.siml.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
application-2020-01-30-3.log.gz:原因:java.sql.SQLException:无法检索事务只读状态服务器
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:545)
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:513)
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:505)
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:479)
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:489)
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:2610)
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:2576)
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.PreparedStatement.checkreadonlysafestment(PreparedStatement.java:1082)
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.PreparedStatement.execute(PreparedStatement.java:1102)
application-2020-01-30-3.log.gz:at jdk.internal.reflect.GeneratedMethodAccessor20.invoke(未知源)
application-2020-01-30-3.log.gz:at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
application-2020-01-30-3.log.gz:at java.base/java.lang.reflect.Method.invoke(Method.java:566)
application-2020-01-30-3.log.gz:org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114)
application-2020-01-30-3.log.gz:com.sun.proxy.$Proxy72.execute(未知源)
application-2020-01-30-3.log.gz:org.skife.jdbi.v2.SQLStatement.internalExecute(SQLStatement.java:1327)
application-2020-01-30-3.log.gz:…省略10个公共帧
应用程序-2020-0130-3。Log:GZ:由COM.Myq.L.jj.jdc.Exvist.Exchange异常:从服务器成功接收的最后一个数据包是67698890毫秒以前。最后发送到服务器的数据包是67698891毫秒以前。比“WaITiTimeOutt”的服务器配置值长。您应该考虑E。i在应用程序中使用之前是否过期和/或测试连接有效性,增加客户端超时的服务器配置值,或使用连接器/J连接属性“autoReconnect=true”来避免此问题。
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:590)
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:57)
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:1983)
application-2020-01-30-3.log.gz:com.mysql.cj.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:1936)
应用程序框架:Dropwizard

使用的数据库URL:“jdbc:mysql://{domain name}:{port}/{DB_name}?autoReconnect=true&usesdl=false”

DB驱动程序类:com.mysql.jdbc.Driver

应用程序使用Amazon RDS“了解更多潜在问题”,查看真正的错误消息,即最后列出的“原因”,而不是由此产生的错误:

原因:
com.mysql.cj.jdbc.exceptions.CommunicationsException
:从服务器成功接收的最后一个数据包是67698890毫秒前。成功发送到服务器的最后一个数据包是67698891毫秒前。长于服务器配置的“等待超时”值。您应该请考虑在应用程序中使用之前过期和/或测试连接有效性,增加客户端超时的服务器配置值,或使用连接器/J连接属性“自动”