今回の注目点
今回のリリースでは「OldUserCleanup」にフォーカスしましょう。
「OldUserCleanup」とは?
OnTimeは同期アカウントの対象から外れても、それが間違いだったりする場合を想定して、内部的に1週間は作成した個人グループや所属する共有グループなど保持しています。この処理をソフトでリートと呼んでいます。
そして1週間後に管理者が復活しない場合に保持の必要なしと見なして完全に削除します。この処理をハードでリートと呼びます。
「OldUserCleanup」とはこのハードデリートの処理をいいます。
そして修正内容とは、完全に削除するアカウントを複数ある場合もいくつかの処理を必要とするテーブルはロックを行ったまま一括処理を行っていたようです。しかし、これが数千にもなるとテーブルロックをしている時間にユーザーがクライアントで操作をするとSQLが待ち状態になってしまいます。
一般的に従来は削除アカウント数もさほど大きくなくOldUserCleanupを行うメンテナンスの時間帯のユーザーも少なくこのテーブルロックが発生するのは長くても数分で完了すると想定していました。
今回の処理でOldUserClenaupは一括処理を行わず1つのアカウントごとに処理を行い、また実実行時間も1日あたり10分と制限することで長時間のテーブルロックを防ぐように変更されました。
10分たって処理が途中で、未処理のアカウントが残った場合、翌日以降に未処理のアカウントから実行されますので一度に大量の削除が発生した場合も1週間後に大量のハードデリートを行わず毎日コツコツと処理を分散して行われます。
リリースノート
OnTime Group Calendar for Micros…


リリースノート(Ver.6.2.8) OnTime Group Calendar for Microsoft FAQ
最新アップデートへようこそ。リリースでは、最新機能の実装だけで無く機能改善、バグ修正、潜在的なセキュリティ脆弱