JAX-WS web service 를 사용하는 중(특히 dynamic port)에 OutOfMemory Exception 발생
1. WAS 버전 : WAS v8.0 이상
2. OS : All
3. Error 발생 시점 : JAX-WS web service 를 사용하는 중(특히 dynamic port)에 OutOfMemory Exception 발생
4. Error message :
Dump Event "systhrow" (00040000) Detail "java/lang/OutOfMemoryError"
분석을 해보면 org/apache/axis2/jaxws/description/impl/ServiceDescriptionImpl 가 많이 점유하고 있음
5. 예상 이유 : IBM WAS v8.0 이후부터 제품 디자인이 변경되어 JAX-WS dynamic ports 를 사용했을 경우에 기존 공유 방식 대비 더 많은 메모리를 소모하는 형태로 변경되어서 발생될 수 있음
(JAX-WS client 가같은 이름을 가진 dynamic port 를 참조하는 여러 서비스 인스턴스를 가지고 있을 경우 해당 인스턴스들을 공유하지 않는 형태로 변경)
6. 조치 방안 : Heap 메모리를 더 많이 부여하거나 하단과 같은 JVM 옵션을 사용해서 메모리 사용을 제어
jaxws.share.dynamic.ports.enable = true
7. 참고 자료
After migrating WebSphere Application Server from V6.1 to V8.0, JAX-WS application started getting Java OutOfMemoryError
http://www-01.ibm.com/support/docview.wss?uid=swg21634776
Maximo on WebSphere 8.0.x and Websphere 8.5.x runs into Out Of Memory Situation
http://www-01.ibm.com/support/docview.wss?uid=swg21643729