Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 MySQL服务器已终止,hibernate数据库连接未关闭_Java_Mysql_Hibernate_Database Connection - Fatal编程技术网

Java MySQL服务器已终止,hibernate数据库连接未关闭

Java MySQL服务器已终止,hibernate数据库连接未关闭,java,mysql,hibernate,database-connection,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> <pr

我使用以下代码使用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 -->
com.mysql.jdbc.Driver
xxx
xxx
org.hibernate.dialogue.mysqldialogue
50
真的
3.
100
5000
50
3.
真的
900 -->
似乎连接正在成功打开和关闭。如果10个用户同时访问我的网站,我的网站登录页面旋转很长时间后5或10分钟服务器就会关机。此外,我无法重新启动mysql服务器,它说进程意外终止。然后我必须再次安装mysql服务器。这在我的生产服务器中发生。我因为这个问题丢失了很多真实的数据


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

哎哟。构建一个测试服务器,运行负载测试仪(JMeter可以)并复制问题——这样您就可以看到发生了什么,而不必担心实际数据的风险

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

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

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



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

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

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

  • MySQL内存不足
  • MySQL消耗了太多的CPU资源,被内核杀死
  • 运行MySQL的分区上没有可用的磁盘空间

是的,我写了一小段代码来检查连接是否关闭。在调试模式下,连接成功关闭。我不知道为什么mysql服务器的生产连接在增加。如果达到150左右,服务器就会停机。我是mysql的新手。实际上,我丢失了真实数据,然后重新安装。如何在不卸载mysql服务器的情况下获取真实数据?请尝试使用JMeter重现该问题。如果不能复制它,你就无法知道你所做的任何改变实际上都会修复它。您只需等待下一次数据中断/丢失事件,并可能遭受其中一些事件的影响。谢谢Adam!根据您的指示,我已在我的服务器中验证了以下内容。Mysql服务器安装在具有5 GB磁盘空间的C驱动器中。而许多访问服务器连接的用户正在逐渐增加。如果其达到160或180以上,连接应用程序开始旋转。如果持续5分钟,系统将启动或重新启动。当连接超过160或180个时,内存使用情况如何?你们的机器有很多可用的虚拟内存吗?如果你在Linux上运行可能会有所帮助。我的系统配置是Windows2008R2,C驱动器内存空间30GB,可用空间5GB(安装在C驱动器中的mysql),RAM 2GB。您认为这种配置足够吗?2GB的MySQL和Java应用程序(应用服务器?Web容器?)可以同时为100到1000多个用户提供服务吗?最多1000个Java线程,1000个数据库连接?我认为它太低了,但由于这不是基于任何测试,就像它应该是,这只是我的猜测。我认为我们正在摆脱原来的问题,我认为这个问题已经得到了回答。