2022년 2월 17일 목요일

Relationship between EOIO and Sequence Number in SAP PO

SAP PO 큐처리 EOIO와 Sequence Number 관계


SAP PO에서 Message Monitoring 로그들중 순차적으로 처리되는 EOIO방식에 Sequence ID와 Number를 볼수 있는데요. 아이디에는 Proxy이나 JDBC 연계방식에서 사용되는 큐 이름이 들어갈테고 넘버에는 EOIO로 처리되는 메시지마다 시퀀스가 1씩 증가될것입니다. 하지만 큐 이름이 고정인경우 시퀀스가 초기화되지 않고 계속늘어나 나중에 시퀀스가 백만자리까지 보이는경우가 있어 신경이 쓰이는데요. 날짜,시,분,초 등을 붙여서 동적인 큐이름을 만들게 되면 더이상 시퀀스가 무한대로 늘어나 보이지는 않습니다.


EOIO는 어떻게 처리될까?

타겟 시스템의 어댑터 엔진으로 전송될때 서로다른 JAVA서버노드로 전송될수 있다고 하며 이런 메시지들이 EOIO로 전송될때 신기하게도 서로 다른 노드들이지만 순차적(직렬)으로 처리가 되며 동일 큐에서 에러발생시 후처리 되는 메시지들은 홀딩 상태가 됩니다.
EOIO로 처리되는 메시지들의 수는 백로그 모니터링에서 확인 가능하며 양이 많은 경우 오버헤드가 발생될수 있다고 하는데 
오버헤드란? 어떤처리를 하기위해 들어가는 간접적인 시간이라고 하는데.. 아마도 병렬처리되는 메시지 처리속도가 보통 10초가 걸렸는데 이걸 순차적 처리하게 되는경우 15초가 걸렸다? 그럼 오버헤드가 5초가된다고 이해가됩니다.
위에서 순차적인 처리에 대해 다시 정리를 해보면 하나의 소스시스템에 여러 타겟시스템 처리가 필요한 인터페이스를 하나의 큐이름으로 지정되는 경우 큐에 들어오는 시간(시작시간?)은 순서대로 보이나 각 타겟 어댑터 처리완료시간은 달라질수 있을것 같습니다.


많은 EOIO메시지 시퀀스는 성능에 영향을줄까?

지금까지 찾아본 내용을 보면 많은 EOIO 큐에 대해서는 성능에 직접적인 영향을 주는 부분에 대해 사례는 찾지 못했고 시퀀스 아이디나 번호는 수신메시지가 생성되어 메시징시스템에 전달 후 EOIO를 위한 시퀀스 처리를 위해 시퀀스 테이블?(BC_MSG_SEQ_NBR)에 접근할 때 사용되는 메모리는 많이 사용되지 않는다고 합니다. 그리고 EOIO큐 최대 개수에 대해서는 제한이 없어보이긴 하지만 메시지 모니터링에 Sequence Number정보에 해당하는 BC_MSG 테이블의 컬럼타입이 BIGINT인걸 보면 시퀀스넘버 값이 계속중가하여도 걱정은 없어보입니다.

참고사이트: 
 

댓글 없음:

댓글 쓰기

최근글

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