Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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 FlyWay未拾取JVM内存设置_Java_Sql Server_Jvm_Flyway_Multiple Databases - Fatal编程技术网

Java FlyWay未拾取JVM内存设置

Java FlyWay未拾取JVM内存设置,java,sql-server,jvm,flyway,multiple-databases,Java,Sql Server,Jvm,Flyway,Multiple Databases,我正在使用Flyway部署到300!!!数据库。我所做的是创建了一个cmd文件,其中包含flyway命令-300个数据库中的每个数据库各有一行 像这样: flyway-configFile=-url=migrate cmd文件中有300行这样的代码,当按顺序执行时,它的效果非常好——显然它也需要更多的时间 如果我想并行运行,我必须在命令开头添加“start”,如下所示: 启动flyway-configFile=-url=migrate 这种方法面临的问题是,在迁移到大约100 DB之后,Micr

我正在使用Flyway部署到300!!!数据库。我所做的是创建了一个cmd文件,其中包含flyway命令-300个数据库中的每个数据库各有一行

像这样:
flyway-configFile=-url=migrate

cmd文件中有300行这样的代码,当按顺序执行时,它的效果非常好——显然它也需要更多的时间

如果我想并行运行,我必须在命令开头添加“start”,如下所示:

启动flyway-configFile=-url=migrate

这种方法面临的问题是,在迁移到大约100 DB之后,Microsoft Windows资源耗尽检测器检测到虚拟内存不足的情况。现在我知道了如何设置JVM内存,并尝试了各种选项,但我认为这根本没有任何区别。我认为FlyWay完全忽略了JVM设置

我在执行Flyway的Windows服务器上有16GB的物理内存(6位)。 当并行运行发生时,我已经在任务管理器中进行了检查,并且使用率没有超过3 GB。 JRE版本是64位的。 我设置了Java选项。 我还尝试在Java控制面板中设置JVM内存,但似乎没有任何效果


谢谢

您需要限制并行运行的迁移次数。根据您的描述,您似乎正在尝试运行300,因为它使用了太多的RAM。尝试10次并行,然后从那里开始工作


有关基于linux的方法,请参见此问题。使用git bash安装git for windows是让linux工具尝试此操作的一种方便方法。

在FlyWay安装中有一个文件:\jre\lib\amd64\jvm.cfg。在该文件中,我添加了以下内容:-Xms64m-Xmx64m-Xss8m-XX:-UseParallelGC。现在我有30个线程并行运行,在开始执行之前有9GB的可用内存。我做错了什么?20个线程成功。对于剩下的10个,我得到了这个错误:在VM的初始化过程中发生错误,无法为对象堆保留足够的空间。从这里不确定抱歉。也许20是你的平行利率上限。