Перенос приложения в WebSphere v8 из v6 и начал получать утечки памяти. Первичный подозреваемый - org.apache.axis2. Похоже, каждый раз, когда приложение вызывает веб-службу, объект, называемый ServiceClient, создается WAS8 и хранится в том, что называется ClientConfigurationContextStore, а затем никогда не собирает мусор. У кого-то была аналогичная проблема?Утечки памяти IBM WebSphere 8 с веб-службами Axis2
ответ
Исправлена ошибка, заставляя исходную ось 1.4 поставляться с реализованной реализацией мыла. Это было сделано путем размещения двух файлов в WEB-INF/сервисах приложения. Первый файл называется 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. Больше нет утечек памяти.
Если у вас нет проблемы с WebSphere v6, возможно, это утечка в самом v8. Но также возможно, что v8 является более строгим в отношении того, что v6 позволяло вам уйти.
Вы проверили, что вы повторно используете все клиентские объекты Axis2, которые вы можете использовать, а не воссоздавать их для каждого вызова, который вам не нужен, чтобы воссоздать? Я помню, что у нас была некоторая утечка в клиентском коде Axis2 под WAS v6.1 и осознание того, что мы воссоздавали объекты, которые мы могли бы повторно использовать.
В одном из наших проектов мы использовали Axis2 1.6.2 в качестве сервисного клиента. Сервер приложений был WebSphere 7, а в тестовой среде время от времени он терял память. Когда я изучил кучу кучи, в классе AxisConfiguration было много экземпляров класса AxisService. Я создавал ServiceClient для каждого запроса, и я видел, что иногда сбор мусора работал поздно, чтобы завершить этот объект. Таким образом, мы использовали SingleClick ServiceClient и решили нашу проблему.
- 1. Большие EJB и утечки памяти в Websphere
- 2. Из памяти в IBM Websphere 8.5.5.7
- 3. import .car файл в IBM WebSphere 8
- 4. Проблема развертывания webservice Axis2 с Websphere 8.5.5
- 5. Axis2 - Информационная защита от утечки
- 6. mod_deflate с IBM WebSphere и IBM IHS
- 7. WebSphere Email Adapter 6.1.x (любые известные утечки памяти)
- 8. Java 2 Безопасность с Axis2 1.4 в Websphere 7
- 9. Утечки памяти с strtok
- 10. NSUserDefaults initWithSuiteName утечки памяти в iOS 8?
- 11. Какая версия AXIS2 поставляется с Websphere 8.5.5.2?
- 12. VisualVM выборки памяти: Не доступно с WebSphere
- 13. ConnectionWaitTimeoutException в IBM Websphere
- 14. Платежеспособность IBM Websphere
- 15. Ошибка подключения IBM Websphere
- 16. IBM Websphere OutOfMemoryException
- 17. ibm webSphere Portal Персонализация
- 18. Сделки в IBM WebSphere
- 19. IBM Websphere Datapower Xi52
- 20. IBM WebSphere Commerce Promotions
- 21. Почему IBM Websphere DataPower?
- 22. IBM Websphere BPM/Lombardi
- 23. XI52 IBM Websphere DataPower
- 24. Утечки памяти с NSXMLParser
- 25. утечки памяти с функцией
- 26. Утечки памяти с классами
- 27. утечки памяти с NSDateFormatter
- 28. Интеграция IBM Connections и IBM Websphere Portal
- 29. ICEFaces 1.8.2 и IBM WebSphere Application Server 8?
- 30. Потребление IBM websphere Приложение MQ V.8 in .net
Предположительно, вы используете Axis в качестве внешней библиотеки? Рассматривали ли вы использование встроенной поддержки веб-сервисов WAS, например JAX-WS? Его реализация построена на Axis, но предположительно будет более предсказуемой (и поддерживаемой). – dbreaux
Да, приложение использует Axis. Но это чудовищное наследие, написанное/измененное/исправленное за последние 10 лет с тоннами бизнес-логики по всему коду. Поэтому я бы предпочел не менять код, а настраивать среду. –