Работая с CF2016, я встречал эту ошибку в среде разработки, а также в производственной среде, но реже.
Metaspace null. The error ocurred on line -1.
Читая некоторые форумы, вы поняли идею сборщика мусора и сумели реализовать этот код, чтобы заставить сборщик:
<cfset runtime = CreateObject("java","java.lang.Runtime").getRuntime()>
<cfset freeMemory = runtime.freeMemory() / 1024 / 1024>
<cfset totalMemory = runtime.totalMemory() / 1024 / 1024>
<cfset maxMemory = runtime.maxMemory() / 1024 / 1024>
<cfset usedMemory = (runtime.totalMemory() - runtime.freeMemory()) / 1024 / 1024>
<cfoutput>
Used Memory: #Round(usedMemory)#mb<br>
Free Allocated Memory: #Round(freeMemory)#mb<br>
Total Memory Allocated: #Round(totalMemory)#mb<br>
Max Memory Available to JVM: #Round(maxMemory)#mb<br>
</cfoutput>
<cfset clear = runtime.gc()>
Любопытно, что в оперативной памяти много места (обычно половина места свободна), но Metaspace Null
все еще появляется.
Другим подходом могут быть загруженные классы, возможно, они не уничтожаются автоматически. Но я не могу найти способ увидеть загруженные.
Пока «решение» состоит в том, чтобы перезапустить сервер, чтобы я мог нормально работать. Мне удалось уменьшить частоту возникновения ошибки, увеличив максимальный размер кучи JVM до 1024 МБ, но все еще возникающей
И трассировка стека... трудно добраться до строки -1 в файле-призраке! хD
Версия Java: 1.8.0_112
Сборщик мусора: -XX:+UseParallelGC (по умолчанию)
Аргументы для VM (переходы между строками для удобства чтения)
java.args=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5006 -server
-Xms256m
-Xmx1024m
-XX:MaxMetaspaceSize=192m
-XX:+UseParallelGC
-Xbatch
-Dcoldfusion.home={application.home}
-Djava.awt.headless=true
-Duser.language=en
-Dcoldfusion.rootDir={application.home}
-Djava.security.policy={application.home}/lib/coldfusion.policy
-Djava.security.auth.policy={application.home}/lib/neo_jaas.policy
-Dcoldfusion.classPath={application.home}/lib/updates,{application.home}/lib,{application.home}/lib/axis2,{application.home}/gateway/lib/,{application.home}/wwwroot/WEB-INF/cfform/jars,{application.home}/wwwroot/WEB-INF/flex/jars,{application.home}/lib/oosdk/lib,{application.home}/lib/oosdk/classes
-Dcoldfusion.libPath={application.home}/lib
-Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true
-Dcoldfusion.jsafe.defaultalgo=FIPS186Random
-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.JavaUtilLog
-Djava.util.logging.config.file={application.home}/lib/logging.properties