2014-11-19 4 views
0

Мне нужно знать, как гарантировать, что контейнер закрывает EMF (используя wildfly 8.0 и hibernate-jpa).Контейнер Weld и EntityManagerFactory Управляемый

Каждый раз, когда я удаляю свое приложение, экземпляр WeldJpaInjectionServices $ EntityManagerResourceReferenceFactory остается в памяти, содержащей экземпляр EMF.

Это вызывает исключение OOM после некоторых развертываний/развертываний.

Я не использую ссылки EMF в своем коде, только EntityManager с @Produces и @PersistenceContext аннотацией.

Это происходит на wildfly 8.0, 8.1 и 9.0alpha, с Java 7 и 8.

+1

Скорее всего, это либо ошибка в Wildfly (проверьте базу данных ошибок), или у вас есть утечка памяти в коде, который предотвращает EM, чтобы освободить память (это труднее исследовать) –

+0

я не делаю есть эта проблема w/WF8.1. Закрываете ли вы менеджера объекта с помощью метода удаления? –

ответ

1

течи связано с поддержания активности и чтения тайм-аута свойства Undertow.

В новой версии Wildfly (8.2) мы можем определить эти свойства:

<subsystem xmlns="urn:jboss:domain:undertow:1.2"> 
      <buffer-cache name="default"/> 
      <server name="default-server"> 
       <http-listener name="default" socket-binding="http" tcp-keep-alive="true" read-timeout="30000"/> 

после завершения установки не больше утечек по развертывания/свёртывании.

ВОПРОС: WFLY-3536 - Wildfly 8.1.0 Final keeps established connections forever

Смежные вопросы