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

定義ファイル名:/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>
    
    ここにデータベースのテーブル名・日付フィールド名・削除に使用する判定値を設定します。
    テーブル名,日付フィールド名はそれぞれ以下の通りになります。
    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>
    
    ここにデータベースのテーブル名・日付フィールド名・削除に使用する判定値を設定します。
    テーブル名,日付フィールド名はそれぞれ以下の通りになります。 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>の部分は、各項目の説明文です。目障りなら削除して頂いても問題ありません。