Hibernate + Ehcache обновляет тесты - PullRequest
0 голосов
/ 17 декабря 2010

Мы переходим из спящего режима с 3.2.1 на 3.5.6 и переносим Ehcache 2.3. Кажется, что обновления нарушают наш полный набор тестов (около 10 тыс. Тестов), в какой-то момент мы сталкиваемся с

Caused by: java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:597)
at java.util.Timer.<init>(Timer.java:154)
at net.sf.ehcache.util.FailSafeTimer.<init>(FailSafeTimer.java:52)
at net.sf.ehcache.CacheManager.init(CacheManager.java:334)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:281)
at org.hibernate.cache.EhCacheProvider.start(EhCacheProvider.java:131)
at org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge.start(RegionFactoryCacheProviderBridge.java:72)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:250)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:814)

Есть что-нибудь очевидное, что я здесь скучаю? Я думал, что Hiberante будет обрабатывать любые необходимые отключения ehcache, чтобы избавиться от старых потоков?

1 Ответ

0 голосов
/ 17 декабря 2010

Эта ошибка указывает на то, что JVM потребовалось слишком много времени для освобождения памяти во время процесса GC.Эта ошибка может возникать из последовательного, параллельного или параллельного коллектора.Это часто означает, что значение Xmx слишком велико - вы можете подумать о его снижении.

Для более серьезных и постоянных проблем с производительностью, связанных с GC, рекомендуется перейти на параллельный сборщик и обеспечить, чтобы Confluence имел доступ к памяти, требуемой его пользователями.

Параллельныйколлектор сгенерирует ошибку OutOfMemoryError, если на сборку мусора уходит слишком много времени: если на сборку мусора уходит более 98% общего времени и восстанавливается менее 2% кучи, генерируется ошибка OutOfMemoryError.Эта функция предназначена для предотвращения запуска приложений в течение длительного периода времени при небольшом прогрессе или его отсутствии, поскольку куча слишком мала.При необходимости эту функцию можно отключить, добавив параметр -XX: -UseGCOverheadLimit в командную строку.

Проверка: http://confluence.atlassian.com/display/DOC/Garbage+Collector+Performance+Issues

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...