重启MySQL后丢失Wildfly连接
我们使用2个版本MySQL版本14.14发行版5.6.51,Linux(x86_64)使用EditLine包装和MySQL版本8.0.28Linuxx86_64(MySQL社区服务器-GPL)
我们尝试了两个版本的Wildfly Wildfly-10.1.0。最终版本和wildfly-19.1.0。最终的
我们使用了JDBC数据库连接器版本is-8.0.19
public static Connection getConnection() throws Exception {
LOG.debug("returning new connection");
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/xxx?allowPublicKeyRetrieval=true&useSSL=false", "xxxx", "xxxx");
return con;
}
重启MySQL服务器后如何自动重新连接,最好的方法是什么?
我们收到了错误信息
>
2022-04-08 16:09:36614错误[xxx.xxx.mysql.MysqlSentSMSDAo](DefaultQuartzScheduler\u Worker-9)连接关闭后不允许操作:Java语言sql。SQLNonTransientConnectionException:连接关闭后不允许执行任何操作。在com.mysql。cj。jdbc。例外情况。SQLError。在com上创建sqlexception(SQLError.java:110)。mysql。cj。jdbc。例外情况。SQLError。在com上创建sqlexception(SQLError.java:97)。mysql。cj。jdbc。例外情况。SQLError。在com上创建sqlexception(SQLError.java:89)。mysql。cj。jdbc。例外情况。SQLError。在com上创建sqlexception(SQLError.java:63)。mysql。cj。jdbc。例外情况。SQLError。在com上创建sqlexception(SQLError.java:73)。mysql。cj。jdbc。例外情况。SQLExceptionsMapping。com上的translateException(SQLExceptionsMapping.java:73)。mysql。cj。jdbc。连接示例。com上的prepareStatement(ConnectionImpl.java:1659)。mysql。cj。jdbc。连接示例。xxx处的prepareStatement(ConnectionImpl.java:1575)。xxxx年。装载机。mysql。MysqlSentSMSDAo。在xxx处选择ReplyRecord(MysqlSentSMSDAo.java:85)。xxx。装载机。时间表。更新ReplyReport。在org上执行(UpdateReplyReport.java:109)。石英果心JobRunShell。在org上运行(JobRunShell.java:202)。石英简单。SimpleThreadPool$WorkerThread。运行(SimpleThreadPool.java:525)由:com引起。mysql。cj。例外情况。ConnectionsClosedException:连接关闭后不允许进行任何操作。在太阳下。反映NativeConstructorAccessorImpl。sun上的newInstance0(本机方法)。反映NativeConstructorAccessorImpl。sun上的newInstance(NativeConstructorAccessorImpl.java:62)。反映授权ConstructorAccessorImpl。java上的newInstance(DelegatingConstructorAccessorImpl.java:45)。lang.reflect。构造函数。com上的newInstance(Constructor.java:423)。mysql。cj。例外情况。例外工厂。com上的createException(ExceptionFactory.java:61)。mysql。cj。例外情况。例外工厂。com上的createException(ExceptionFactory.java:105)。mysql。cj。例外情况。例外工厂。com上的createException(ExceptionFactory.java:151)。mysql。cj。NativeSession。com上的checkClosed(NativeSession.java:1171)。mysql。cj。jdbc。连接示例。com上的checkClosed(ConnectionImpl.java:576)。mysql。cj。jdbc。连接示例。prepareStatement(ConnectionImpl.java:1590)。。。5更多原因:com.mysql。cj。例外情况。CJCommunicationsException:通信链路故障
从服务器成功接收到的最后一个数据包是4,742毫秒前。成功发送到服务器的最后一个数据包是4,744毫秒前。在hell.java:202SQLEorg.quartz.simpl.通信异常(SQLEhread.run)ool.java:525SQLExceptionsMcom.mysql.cj.exceptions.异常(SQLExceptionsMapping.java:64)com.mysql.cj.jdbc.客户准备tatement.execute内部(客户准备tatement.java:953)com.mysql.cj.jdbc.客户准备tatement.execute查询(客户准备tatement.java:1003)xxx.xxx.loader.mysql.MysqlSentSMSDAo.getListOfSQLSentSMSEntities(MysqlSentSMSDAo.java:39)xxx.xxx.loader.schedular.UpdateBulkReceipts.execute(UpdateBulkReceipts.java:59)org.quartz.core.JobRunShell.run(JobRunScom.mysql.cj.jdbc.exceptions.)rror.createSimpleThreadPool$WorkerTrror.java:174(SimpleThreadPcom.mysql.cj.jdbc.exceptions.)引起的:apping.translateCJCommicationsException:通信链路故障
在连接字符串中添加属性autoReconnect=true,使连接自动恢复。如果您使用的是Wildfly,那么最好在单机版中定义数据源。xml,其中autoReconnect=true
.
首先,我需要指出我在我的机器上运行了Wikipedia转储的sql文件,为了能够运行,我需要更新许多关于内存中可用索引大小的设置和一些其他设置。我只想提到那些大型sql查询运行成功,在内存或超时方面没有任何问题。 现在我有了一个表pagelinks(pl_from,pl_title),它显示了出现在每个维基百科页面中的链接,例如,数据可以是(1,“title1”),(1,“title2”),(2,
问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: 查询期间失去与MySQL服务器的连接 我正在将一些数据从大型csv导入mysql表。在将文件导入到表的过程中,我丢失了与服务器的连接。 怎么了? 错误代码为2013:在查询过程中失去与mySql服务器的连接。 我正在从Windows服务器上的ubuntu机器远程运行这些查询。 问题答案: 我发现此问题的最简单解决方案是将MySq
问题内容: 我收到 错误代码:2013。 当我尝试使用MySQL Workbench向表中添加索引时, 在查询 错误 期间丢失了与MySQL服务器的连接 。我还注意到,只要我运行长时间查询,它就会出现。 是否有增加超时值的方法? 问题答案: 新版本的MySQL WorkBench具有更改特定超时的选项。 对我来说,它位于编辑Preferences首选项SQL SQL编辑器DB DBMS连接读取超时
与我的主题相同有很多问题,但我的内容和问题似乎不同。在我的工作台中,我运行代码 上面的代码工作正常,但当我运行代码b时 我收到错误。 为什么这种情况会发生在我的工作台上? PS:工作台和我的新功能
问题内容: 我正在开发使用JPA + Hibernate访问MySQL数据库的独立服务器。 当我启动服务器时,一切正常。但是,经过一段时间(通常是第二天早上,如果我在下午开始),它将停止工作,因为与MySQL的连接显然已关闭(我在日志中看到很多s)。这可能是由于闲置造成的,服务器正在开发中,晚上没有人使用它。 我以为Hibernate,JDBC或我应用程序下面的其他某些层将管理连接,并在必要时重新
问题内容: 我有一个RMI服务器和一个桌面RMI客户端。重新启动服务器时,客户端出现错误。是否可以在不重新启动客户端的情况下重新启动RMI连接? [编辑]这是堆栈跟踪: 问题答案: 服务器终止后,您将收到一个ConnectException。之后,您可以使用Naming.lookup获取新的服务器对象。