【发布时间】:2014-11-06 12:04:12
【问题描述】:
我正在尝试从正在运行的数据库迁移插件中获取 dbm-gorm-diff 命令。但是,我总是遇到java.lang.OutOfMemoryError: PermGen space
我已经尝试更改 JVM 的配置。这是我目前的配置:
GGTS.ini
-vm
C:/Program Files/Java/jdk1.8.0_20/bin/javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140116-2212
-product
org.springsource.ggts.ide
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-vmargs
-Dgrails.console.enable.interactive=false
-Dgrails.console.enable.terminal=false
-Djline.terminal=jline.UnsupportedTerminal
-Dgrails.console.class=grails.build.logging.GrailsEclipseConsole
-Dosgi.requiredJavaVersion=1.6
-Xms512m
-Xmx1024m
-XX:PermSize=1024m
-XX:MaxPermSize=2G
-Dorg.eclipse.swt.browser.IEVersion=10001
BuildConfig.groovy:
grails.project.fork = [
// configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
// compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
// configure settings for the test-app JVM, uses the daemon by default
test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 1024, daemon:true],
// configure settings for the run-app JVM
run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 1024, forkReserve:false],
// configure settings for the run-war JVM
war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 1024, forkReserve:false],
// configure settings for the Console UI JVM
console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 1024]
]
我不知道我是否错过了配置文件或某个要设置的属性。也许你对我有什么建议?
我目前正在使用 jdk1.7.0_67、ggts 3.6.1 和 grails 2.4.2
--- 编辑 ---
也许堆栈跟踪也有帮助:
Loading Grails 2.4.2
|Configuring classpath
.
|Environment set to development
...........................................
............
.
Configuring Spring Security Core ...
... finished configuring Spring Security Core
Configuring Spring Security UI ...
... finished configuring Spring Security UI
Configuring Spring Security Core ...
... finished configuring Spring Security Core
Configuring Spring Security UI ...
... finished configuring Spring Security UI
.
|Starting dbm-gorm-diff
Error |
java.lang.OutOfMemoryError: PermGen space
Error |
at com.sun.org.apache.xalan.internal.xsltc.runtime.output.TransletOutputHandlerFactory.getSerializationHandler(TransletOutputHandlerFactory.java:165)
Error |
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutputHandler(TransformerImpl.java:454)
Error |
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:344)
Error |
at liquibase.util.xml.DefaultXmlWriter.write(DefaultXmlWriter.java:32)
Error |
at liquibase.serializer.core.xml.XMLChangeLogSerializer.write(XMLChangeLogSerializer.java:106)
Error |
at grails.plugin.databasemigration.MySQLCompatibleChangeLogSerializer.super$2$write(MySQLCompatibleChangeLogSerializer.groovy)
Error |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Error |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
Error |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Error |
at java.lang.reflect.Method.invoke(Method.java:606)
Error |
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
Error |
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
Error |
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1085)
Error |
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
Error |
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:128)
Error |
at grails.plugin.databasemigration.MySQLCompatibleChangeLogSerializer.write(MySQLCompatibleChangeLogSerializer.groovy:32)
Error |
at liquibase.diff.DiffResult.printChangeLog(DiffResult.java:507)
Error |
at liquibase.diff.DiffResult$printChangeLog$1.call(Unknown Source)
Error |
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
Error |
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
Error |
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
Error |
at grails.plugin.databasemigration.ScriptUtils.createAndPrintFixedDiff(ScriptUtils.groovy:245)
Error |
at grails.plugin.databasemigration.ScriptUtils$createAndPrintFixedDiff$1.call(Unknown Source)
Error |
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
Error |
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
Error |
at DbmGormDiff$_run_closure1_closure2_closure3.doCall(DbmGormDiff:53)
Error |
at DbmGormDiff$_run_closure1_closure2_closure3.doCall(DbmGormDiff)
Error |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Error |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
Error |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Error |
at java.lang.reflect.Method.invoke(Method.java:606)
Error |
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:207)
【问题讨论】:
标签: java grails database-migration permgen