2023년 5월 17일 수요일

SAP PO의 MaxThreadCount,Message Queue,maxReceivers 스레드에 대한 이해정리

지금까지 스레드나 병렬처리 등에 대한 내용도 찾아보고 경험도 해보았는데 전부는 아니지만 이해한것 까지만 정리를 해보았는데요. MaxThreadCount,Queue Threads, maxReceivers 설정 값과 PI Receiver Parallelism 기능을 알면 SAP PO내에 메시지처리에 정체현상이 있는경우 이해하고 대응할수 있을것 같습니다.

운영 상 PO의 AP서버들이 4개(Instances)고 인스턴스의 각 서버노드별 아이디(Process)가 9개이며 REST어댑터의 큐에서 처리할수 있는 스레드 개수가 30개(메시지 큐마다 다름)로 구성이 되어있다고 한다면?

이때 서버 별 병렬처리될때 생성 가능한스레드 개수는 270개, AP서버가 총 4대니 여러서버에서 동시에 REST 방식의 큐는 1,080개의 메시지를 처리할수 있는 구성이라고 이해 됩니다.(L4같은 로드밸런싱 처리에 따라 다를수 있을것 같음)

그리고 MaxThreadCount는 서버내 동시처리할수 있는 최대 스레드 값을 지정할수 있다고 하는데 각 메시지 큐의 스레드를 지정하는 스레드 설정과 다르게 일반적으로 MaxThreadsCount는 메시지 큐스레드보다 높게 설정한다고 하지만 이부분은 정확한 가이드를 받아 해당 서버의 최적의 조건을 찾아야될것 같습니다.

messaging.system.queueParallelism.maxReceivers의 값이 10인경우?

수신만 해당된다고 하며 인터터페이스의 타겟 처리에 할당된 스레드 개수의 제한을 줄수 있으며 이 설정 같은경우 전체의 어댑터에 영향을 주는 부분이라 PI Receiver Parallelism 기능과 함께 사용하여 SAP PO서버내에 리소스를 많이 차지하는 특정 인터페이스에 대해 Rule의 카운터 값에 따라 수신처리에 제한을 줄수 있는것 같습니다.

이렇게 SAP PO내 메시지 처리에 대한 상태이상이나 정체 그리고 특정 인터페이스에 대한 리소스 점유 등 현상들을 대응 할수 있는 관련 설정이나 기능에 대해 정리를 해봤는데요. 
전반적인 내용에 대해서는 1623356 - "To be delivered" messages in Adapter Engine에서 볼수 있는것 같습니다.

이전에 작성한 관련 글입니다.

댓글 없음:

댓글 쓰기

최근글

9월 태안~천안 아이와 3박4일 가족 여행지