タイムアウトの仕組み - OutSystems サポート
参照部分はSQLクエリのタイムアウト
昨日いろいろ長く勘違いしていることがわかった。
データベースのアクセスで
Error executing queryがでるのは拡張SQLだけだとおもっていたが、
Aggregateでも出るパターンがあった。
Error executing queryが出るパターンでは、SQLコーディングミスによる
SQLエラーの場合見る機会がおおいので、
えっAggregateでもでるの?コーディングミスしようがないじゃんとおもっていたが、
タイムアウトの制御があるのは何となくわかっていたが、
あまり関係する機会がなかったのでタイムアウトとError executing queryが関連性があるとはしらず調べていなかったら、よい記事を見つけた。
Outsystemsが導入されたサーバにて、ツールを起動し
タイムアウト時間を設定できることがわかった。
デフォルトは30秒でレスポンスが返ってくるまでの時間で
1秒単位で設定できる、変更を反映する際は、内部的にリパブリッシュしているのか
10分程度時間がかかるようだ。
ここを調整して、特にAggregateで実装したものはこれで改善できる
Aggregateの場合は、基本実装がシンプルなので実装で改善する場合は、
業務仕様の見直し、最適化しかありえない。
ただ、一般的なSQLコーディングの場合は、通ればいいやで、非効率な実装となる場合があるため、SQLの見直しが最優先だが、きれいなSQLがコーディングされている場合は、こちらの対応で対応できるかも。
ただ、参照SQLの戻り時間を長くすることで、
バッチなどは安定して動作することになるが、
画面系も同じ設定となった場合、仮に重い検索をした場合、
デフォルトで30秒でおちるものの、バッチのために10分していた場合、
10分間反応がないようになる可能性があるので、
バッチと画面が独立したサーバならそれぞれ設定して、
共存環境なら、バランスをとった設定するとよい。
まだ、お試し中なので結果がでたらあらためて追記します