У нас есть веб-приложение Tomcat, которое получает XML-запросы и анализирует их.Полученные запросы имеют разные уникальные пространства имен, и мы столкнулись с проблемой OOM, и приложение перестало отвечать.Наш анализ дампа кучи показал, что SynchronizedsymbolTable, используемая xerces для хранения символов, занимает огромную память, а не сборщик мусора.
Поэтому мы установили свойство org.apache.xerces.xni.parser.XMLParserConfiguration
как
org.apache.xerces.parsers.SoftReferenceSymbolTableConfiguration
и это решило проблему с памятью.
Но нам также нужно установить свойство XMLParserConfiguration
равным org.apache.xerces.parsers.XMLGrammarCachingConfiguration
, чтобы схемы XSD кэшировались, когда мы используем анализатор JAXP для анализа запросов XML.
Есть ли способ в xerces версии 2.11.0 установить оба свойства вместе?
Выдается исключение java.lang.OutOfMemoryError: GC overhead limit exceeded