반응형
" 2021-08-10 작성된 글입니다."
SAP NetWeaver AS JAVA의 PO/PI 환경에서 ‘스레드(Thread)’가 어떤 역할을 하는지 궁금하셨나요?
이 글은 SAP PO에서 스레드의 개념, 종류, 설정 방법까지 쉽게 정리한 초보자용 가이드입니다.
📚 목차
- SAP NetWeaver의 스레드란 무엇인가요?
- SAP PO에서 스레드가 중요한 이유
- SAP 스레드 관리자 구성 살펴보기
- 비동기 메시지 백로그와 스레드 설정 팁
- 스레드 병목 현상 해결을 위한 세부 설정
- 전체 메시지 처리 플로우 요약
- 마무리 요약 및 참고자료
1. SAP NetWeaver의 스레드란 무엇인가요?
스레드(Thread)란 프로그램 내부에서 동시에 실행될 수 있는 실행 흐름 단위입니다.
SAP NetWeaver Java에서는 각 기능별로 스레드를 할당해 병렬처리를 가능하게 만듭니다.
- 기본적으로 하나의 프로세스 안에 여러 스레드가 실행되는 구조 (멀티스레드)
- SAP에서는 어댑터, 메시지 큐, 이벤트 처리 등 다양한 백엔드 작업에 사용
2. SAP PO에서 스레드가 중요한 이유
SAP PO(POROcess Orchestration)에서는 JDBC, SOAP, FILE 등 다양한 Sender/Receiver Adapter가 메시지를 송수신합니다.
이때, 스레드 수가 부족하면 다음과 같은 현상이 발생할 수 있어요.
- To Be Delivered, Delivering 상태로 메시지가 대기
- 시스템 병목 발생 → 전체 성능 저하
➡️ 따라서 적절한 스레드 수 설정은 메시지 처리 속도와 안정성에 핵심 역할을 합니다.
3. SAP 스레드 관리자 구성 살펴보기
SAP NetWeaver AS JAVA의 스레드는 크게 두 종류로 구분됩니다.
✅ 시스템 스레드 관리자 (Thread Manager)
- 디스패쳐, 내부 클러스터 통신, 이벤트 처리, 로그 백업 등 시스템 전반을 관리
- 백엔드 작업용으로 SAP Management Console(MC), NWA에서 상태 확인 가능
✅ 어플리케이션 스레드 관리자 (Application Thread Manager)
- 사용자 요청(HTTP, SOAP, REST 등)을 처리
- 어댑터 엔진에서 발생하는 애플리케이션 로직 담당
4. 비동기 메시지 백로그와 스레드 설정 팁
비동기 메시지를 많이 처리할수록 시스템은 스레드를 효율적으로 분배해야 합니다.
🌟 대표적인 스레드 관련 문제
- 특정 인터페이스에 스레드가 몰려 다른 인터페이스가 대기
- 메시지 백로그 증가 → 업무 지연
5. 스레드 병목 현상 해결을 위한 세부 설정
다음은 SAP PO 환경에서 직접 사용할 수 있는 스레드 설정 팁입니다.
🔧 클러스터 노드 수 늘리기
- 클러스터 노드 수 = 병렬로 메시지를 처리할 수 있는 유닛
- 노드 수가 늘어나면 스레드도 자동 증가 → 백로그 해소 가능
🔧 messaging.connectionDefinition
- 위치: NWA > Configuration > Java Service Properties > XPI Service: AF Core
- 대기열 수를 늘리면 메시지 분산 처리 가능
(예: 노드 2개 × 대기열 20개 = 40개 스레드 확보)
※ 변경 후 J2EE 재시작 필요 → 운영 중에는 PM 시간에 적용 권장
🔧 messaging.system.queueParallelism.perInterface
- 특정 인터페이스에 스레드 점유 방지
- 설정 예:
-
ini복사편집system.queueParallelism.perInterface=true system.queueParallelism.maxReceivers=10
🔧 PI Receiver Parallelism & Message Prioritization
- Receiver Parallelism: 수신자 별로 병렬처리 제한 설정
- MessagePrioritization: 우선순위 높은 메시지에 자원을 더 많이 할당
6. 전체 메시지 처리 플로우 요약
- Sender Adapter가 메시지 수신
- 스레드가 메시지를 디스패쳐 큐로 전달
- 설정에 따라 병렬/직렬 처리 여부 결정
- Integration Flow 설정 반영 (Receiver Determination 등)
- 매핑, 라우팅 처리 후 수신처로 전송
7. 마무리 요약 및 참고자료
SAP PO에서의 스레드 구성과 설정은 복잡해 보일 수 있지만,
중요한 건 적절한 병렬 처리 구조와 자원 분배입니다.
스레드 수를 조정하는 것만으로도 메시지 병목 문제를 해결할 수 있어요.
운영 시스템에서는 꼭 테스트 후 적용해보세요!
📎 참고 문서:
- SAP Note: 1625458 - Thread usage check in Java AS
- SAP PO Async Processing Guide
- Java Service Properties 공식 매뉴얼
반응형
'PI_PO' 카테고리의 다른 글
SAP PI/PO 에러와 구성 팁 정리: 초보자를 위한 실무 가이드 (0) | 2025.04.28 |
---|---|
SAP PI/PO REST Adapter 오류 해결: Invalid white space character(0xb) 오류 원인과 해결법 (0) | 2025.04.27 |
SAP ICM 사이즈 제한 설정 방법 (icm/HTTP/max_request_size_KB) 및 SAP PO 대용량 메시지 처리 팁 (0) | 2025.04.23 |
[SAP PO 7.5] Alert 구성 방법 가이드 (Java Stack 기준) (0) | 2025.04.18 |
SAP PO 로그보관주기 설정 방법 (messaging.log.retainTime, persistDuration.default) 완벽 정리 (0) | 2025.04.17 |