0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

(OutSystems) ローコードでも大丈夫、BATCH処理 !! vol.2

Last updated at Posted at 2021-01-02

背景

ローコードプラットフォーム『OutSystems』を社内へ導入・開発サポートしている。
JavaやPythonも楽しいけど、これからの時代はローコード!!

課題

OutSystemsはWEBは良いけどBATCHがなぁ…という声を度々耳にするが『そんなとこはない、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のリクエストタイムアウト
image.png
デフォルトが120sとなっており、120sを超えた時点でREST APIへの通信が遮断される。
バッチ処理として掛かりそうな時間分だけ延ばして置く。
※ただし、WEBのリクエストへ対しても効いてしまうので、注意


(2) リバプロサーバのタイムアウト
システムやデータを社内NETでプロテクトしたい場合は、DMZにリバプロを配置した構成も考えられる。
その場合はリバプロサーバのミドルウェアにおけるタイムアウトも考慮すること。

Apache(参考サイト LinuxMaster.JP様)
https://www.linuxmaster.jp/linux_skill/2013/08/apache-6.html

IIS
本稿(1)参考


(3) OutSystems上のAggregate/AdvancedSQLのタイムアウト
DBアクセス時のSQL処理のタイムアウト時間にも注意を払う必要がある。
BATCH処理では得てして長時間を要するSQLを発行することが多々ある。(大量選択/更新, PL/SQLなど)
その場合は以下DBアクセスWidgetのTimeoutを要件に合せて編集しておくこと。(defaultは120s? Configuration toolでdefaultの変更が可能かも)
image.png
image.png

結果 or 気付いた点

タイムアウト時間を考慮することで、処理時間の長いBATCH処理も実現可能になる。
ただし、どちらかといえばなが~いBATCH処理を作るよりも、機能ごとにSTEPで区切り、1つずつSTEPをRESTでコールする作りの方が、運用・メンテナンス面からやりやすいように感じる。

結論

今回はOutSystems上でBATCH処理を実現するために必要となるTimeout時間の考慮部分を共有した。
まだ続く。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?