![[z/OS]](../images/ngzos.gif)
SOAP 성능 조정
웹 서비스와 함께 사용하는 soap 메시지를 조정하는 방법에 대해 학습합니다.
이 태스크 정보
프로시저
- servant.jvm.options (-Dcom.ibm.CORBA.iiop.noLocalCopies=1)에 noLocalCopies를 지정하십시오. 그러면 값 대신 참조로 매개변수를 전달할 수 있습니다. 이는 엔터프라이즈 Bean을 웹 서비스로 노출하는 경우에만 적용됩니다. 자세한 내용은 오브젝트 요청 브로커 서비스 설정 정보를 참조하십시오.
- 문제점을 활발히 디버그하는 중이 아니면 모든 추적을 사용 불가능하게 하십시오.
- 애플리케이션에 대해 트랜잭션 정책을 정의할 때 TX_NOT_SUPPORTED를 지정하고 로컬 트랜잭션을 선택하십시오. 로컬 트랜잭션은 글로벌 트랜잭션보다 수행 능력이 더 뛰어납니다. 여러 자원 관리자에서 커미트 범위를 조정하기 위한 WebSphere®가 필요하지 않기 때문입니다.
- SOAP 메시지에서 빈 속성이나 빈 요소는 전달하지 않도록 하십시오. SOAP 메시지에 불필요한 여분의 데이터는 포함시키지 마십시오. 문서/리터럴 양식의 웹 서비스 호출을 사용하여 요청을 단일 SOAP 메시지로 일괄처리할 수 있으면 복수의 개별 SOAP 메시지를 전송하는 것이 좋습니다. SOAP 애플리케이션은 XML 요소가 적게 포함된(특히 XML 속성이 적게 포함된) 적은 SOAP 메시지에 대해 수행 능력이 더 뛰어납니다. SOAP 메시지의 내용은 직렬화되고 구문 분석되어야 합니다. 이는 소모성 있는 조작이므로 최소화해야 합니다. 즉, 10개의 1KB 메시지보다 하나의 10KB 메시지를 전송하는 것이 좋습니다. 그러나 메시지가 너무 크면(예: 200KB 이상) 메모리와 같은 시스템 자원에 영향을 줄 수 있습니다.
- 기본 Java™ 힙 크기를 늘려야 할 수도 있습니다. SOAP 및 XML(DOM)은 기억장치를 집중적으로 사용하므로 힙 크기가 작으면 Java 가비지 콜렉션 초과가 발생할 수 있습니다. 연구실에서 실시한 대부분의 테스트에서 256M 힙 크기(기본값)가 최적인 것을 알았습니다. Java 지시문 verbose:gc를 사용하여 가비지 콜렉션을 모니터할 수 있습니다.
- TCP/IP 전송/수신 버퍼가 전송될 대량의 xml 메시지를 보유하기에 충분히 크도록 하십시오.
- RPC 모델이 아닌 다른 문서 모델을 사용할 것을 고려하십시오. 이 모델은 XML 형식을 통한 완전한 제어를 제공하지만 추가 프로그래밍 노력이 필요합니다.
- RPC 스타일 메시지를 사용할 때, 가능하면 문자열을 전송하도록 하십시오.
- JAX-RPC(Java API for XML-based RPC) 웹 서비스의 경우에만 리플렉션을 피하기 위해 직렬 변환기 및 직병렬 변환기를 작성할 것을 고려하십시오.