2022년 12월 29일 목요일

SAP ICM 사이즈 제한 설정(max_request_size_KB)

SAP시스템 → PO전송될때 호출되는 SAP시스템 내부의 ICM(Internet Communications Manager) 사이즈설정으로 PO에 대용량 사이즈를 방지하는 내용에 대해 정리하였습니다. SAP시스템과 연계하는 인터페이스 마다 PO에서 권장하는 사이즈를 담당자별로 가이드 하기보다 차라리 시스템에서 공통으로 사이즈 제한을 설정하는것도 좋은 방법이라고 생각이 됩니다.

SAP ICM 사이즈제한 파라메터 확인방법

SAP GUI에서 SMICM 티코드를 실행 후에 Goto > Parameters를 실행하면
많은 ICM관련 파라메터를 볼수 있습니다. 이중에
icm/HTTP/max_request_size_KB 파라메터는 DoS(Denial-Of-Service aattack) 서비스 거부공격? 을 방지하기 위한 것이라고 보이며 ICM통해 들어오는 HTTP요청 크기가 설정한 최대크기(KB)를 초과하는 경우 ICM에 거부된다고 하는데 초과되는 사이즈도 PO에 전송이 될때도 있고 에러가 발생된것 본것 같은데 확실치는 않습니다.

사이즈 제한 설정은 HTTP외 프로토콜(P4,IIOP 등)도 설정이 가능하며 HTTP최대 설정은 100MB이고 -1값으로 설정하게 되면 사이즈 체크를 비활성화되는걸로 보입니다.

ICM 파라메터 변경하는 방법

SMICM에서 파라메터를 확인하는 방법외에도 RZ11티코드에서도 해당 파라메터명으로 검색하여 확인이 가능하고 값을 수정이 가능한걸로 보입니다.

icm/HTTP/max_request_size_KB 파라메터를 적용 후에 주의가 필요한 부분이 있는데 설정된 사이즈를 초과되면 에러가 발생되며 비동기인 경우 SMQ2의 큐 메시징을 정체시키는 원인이 될수 있으며 ERP가 타겟인 경우 리턴되는 데이터에 대해서는 사이즈체크가 안되는것도 보았습니다.

SAP PO의 사이즈제한 설정


PO내의 메시징처리 시 대용량 사이즈의 데이터를 동시에 많이 처리되는경우 힙 메모리 부족으로 인한 OOM에러도 발생되는것도 보았으며 이런 데이터 유입을 막거나 유연한 처리를 위한 다양한 파라메터 추가와 값 변경이 필요할수도 있을것 같습니다.

PO의 대용량 메시지 관련 기능을 활성화하는 방법은
NWA > Configuration > Infrastructure > Java System Properties 메뉴에서 'XPI Service: Messaging System'을 검색 후 'largemessage'로 검색되는 프로퍼티들을 확인 하고 현 대용량 메시지처리에 맞게 수정이 가능한걸로 보입니다.

각 각의 프로퍼티 설명으로는
messaging.largemessage.blacklistXLMessage
예를 들었을때 블랙리스트가 활성화 되고 임계값(threshold)이 10MB, 허용개수(permits)가 10개로 설정이 된 상태에서 만약 150MB 메시지가 전송이 되었다면 설정된 최대값을 초과하여 블랙리스트처리(NDLV오류상태)가 되는걸로 보입니다.

messaging.largemessage.enabled
PO의 대용량 처리에 대한 기능을 활성화 여부

messaging.largemessage.permits
각 JAVA 서버노드에서 사용가능한 허용개수

messaging.largemessage.queueTypes

messaging.largemessage.threshold
대용량 메시지에 대한 임계값 설정(예: 10240KB = 10MB)

이런 설정을 통해 일시적은 대용량 사이즈에 대한 처리를 할수있겠지만 SAP연계 소스시스템에서 동시다발적으로 많은 메시지가 전송이 된다면 도움이 안될수도 있다고 하며 PO와 연계하는 SAP 소스 시스템에서도 icm/HTTP/max_request_size_KB 이런 파라메터 설정 등을 통해 연계시스템 간에 대용량 처리 및 인터페이스 수행 시 발생되는 메모리 부하를 줄이기 위한 노력은 필요하다고 생각됩니다.

댓글 없음:

댓글 쓰기