Утечки памяти в IBM WebSphere 8 с помощью веб-служб Axis2 - PullRequest
1 голос
/ 20 марта 2012

Мигрировал приложение в WebSphere v8 из v6 и начал получать утечки памяти. Основной подозреваемый - org.apache.axis2. Похоже, что каждый раз, когда приложение вызывает веб-сервис, WAS8 создает объект с именем ServiceClient и сохраняет его в чем-то, называемом ClientConfigurationContextStore, а затем никогда не собирает мусор. У кого-нибудь была похожая проблема?

Ответы [ 3 ]

1 голос
/ 21 марта 2012

Исправлена ​​проблема с принудительным использованием исходной оси 1.4 над поставляемой реализацией мыла.Это было сделано путем размещения двух файлов в WEB-INF / services приложения.Первый файл называется javax.xml.soap.MessageFactory и содержит 'org.apache.axis.soap.MessageFactoryImpl', а второй называется javax.xml.soap.SOAPConnectionFactory и содержит org.apache.axis.soap.SOAPConnectionFactoryImpl.Итак, теперь в коде это: javax.xml.soap.SOAPConnectionFactory.newInstance () возвращает материал org.apache.axis, пока он не возвращал материал com.ibm.ws.webservices.Нет утечек памяти.

0 голосов
/ 15 декабря 2012

В одном из наших проектов мы использовали Axis2 1.6.2 в качестве сервисного клиента.Сервер приложений был WebSphere 7, и в тестовой среде время от времени ему не хватало памяти.Когда я исследовал дамп кучи, в классе AxisConfiguration было много экземпляров класса AxisService.Я создавал экземпляр ServiceClient для каждого запроса и видел, что иногда сборка мусора работала поздно, чтобы завершить этот объект.Поэтому мы использовали синглтон ServiceClient, и это решило нашу проблему.

0 голосов
/ 20 марта 2012

Если у вас нет проблемы в WebSphere v6, возможно, это утечка в самой v8. Но также возможно, что v8 более строго относится к тому, что v6 позволяло вам сойти с рук.

Проверяли ли вы, что повторно используете все клиентские объекты Axis2, а не воссоздаете их при каждом вызове, который вам не требуется воссоздавать? Я вспоминаю, как у нас произошла утечка в клиентском коде Axis2 под WAS v6.1 и мы осознали, что мы воссоздали объекты, которые мы могли бы использовать повторно.

...