0

我使用以下代码使用 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 个用户时有效地使用数据库连接。处理这种情况的最佳方法是什么。

4

2 回答 2

0

您的休眠配置看起来是正确的,我认为是数据库导致了这些问题。

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

  • MySQL 内存不足
  • MySQL 消耗过多 CPU 资源,被内核杀死
  • MySQL 运行的分区上没有可用的磁盘空间
于 2013-05-11T12:24:50.577 回答
0

哎哟。构建一个测试服务器,运行一个负载测试器(JMeter 可以)并复制问题——这样您就可以看到正在发生的事情,而没有真正的数据处于危险之中。

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

一旦可以复制问题,请尝试更改 JDBC 驱动程序和数据库版本以及相关组件。但是请确保您的更改能够解决问题,首先要重新创建它。

这可能是症状的另一件事,是硬盘驱动器开始出现故障。如果不仅您的数据被损坏,而且您还必须重新安装软件.. 不常见,但要小心。


为什么重新启动/或(如有必要)重新安装 MySQL,没有将您的数据保留在数据库文件中?

于 2013-05-11T12:04:07.063 回答