目標
Dr.Sum Datalizerの明細で、超デカい件数のダウンロード(特にExcelで)を行おうとすると、最悪の場合DatalizerサーバのCPU100%→Datalizerほぼ停止、使えなくなる。
明細でExcelやCSVに出力するときの最大件数を指定しておこう。
経緯
つい先日100万件EXCELダウンロード事案が発生、本番Datalizerサーバが瀕死で冷や汗!
開発初期に作られた集計定義で考慮が足りておらず、年月で最大20年分のデータ抽出が可能。
現場の方はしっかり20年分指定してEXCELダウンロードしようとしてました。
手順・・・その前に考えてみよう
大量にデータがあるテーブル/ビューを参照している明細型のDatalizer集計定義作成時は、超デカい検索結果にならぬよう、抽出条件に留意すべし。
例)抽出条件「年月」のみ=やろうとすれば過去データ全てを出せる
→検索結果はものすごい件数になる
→でも、画面上は普通に表示される
(1ページ表示件数が50~100件程度だから。悲劇はこのあと起きる)
→EXCELダウンロードする
→サーバのCPU100%に、瀕死状態
→抽出画面側でブラウザ閉じてもだめ、走り出したら止まらないぜ
回避案)
★「年度」を必須条件に追加することで最大でも一年単位になり、サーバ停止リスク減
★でも現場は一度で沢山出したいものなので、利便性とのバランスが大事
手順
設定は2種類ある。
(1)各集計定義で(=その定義だけで有効)
(2)システム設定で(=Datalizer全体的に有効)
※どちらも設定した場合は、(1)各集計定義が優先
※(2)は全体に影響がでるので、設定値を何にするか決めるのは結構難しい
(1)各集計定義
集計定義の [属性] → [明細データに関する設定] → [通常表示以外の出力最大行数]
※以下の画面はVer.4.2
(2)システム設定
Ver.4.2
[テナント管理] → [テナント管理者ページへログイン ボタン] → [集計表共通設定] → [共通システム設定] → [明細データに関する設定] → [通常表示以外の出力最大行数]
Ver.5.0以降
[管理ページ] → [集計表共通設定] → [設定] → [共通システム設定] → [明細データに関する設定] → [通常表示以外の出力最大行数]
その他
大塚商会でこのような情報を見つけました。ご参考までに。
つぶやき
この事象が私の環境で起きたときは、悩んだ末にサーバ再起動しました。
Datalizerサービス停止、しばらく待ってからのサービス再起動でもいけるのかもしれませんが。
事件発生~再起動完了までの間に現場からの問合せTELが次々かかってきて、慌てる中で「Dr.Sum使って貰えてるんだな」という嬉しさもあり。。
ウイングアークのユーザコミュニティ「nest」
私も参加しています。多くの有益な情報があり、交流があります。
世の中が変わり、社外活動の重要性がより増していると考えております。
社外で自分の価値を計れるものさしを持とう。