パッケージ org.opengion.hayabusa.taglib

# クラス ScheduleTag

java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.ScheduleTag

すべての実装されたインタフェース:
  `BodyTag`, `IterationTag`, `JspTag`, `Tag`, `TryCatchFinally`, `Serializable`

public class ScheduleTag extends CommonTagSupport
アプリケーション共有のタイマー機能を用いて、繰り返しスケジュールを設定するタグです。 タイマースケジュールは、帳票デーモンや、再編成処理、定期的バッチ処理など、エンジン上の スレッドで動作するスケジュールを登録します。 スケジュールすべきクラスは、HybsTimerTask を拡張(extends)しておく必要があります。

関連項目:
  - 直列化された形式
機能分類
  その他部品
形式ｻﾝﾌﾟﾙ:
  ●形式：<og:schedule timerTask="･･･" name="･･･" command="[SET|VIEW|REMOVE|CANCEL]" ･･･ /> ●body：あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義： <og:schedule command 【TAG】コマンド (SET,VIEW,REMOVE,CANCEL)をセットします(初期値:SET) timerTask ○【TAG】処理を実行するクラス名(HybsTimerTask のサブクラス)を指定します(必須)。 name ○【TAG】名称(ユニークキー)を設定します(必須)。 comment 【TAG】タイマータスクの説明を設定します singleton 【TAG】Name属性が同一のタスクを２重登録出来ないよう[true/false]にします(初期値:true[出来ない]) delay 【TAG】ミリ秒単位の遅延時間を設定します(初期値:0) period 【TAG】ミリ秒単位の繰り返し間隔を設定します(初期値:60000) fixedDelay 【TAG】固定遅延実行を指定するかどうか[true:固定遅延実行/false:固定頻度実行]を設定します(初期値:true) keys 【TAG】HybsTimerTask に渡す為のキー情報、CSV形式で複数指定します vals 【TAG】HybsTimerTask に渡す為の値を、CSV形式で複数指定します prmKeys 【TAG】HybsTimerTask に渡すパラメータのキー情報を、CSV形式で指定します(分解しない)。 prmVals 【TAG】HybsTimerTask に渡すパラメータの値を、CSV形式で指定します(分解しない)。 startTime 【TAG】24時間制(YYMMDD)の開始時刻を設定します(初期値:000000) stopTime 【TAG】24時間制(YYMMDD)の終了時刻を設定します(初期値:000000) scope 【TAG】キャッシュする場合のスコープ(local,request,page,session,application)を指定します(初期値:local) tableId 【TAG】(通常は使いません)結果をDBTableModelに書き込んで、sessionに登録するときのキーを指定します debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) > ... Body ... </og:schedule> ●使用例 帳票デーモンスケジュール登録 period は、ｍｓ単位で指定する必要があるため、１０００倍しています。 <og:schedule command = "{@CMD}" scope = "request" timerTask = "org.opengion.hayabusa.report.ReportDaemon" name = "{@NAME}" comment = "Start-up By {@USER.INFO}" singleton = "true" delay = "0" period = "{@PERIOD}000" fixedDelay = "true" keys = "SYSTEM_ID,DMN_GRP" vals = "{@SYSTEM_ID},{@DMN_GRP}" />
