(OutSystems) 로우 코드도 괜찮습니다. BATCH 처리 !! vol.2

배경



로우 코드 플랫폼 「OutSystems」를 사내에 도입·개발 서포트하고 있다.
Java나 Python도 즐겁지만, 앞으로의 시대는 로우 코드!!

도전



OutSystems는 WEB는 좋지만 BATCH가구나… 본고에서는, OutSystems로 BATCH 처리를 실현하는데 있어서의 궁리 포인트를 소개한다.

가정
· 수천 ~ 수백만 레코드 단위 처리
· 스케줄러는 OutSystems와는 다른 (Zabbix, Windows 작업 스케줄러, JP1 등)

포인트
① BATCH 아키텍처
※정시 기동, 상시 실행, 온 디맨드의 타입이 있지만, 본고에서는 "정시 기동"에 대해서 적는다
② 타임 아웃 대응
③ 커밋 제어
④ 응답 개선
 a) TextDitionary를 활용
 b) 코어 부분만 외부를 활용 (Extention, PL/SQL, Powershell)

대응



이번에는 이하에 대해 기술한다.
② 타임 아웃 대응
※ 정시 기동, 상시 실행, 온 디맨드의 타입이 있지만, 본고에서는 "정시 기동"에 대해 적는다

목적



OutSystems에서 BATCH를 실현하는데 있어서의 일례를 소개해, 로우 코드에 대한 우려를 부드럽게, 보다 보급시키고 싶다.

내용



타임 아웃은 복수 고려하는 개소가 있는 점에 주의.
(1) IIS의 연결 시간 초과
(2) 리버프로가있는 경우 리버프로 서버 시간 초과
(3) OutSystems의 Aggregate/AdvancedSQL 시간 초과

(1) IIS 요청 시간 초과

디폴트가 120s가 되어 있어, 120s를 넘은 시점에서 REST API에의 통신이 차단된다.
배치 처리로서 걸릴 것 같은 시간만큼 연장해 둔다.
※단, WEB의 리퀘스트에 대해서도 효과가 버리므로, 주의

(2) 리버프로 서버 타임 아웃
시스템이나 데이터를 사내 NET에서 보호하고 싶은 경우에는 DMZ에 리버프로를 배치한 구성도 생각할 수 있다.
그 경우는 리버프로 서버의 미들웨어에 있어서의 타임 아웃도 고려하는 것.

Apache (참고 사이트 LinuxMaster.JP 님)
htps //w w.ぃ ん x x s r. jp/ぃぬ x_s키르/2013/08/아파치-6. HTML

IIS
본고(1) 참고

(3) OutSystems의 Aggregate/AdvancedSQL 시간 초과
DB 액세스시의 SQL 처리의 타임 아웃 시간에도 주의를 기울일 필요가 있다.
BATCH 처리에서는 얻어 장시간을 요하는 SQL을 발행하는 것이 많이 있다. (대량 선택/갱신, PL/SQL 등)
그 경우는 이하 DB 액세스 Widget의 Timeout를 요건에 맞추어 편집해 두는 것. (default는 120s? Configuration tool에서 default 변경이 가능할지도)



결과 or 깨달은 점



타임 아웃 시간을 고려함으로써, 처리 시간이 긴 BATCH 처리도 실현 가능해진다.
다만, 어느 쪽인가라고 하면 나가~이 BATCH 처리를 만드는 것보다, 기능 마다 STEP로 단락지어, 1개씩 STEP를 REST로 콜하는 만드는 쪽이, 운용·멘테넌스 면으로부터 하기 쉽도록 느낀다.

결론



이번에는 OutSystems에서 BATCH 처리를 실현하기 위해 필요한 Timeout 시간의 고려 부분을 공유했다.
아직 계속.

좋은 웹페이지 즐겨찾기