Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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

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
javaweb应用程序中的多数据库连接_Java_Mysql_Spring_Hibernate_Multiple Databases - Fatal编程技术网

javaweb应用程序中的多数据库连接

javaweb应用程序中的多数据库连接,java,mysql,spring,hibernate,multiple-databases,Java,Mysql,Spring,Hibernate,Multiple Databases,我想设计一个web应用程序(使用java、spring、hibernate和mySQL)。数据量非常大。因此,对于每个客户机,我希望在同一服务器或不同节点上创建单独的数据库。 我用java、spring、hibernate和mySQL尝试了这个方法。但JVM占用大量内存,有时会引发“堆外空间”异常 是否有更好的方法使用上述堆栈管理多个DB连接?如果使用tomcat,只需创建一个名为JAVA_OPTS的环境变量并指定堆的最小(Xms)和最大(Xmx)大小,就可以增加堆空间:例如JAVA_OPTS=

我想设计一个web应用程序(使用java、spring、hibernate和mySQL)。数据量非常大。因此,对于每个客户机,我希望在同一服务器或不同节点上创建单独的数据库。 我用java、spring、hibernate和mySQL尝试了这个方法。但JVM占用大量内存,有时会引发“堆外空间”异常


是否有更好的方法使用上述堆栈管理多个DB连接?

如果使用tomcat,只需创建一个名为JAVA_OPTS的环境变量并指定堆的最小(Xms)和最大(Xmx)大小,就可以增加堆空间:例如JAVA_OPTS=“-Xms128m-Xmx512m-XX:MaxPermSize=512m”(注意:Xms和大小之间没有空格)

您应该使用应用程序服务器提供的连接池,这样它们将帮助您更好地管理数据库连接。

我已经设置了-Xms780m-Xmx1024m-XX:MaxNewSize=780m-XX:MaxPermSize=512m-XX:surviorRatio=8-XX:codeCacheMimumFreeSpace=16m。我想要在s中实现多个数据库连接的正确方法Spring和hibernate+mySQL。@AnantNavagale您可能需要将其设置得更高,以使用系统的大部分内存。根据我的经验,最好使用超过1024mb的64位java,否则可能会出现漏洞?请小心-XX:MaxPermSize,可能还有MaxNewSize,因为它们是从堆中分割出来的。因此,780和512是ta将大块从Xmx1025中移出。我有一个进程,即使我已将其最大化,它的堆也会不断用完,问题是我也已将MaxPermSize最大化,并将MaxPerm降低到约192修复了该问题。尝试使用jvisualvm查看该进程的内存使用情况。我发现它非常有用。我使用了DBCP connec正如apache站点上建议的那样,我只是想知道在spring和hibernate+MySQL中实现多个DB连接的正确方法。您需要添加更多的细节。比如您尝试了什么,它已经消耗了多少内存?什么servlet容器?执行jstack转储和jvisualvm,然后返回报告。