導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `static final String`
  `CMD_CANCEL`
  command 引数に渡す事の出来る コマンド キャンセル "CANCEL"
  `static final String`
  `CMD_REMOVE`
  command 引数に渡す事の出来る コマンド リムーブ "REMOVE"
  `static final String`
  `CMD_SET`
  command 引数に渡す事の出来る コマンド セット "SET"
  `static final String`
  `CMD_VIEW`
  command 引数に渡す事の出来る コマンド ビュー "VIEW"

  ### クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport

  `BR, BUFFER_MIDDLE, CR`

  ### クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport

  `bodyContent`

  ### クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport

  `id, pageContext`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag

  `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag

  `EVAL_BODY_AGAIN`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag

  `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `ScheduleTag()`
  デフォルトコンストラクター

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `protected boolean`
  `commandExec(String command)`
  コマンドを実行します。
  `int`
  `doAfterBody()`
  Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
  `int`
  `doEndTag()`
  Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
  `int`
  `doStartTag()`
  Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
  `protected void`
  `release2()`
  タグリブオブジェクトをリリースします。
  `void`
  `setCommand(String cmd)`
  【TAG】コマンド (SET,VIEW,REMOVE,CANCEL)をセットします(初期値:SET)。
  `void`
  `setComment(String cmt)`
  【TAG】タイマータスクの説明を設定します。
  `void`
  `setDelay(String val)`
  【TAG】ミリ秒単位の遅延時間を設定します(初期値:0)。
  `void`
  `setFixedDelay(String flag)`
  【TAG】固定遅延実行を指定するかどうか[true:固定遅延実行/false:固定頻度実行]を設定します(初期値:true)。
  `void`
  `setKeys(String key)`
  【TAG】HybsTimerTask に渡す為のキー情報、CSV形式で複数指定します。
  `void`
  `setName(String nm)`
  【TAG】名称(ユニークキー)を設定します。
  `void`
  `setPeriod(String val)`
  【TAG】ミリ秒単位の繰り返し間隔を設定します(初期値:60000)。
  `void`
  `setScope(String scp)`
  【TAG】キャッシュする場合のスコープ(local,request,page,session,application)を指定します(初期値:local)。
  `void`
  `setSingleton(String flag)`
  【TAG】Name属性が同一のタスクを２重登録出来ないよう[true:禁止/false:なにもない]にします(初期値:true:禁止)。
  `void`
  `setStartTime(String st)`
  【TAG】24時間制(YYMMDD)の開始時刻を設定します(初期値:000000)。
  `void`
  `setStopTime(String st)`
  【TAG】24時間制(YYMMDD)の終了時刻を設定します(初期値:000000)。
  `void`
  `setTableId(String id)`
  【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。
  `void`
  `setTimerTask(String val)`
  【TAG】処理を実行するクラス名(HybsTimerTask のサブクラス)を指定します。
  `void`
  `setUniqKey(String no)`
  【TAG】スケジュールを一意に決めるためのユニーク番号を指定します(初期値:-1)。
  `void`
  `setVals(String val)`
  【TAG】HybsTimerTask に渡す為の値を、CSV形式で複数指定します。
  `String`
  `toString()`
  このオブジェクトの文字列表現を返します。

  ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

  `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck`

  ### クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport

  `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

  ### クラスから継承されたメソッド jakarta.servlet.jsp.tagext.TagSupport

  `findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue`

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag

  `getParent, setPageContext, setParent`

- ## フィールド詳細

  - ### CMD_SET

    public static final String CMD_SET
    command 引数に渡す事の出来る コマンド セット "SET"
    関連項目:
      - 定数フィールド値

  - ### CMD_VIEW

    public static final String CMD_VIEW
    command 引数に渡す事の出来る コマンド ビュー "VIEW"
    関連項目:
      - 定数フィールド値

  - ### CMD_REMOVE

    public static final String CMD_REMOVE
    command 引数に渡す事の出来る コマンド リムーブ "REMOVE"
    関連項目:
      - 定数フィールド値

  - ### CMD_CANCEL

    public static final String CMD_CANCEL
    command 引数に渡す事の出来る コマンド キャンセル "CANCEL"
    関連項目:
      - 定数フィールド値

- ## コンストラクタの詳細

  - ### ScheduleTag

    public ScheduleTag()
    デフォルトコンストラクター
    変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

- ## メソッドの詳細

  - ### doStartTag

    public int doStartTag()
    Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    定義:
      `doStartTag` インタフェース内 `Tag`
    オーバーライド:
      `doStartTag` クラス内 `CommonTagSupport`
    戻り値:
      後続処理の指示( EVAL_BODY_BUFFERED )
    変更履歴:
      3.2.2.0 (2003/05/31) HybsTimerTask に対して、設定値を渡せるように変更。

  - ### doAfterBody

    public int doAfterBody()
    Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
    定義:
      `doAfterBody` インタフェース内 `IterationTag`
    オーバーライド:
      `doAfterBody` クラス内 `CommonTagSupport`
    戻り値:
      後続処理の指示(SKIP_BODY)
    変更履歴:
      3.2.2.0 (2003/05/31) HybsTimerTask に対して、設定値を渡せるように変更。

  - ### doEndTag

    public int doEndTag()
    Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    定義:
      `doEndTag` インタフェース内 `Tag`
    オーバーライド:
      `doEndTag` クラス内 `CommonTagSupport`
    戻り値:
      後続処理の指示
    変更履歴:
      3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.6.0.8 (2004/11/19) DBTableModel をセーブする時に、トランザクションチェックを行います。, 6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。

  - ### release2

    protected void release2()
    タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
    オーバーライド:
      `release2` クラス内 `CommonTagSupport`
    変更履歴:
      3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.2.2.0 (2003/05/31) HybsTimerTask に対して、設定値を渡せるように変更。, 3.5.2.0 (2003/10/20) 結果を DBTableModel として、scope 属性に登録する。

  - ### commandExec

    protected boolean commandExec(String command)
    コマンドを実行します。 コマンドは,HTMLから(SET/VIEW/REMOVE/CANCEL)指定されますので,setCommand()メソッドで 登録します。 コマンドを登録すると同時に,実行も行ないます。
    パラメータ:
      `command` - コマンド (public static final 宣言されている文字列)
    戻り値:
      正常かどうか(true:正常/false:異常)
    関連項目:
      - コマンド定数
    変更履歴:
      3.5.2.0 (2003/10/20) viewAttribute()メソッドを、全てで実行します。, 3.6.0.8 (2004/11/19) 正常に登録できたかどうかを、返します。, 4.0.0.0 (2007/10/18) メッセージリソース統合( setMsg() ⇒ setLbl )

  - ### setCommand

    public void setCommand(String cmd)
    【TAG】コマンド (SET,VIEW,REMOVE,CANCEL)をセットします(初期値:SET)。
    パラメータ:
      `cmd` - コマンド (public static final 宣言されている文字列)
    関連項目:
      - コマンド定数
    説明:
      コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される フィールド定数値のいづれかを、指定できます。 何も設定されない、または、null の場合は、"SET" が初期値にセットされます。

  - ### setTimerTask

    public void setTimerTask(String val)
    【TAG】処理を実行するクラス名(HybsTimerTask のサブクラス)を指定します。
    パラメータ:
      `val` - クラス名
    説明:
      処理を実行する HybsTimerTask のクラス名を指定します。

  - ### setName

    public void setName(String nm)
    【TAG】名称(ユニークキー)を設定します。
    パラメータ:
      `nm` - タイマータスクの名称
    説明:
      タイマータスクの名称(ユニークキー)を設定します。

  - ### setComment

    public void setComment(String cmt)
    【TAG】タイマータスクの説明を設定します。
    パラメータ:
      `cmt` - タイマータスクの説明
    説明:
      タイマータスクの説明を設定します。

  - ### setDelay

    public void setDelay(String val)
    【TAG】ミリ秒単位の遅延時間を設定します(初期値:0)。
    パラメータ:
      `val` - 遅延時間(ms)
    説明:
      タスクが実行される前のミリ秒単位の遅延を設定します(初期値:0)

  - ### setPeriod

    public void setPeriod(String val)
    【TAG】ミリ秒単位の繰り返し間隔を設定します(初期値:60000)。
    パラメータ:
      `val` - 繰り返し間隔(ms)
    説明:
      連続するタスク実行のミリ秒単位の時間を設定します(初期値:60000 mS)

  - ### setFixedDelay

    public void setFixedDelay(String flag)
    【TAG】固定遅延実行を指定するかどうか[true:固定遅延実行/false:固定頻度実行]を設定します(初期値:true)。
    パラメータ:
      `flag` - 遅延方式指定 [true:固定遅延実行/false:固定頻度実行]
    説明:
      固定遅延実行では、前の実行の実際の実行時間を基準にしてそれぞれの実行がスケジュールされます。 何らかの理由で実行が遅延した場合 そのあとの実行も遅延されます。 最終的に、実行の頻度は通常、指定した期間の対応する頻度よりも若干遅くなります 固定頻度実行では、最初の実行のスケジュールされた実行時間を基準にしてそれぞれの実行が スケジュールされます。何らかの理由で実行が遅延した場合、「遅れを取り戻す」ために 2 つ以上の実行が連続して行われます。最終的に実行の頻度は、指定した期間の対応する頻度と 同じになります 初期値は、true:固定遅延実行 です。

  - ### setUniqKey

    public void setUniqKey(String no)
    【TAG】スケジュールを一意に決めるためのユニーク番号を指定します(初期値:-1)。
    パラメータ:
      `no` - ユニーク番号
    説明:
      スケジュールを削除したりする場合に、必要なユニーク番号を指定します。 初期値は、-1:あり得ない値 です。

  - ### setSingleton

    public void setSingleton(String flag)
    【TAG】Name属性が同一のタスクを２重登録出来ないよう[true:禁止/false:なにもない]にします(初期値:true:禁止)。
    パラメータ:
      `flag` - ２重登録不可 [true:禁止/false:なにもない]
    説明:
      同一種類のタスクを複数同時立上げしたくない場合に、利用します。 一般に、タイマータスクそのものが、繰り返し実行されますので、 初期値は、２重登録禁止にしています。

  - ### setKeys

    public void setKeys(String key)
    【TAG】HybsTimerTask に渡す為のキー情報、CSV形式で複数指定します。
    パラメータ:
      `key` - キー情報(CSV形式)
    変更履歴:
      3.2.2.0 (2003/05/31) 新規追加, 3.5.6.2 (2004/07/05) CommonTagSupport#getCSVParameter を使用, 6.2.5.1 (2015/06/12) CSV形式のkeys,vals引数(CSV引数)対応。
    説明:
      HybsTimerTask に渡す為の、キー情報をCSV形式で複数指定できます。 vals 属性には、キーに対応する値を、設定してください。 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

  - ### setVals

    public void setVals(String val)
    【TAG】HybsTimerTask に渡す為の値を、CSV形式で複数指定します。
    パラメータ:
      `val` - 値(CSV形式)
    変更履歴:
      3.2.2.0 (2003/05/31) 新規追加, 3.5.6.2 (2004/07/05) CommonTagSupport#getCSVParameter を使用, 6.2.5.1 (2015/06/12) CSV形式のkeys,vals引数(CSV引数)対応。
    説明:
      キーに設定した値を、CSV形式で複数して出来ます。 指定順序は、キーと同じにしておいて下さい。 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

  - ### setStartTime

    public void setStartTime(String st)
    【TAG】24時間制(YYMMDD)の開始時刻を設定します(初期値:000000)。
    パラメータ:
      `st` - 開始時刻
    変更履歴:
      3.2.2.0 (2003/05/31) 新規追加
    説明:
      指定時刻範囲内での実行のみ許可するように開始時刻を設定します。 これは、タイマーで指定した間隔ごとにチェックを入れるので、チェック時間が 長い場合は、正確に開始時刻から始まるというものではありません。 初期値は、"000000" です。

  - ### setStopTime

    public void setStopTime(String st)
    【TAG】24時間制(YYMMDD)の終了時刻を設定します(初期値:000000)。
    パラメータ:
      `st` - 終了時刻
    変更履歴:
      3.2.2.0 (2003/05/31) 新規追加
    説明:
      指定時刻範囲内での実行のみ許可するように終了時刻を設定します。 これは、タイマーで指定した間隔ごとにチェックを入れるので、チェック時間が 長い場合は、正確に終了時刻で終了するというものではありません。 (終了時刻を越えてからの新規実行はありません。) 初期値は、"000000" です。

  - ### setTableId

    public void setTableId(String id)
    【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。
    パラメータ:
      `id` - テーブルID (sessionに登録する時のID)
    説明:
      検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に 渡す場合に、通常は、session を利用します。その場合の登録キーです。 query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、 この tableId 属性を利用して、メモリ空間を分けます。 (初期値:HybsSystem#TBL_MDL_KEY[=])。

  - ### setScope

    public void setScope(String scp)
    【TAG】キャッシュする場合のスコープ(local,request,page,session,application)を指定します(初期値:local)。
    オーバーライド:
      `setScope` クラス内 `CommonTagSupport`
    パラメータ:
      `scp` - スコープ
    関連項目:
      - `CommonTagSupport.getScope()`
    変更履歴:
      3.5.2.0 (2003/10/20) 新規作成
    説明:
      "local","request","page","session","application" が指定できます。 "local" は、過去のバージョンとの互換性を保つ為の特殊な値です。 初期値は、"local" です。

  - ### toString

    public String toString()
    このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
    オーバーライド:
      `toString` クラス内 `CommonTagSupport`
    戻り値:
      このクラスの文字列表現
    このﾒｿｯﾄﾞは、nullを返しません