当前位置: 首页 > 面试题库 >

MySQL支持的基于Hibernate的Java Servlet应用程序中的Hibernate Communications Link失败

雷国兴
2023-03-14
问题内容

让我描述一下我的问题-

我有一个Java应用程序-
hibernate作为MySQL上的数据库接口层。我在应用程序中收到通信链接失败错误。此错误的发生是非常具体的情况。我收到此错误,当我在无人看管的情况下使mysql服务器超过大约6个小时时(即,当没有查询发送给MySQL的时间超过大约6个小时时)。我将在下面粘贴顶级的“例外”级别描述,并html" target="_blank">添加一个pastebin链接以获取详细的stacktrace描述。

javax.persistence.PersistenceException:org.hibernate.exception.JDBCConnectionException:无法打开连接-
原因:org.hibernate.exception.JDBCConnectionException:无法打开连接-
原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接故障-
从服务器成功接收到的最后一个数据包是1,274,868,181,212毫秒之前。成功发送到服务器的最后一个数据包是在0毫秒之前。-由以下原因引起:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败-
从服务器成功接收到的最后一个数据包是1,274,868,181,212毫秒之前。成功发送到服务器的最后一个数据包是在0毫秒之前。-由以下原因引起:java.net.ConnectException:连接被拒绝:connect

链接到pastebin进行进一步调查的链接-http:
//pastebin.com/4KujAmgD

从这些异常语句中我了解到,在一段时间的空闲/无活动之后,MySQL拒绝建立任何连接。我一直在通过Google搜索阅读有关此内容的一些文章,并了解到克服这一问题的一种可能方法是为c3p0属性设置值,因为c3p0与Hibernate捆绑在一起。具体来说,我从这里http://www.mchange.com/projects/c3p0/index.html阅读,设置两个属性idleConnectionTestPeriod和preferredTestQuery将为我解决此问题。但是这些值似乎没有产生作用。

这是解决此问题的正确方法吗?如果没有,解决这个问题的正确方法是什么?

以下是stackoverflow.com上相关的通信链接故障问题,但我在他们的答案中找不到满意的答案。
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications链接失败
如何处理:通信链接失败

注意1-当我连续使用我的应用程序时,我没有收到此错误。注2-我将JPA与Hibernate一起使用,因此我的hibernate.dialect等hibernate属性位于META-
INF文件夹的persistence.xml中(这会阻止c3p0属性工作吗?)

编辑-我尝试的c3p0参数在注释中


问题答案:

我以前有问题。看起来MySQL服务器超时了您的连接。超时默认为28800,即8小时。请参阅此链接以获取更多详细信息。

http://shengchien.blogspot.com/2009/10/hibernate-c3p0-and-
mysql.html

希望对您有用。



 类似资料:
  • 目前,我已经使用spring boot hikari连接池编写了我的项目,并使用fetchAsync方法获取结果。但根据这篇文档,反应式抓取阻止了JDBC API。 有没有可能用flux封装fetchAsync方法的CompletionStage对象并使其成为反应性的? 是否有通过连接池支持r2dbc的计划,以及时间表(如果正在进行)

  • 问题内容: 是否有任何网络浏览器支持动画光标? 我一直在网上搜索以将自定义光标添加到我的Web应用程序中。我发现很多非动画(.cur)和动画(.ani)游标,并使用正确的CSS,以便我的应用程序具有自定义游标!我尝试过的Web浏览器似乎不支持动画光标,我想知道是否有任何方法可以将动画光标放入我的Web应用程序中。 问题答案: 经过更多研究后,我认为目前尚不可能。截至2012年2月8日,似乎没有任何

  • 问题内容: 嗨,我的问题不是技术性的。我想知道hibernate5是否支持基于XML的实体映射。 我的要求如下: 我想要在Jersey- Hibernate上使用后端。我的前端是Android应用程序。我想将我的实体POJO保留在一个公共项目中,以便它们将由应用程序和服务器共享。Gson将序列化/反序列化双方。但是由于android应用程序不支持所有Java库进行编译,因此我不希望我的common

  • 主要内容:创建项目,在Eclipse中导入项目,运行项目从这篇文章开始,我们使用Spring-AOP框架编写实际的AOP应用程序。在开始使用Spring-WS框架编写第一个示例之前,必须确保已经按照Spring AOP安装配置教程中的说明正确设置了Spring-AOP开发运行环境。 现在我们继续来编写一个简单的基于控制台的Spring AOP应用程序,它用于演示AOP的概念。 先来看看要创建的项目的目录结构 - 创建项目 打开命令控制台,进入目录并执行

  • 问题内容: 我正在设计一个简单的基于Web的应用程序。我是这个基于Web的领域的新手,我需要您提供有关设计模式的建议,例如应如何在Servlet之间分配职责,创建新Servlet的条件等。 实际上,我主页上的实体很少,而与每个实体相对应,我们几乎没有添加,编辑和删除等选项。之前,我为每个选项使用一个Servlet,例如Servlet1用于添加实体1,Servlet2用于编辑实体1,依此类推,这样我

  • Windows 64 日食霓虹灯。1. 马文3 java 1.8和java 1.7都已安装 JAVA_HOME点在1.8 jdk PATH=%PATH%;%JAVA_HOME%/bin/ 需要什么吗? 我知道这通常是因为: 项目由Java1.8编译,但由Java1.7(或更低版本)执行。 但是我检查了我的日蚀, Java编译器: 运行配置: 所以你看,我用1.7编译了这个项目,并用1.7运行它。。