2023년 3월 9일 목요일

SAP PO JDBC Adapter의 'Disconnect from Database After Processing Each Message' 옵션에 대해

어느 answers.sap.com 사이트의 글에서 
Sender,Receiver JDBC Adapter > Advanced의 'Disconnect from Database After Processing Each Message' 옵션에 대한 용도와 어떠한 현상에서 체크를 해야하는지에 대한 문의를 남긴 글을 보았었습니다.

저도 SAP PO 작업을 하면서 신규 같은경우 HTTP,SOAP 등의 연계방식을 통한 실시간,배치로 수행되는 인터페이스들만 보다 최근 몇년 사이에 다른 EAI 솔루션에서 PO로 많은 DB연계방식의 인터페이스들을 전환할때 이 옵션을 필수로 체크하는 경우를 보았고 대략 어느 기능을 하는지는 알지만 다시한번 간략하게 정리를 해보려고합니다.

해당 문의에 대해 어떤 사람은 아래와 같이 답변을 남긴 글을 재정리해보면

이 옵션이 체크되어있는 경우 Sender어댑터는 각 폴링 마다 DB연결을 해제 후 다시 연결을 시도하며 폴링 주기가 짧은 경우 항상 열결이 되게 하는게 좋습니다. 하지만 Receiver어댑터 같은경우 소스쪽 연계방식과 호출주기에 따라 다를것 같은데 전송되는 메시지 주기가 큰 경우 해당 옵션을 사용하는게 DB부하를 줄이데 도움을 줄 수 있습니다.

이 노츠의 일부분을 보면
"이 연결해제 옵션을 사용하면 DB수준에서 연결을 해제하는데 문제가 있는 경우 도움이 될수 있습니다.(단, 이 옵션을 사용하면 부하가 많은 상황에서 처리 시간이 느려질수 있습니다)"

정리한 내용을 요약하면 
호출 빈도(몇초?)가 짧은 메시지를 전송하는 인터페이스인경우 해당 옵션을 사용안하는게 좋은것 같고 네트워크오류나 빈도가 긴 인터페이스들은 이 옵션을 사용하는게 연계하는 시스템이나 DB에 부하를 줄일수(얼마나?) 있는것 같습니다. 

DB연계방식의 인터페이스에서 발생되는 여러 에러들에 해결방법으로 연결해제 옵션 외에도  'Maximum Concurrency' 값 조정 등 여러 해결방법의 내용들을 볼수 있었습니다. 

댓글 2개:

  1. 저도 이 기능이 궁금해서 한번 테스트해봤는데, 확실히 JDBC Receiver 에서 체크를 안했을때 처리시간이 짧아지긴 했으나, 크게 시간차 의미가 없었고, 메시지 케이스에 따라 어떤경우 더 걸릴때도 있더라고요. 물론 메시지가 크고, 많이 흐른다면 또 다를 수 있을꺼같네요

    답글삭제
  2. 해당 옵션에 대해 궁금했었는데 감사합니다.

    답글삭제

최근글

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