PI_PO

SAP NetWeaver Java(PO, PI) 스레드 구조: 초보자도 이해하는 메시징 최적화 가이드

피오농부 2025. 4. 26. 06:29
반응형

" 2021-08-10  작성된 글입니다."

 

SAP NetWeaver AS JAVA의 PO/PI 환경에서 ‘스레드(Thread)’가 어떤 역할을 하는지 궁금하셨나요?
이 글은 SAP PO에서 스레드의 개념, 종류, 설정 방법까지 쉽게 정리한 초보자용 가이드입니다.


📚 목차

  1. SAP NetWeaver의 스레드란 무엇인가요?
  2. SAP PO에서 스레드가 중요한 이유
  3. SAP 스레드 관리자 구성 살펴보기
  4. 비동기 메시지 백로그와 스레드 설정 팁
  5. 스레드 병목 현상 해결을 위한 세부 설정
  6. 전체 메시지 처리 플로우 요약
  7. 마무리 요약 및 참고자료

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. 전체 메시지 처리 플로우 요약

  1. Sender Adapter가 메시지 수신
  2. 스레드가 메시지를 디스패쳐 큐로 전달
  3. 설정에 따라 병렬/직렬 처리 여부 결정
  4. Integration Flow 설정 반영 (Receiver Determination 등)
  5. 매핑, 라우팅 처리 후 수신처로 전송

7. 마무리 요약 및 참고자료

SAP PO에서의 스레드 구성과 설정은 복잡해 보일 수 있지만,
중요한 건 적절한 병렬 처리 구조와 자원 분배입니다.

스레드 수를 조정하는 것만으로도 메시지 병목 문제를 해결할 수 있어요.
운영 시스템에서는 꼭 테스트 후 적용해보세요!

📎 참고 문서:

반응형