# テーブルレコード削除機能

定義ファイル名：/recources/RemoveDefine.dicon

## 削除レコード指定方法

- 秒数指定...削除タスクを実行した日時から、何秒前までを残すかを指定する方法です。
- 件数指定...削除タスクを実行した総レコード件数から、指定したレコード数を残す方法です。

1. 秒数指定

       <!-- 削除コンポーネントを指定 秒数:secondRemoveDao 件数:countRemoveDao -->
       <property name="dao">secondRemoveDao</property>

   コメントの通りです。プロパティdaoにsecondRemoveDaoを指定します。

       <!-- 削除テーブル追加はここから -->
       <initMethod name="addSchedule" >
         <arg>
           <component class="org.F11.scada.server.remove.RemoveDto" >
             <description>
               tableName:テーブル名
               dateFieldName:日時フィールド名
               removeValue:削除判定値(何秒前を削除又は保持件数)
             </description>
             <property name="tableName">"log_table_minute"</property>
             <property name="dateFieldName">"f_date"</property>
             <property name="removeValue">86400</property>
           </component>
         </arg>

   ここにデータベースのテーブル名・日付フィールド名・削除に使用する判定値を設定します。
   テーブル名,日付フィールド名はそれぞれ以下の通りになります。
   - ロギングデータ...例の通り
   - サマリ...設定しないで下さい
   - ヒストリ...hisotry_table, off_date
   - 履歴...career_table, entrydate
   - 操作ログ...operation_logging_table, ope_date
   - 警報メール送信履歴...alarm_email_sent_table, sentdate
   removeValueには削除タスクを実行した日時から、何秒前までを残すかを指定します。86400秒だと一日分を残す設定になります。

         <arg>
           <component class="org.F11.scada.scheduling.DailyIterator">
             <description>毎日指定した時分秒に実行します</description>
             <arg><description>時</description>18</arg>
             <arg><description>分</description>43</arg>
             <arg><description>秒</description>0</arg>
           </component>
         </arg>
       </initMethod>

   コメントの通り時分秒を設定します。

           <!-- 月に一度実行したい場合はこちらのイテレーターを設定します -->
           <component class="org.F11.scada.scheduling.MonthlyIterator">
             <description>毎月指定した日時分秒に実行します</description>
             <arg><description>日</description>1</arg>
             <arg><description>時</description>1</arg>
             <arg><description>分</description>0</arg>
             <arg><description>秒</description>0</arg>
           </component>

   月に一度のスケジューリングには、MonthlyIteratorを設定します。コメントの通り日時分秒を設定します。
2. 件数指定

       <!-- 削除コンポーネントを指定 秒数:secondRemoveDao 件数:countRemoveDao -->
       <property name="dao">countRemoveDao</property>

   コメントの通りです。プロパティdaoにcountRemoveDaoを指定します。

       <!-- 削除テーブル追加はここから -->
       <initMethod name="addSchedule" >
         <arg>
           <component class="org.F11.scada.server.remove.RemoveDto" >
             <description>
               tableName:テーブル名
               dateFieldName:日時フィールド名
               removeValue:削除判定値(何秒前を削除又は保持件数)
             </description>
             <property name="tableName">"log_table_minute"</property>
             <property name="dateFieldName">"f_date"</property>
             <property name="removeValue">30000</property>
           </component>
         </arg>

   ここにデータベースのテーブル名・日付フィールド名・削除に使用する判定値を設定します。
   テーブル名,日付フィールド名はそれぞれ以下の通りになります。
   - ロギングデータ...例の通り
   - サマリ...設定しないで下さい
   - ヒストリ...hisotry_table, off_date
   - 履歴...career_table, entrydate
   - 操作ログ...operation_logging_table, ope_date
   - 警報メール送信履歴...alarm_email_sent_table, sentdate
   removeValueには残したいレコード数を設定します

         <arg>
           <component class="org.F11.scada.scheduling.DailyIterator">
             <description>毎日指定した時分秒に実行します</description>
             <arg><description>時</description>18</arg>
             <arg><description>分</description>43</arg>
             <arg><description>秒</description>0</arg>
           </component>
         </arg>
       </initMethod>

   コメントの通り字分秒を設定します

           </component>
           <!-- 月に一度実行したい場合はこちらのイテレーターを設定します -->
           <component class="org.F11.scada.scheduling.MonthlyIterator">
             <description>毎月指定した日時分秒に実行します</description>
             <arg><description>日</description>1</arg>
             <arg><description>時</description>1</arg>
             <arg><description>分</description>0</arg>
             <arg><description>秒</description>0</arg>
           </component>

   月に一度のスケジューリングには、MonthlyIteratorを設定します。コメントの通り日時分秒を設定します。
3. <initMethod name="addSchedule"> 〜 </initMethod>を追加することで、複数のテーブル削除をスケジューリングすることが可能です。タスクの実行は指定した順番で逐次実行されます。
4. 秒数指定と件数指定を同時に使いたい場合は、<component class="org.F11.scada.server.remove.impl.RemoveServiceImpl"> 〜 </component>を2つにして、一方のプロパティdaoをsecondRemoveDaoに、もう一方をcountRemoveDaoにすることで可能になります。
5. 各項目の<description> 〜 </description>の部分は、各項目の説明文です。目障りなら削除して頂いても問題ありません。