MySQL Server终止并且hibernate数据库连接没有关闭

时间:2013-05-11 11:55:25

标签: java mysql hibernate database-connection

我使用以下代码使用Hibernate配置文件创建数据库连接。

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">xxx</property>
<property name="connection.password">xxx</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.jdbc.batch_size">50</property>
<property name="show_sql">true</property>


<!-- C3PO Connection pool setting -->
<property name="hibernate.c3p0.min_size">3</property> 
<property name="hibernate.c3p0.max_size">100</property> 
<property name="hibernate.c3p0.timeout">5000</property>  
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.acquire_increment">3</property>
<property name="hibernate.c3p0.validate">true</property>
<property name="hibernate.c3p0.idle_test_period">900</property> -->
<!-- Connection pool setting -->

似乎连接成功打开和关闭。如果10个用户同时访问该网站我的网站登录页面在5或10分钟后长时间旋转服务器下降。此外,我无法重启mysql服务器,它说进程意外终止。然后我必须再次安装mysql服务器。这发生在我的生产服务器中。我为这个问题丢失了很多真实的数据。

请一次有人建议我有效使用数据库连接,同时访问10000个用户。处理这种情况的最佳方法是什么。

2 个答案:

答案 0 :(得分:0)

哎哟。构建一个测试服务器,运行一个负载测试器(JMeter就可以了)并复制问题 - 这样你就可以看到发生了什么,没有真正的数据存在风险。

目前您没有足够的信息来识别问题。

一旦您可以复制问题,请尝试更改JDBC驱动程序&amp;数据库版本和相关组件。但请确保您的更改将通过首先重新创建来解决问题。

另一件事可能是硬盘驱动器开始失败。如果不仅您的数据被损坏,而且您还必须重新安装软件..不常见,但要注意。


为什么重新启动/或(如果需要)重新安装MySQL,而不是将数据保留在数据库文件中?

答案 1 :(得分:0)

你的hibernate配置看起来是正确的,我认为这是导致这些问题的数据库。

无论遇到什么问题,它都不应该终止,因此它看起来像操作系统问题,例如:

  • MySQL内存不足
  • MySQL消耗过多的CPU能力并被内核杀死
  • MySQL运行的分区上没有可用的磁盘空间