クラス SystemManager

java.lang.Object
org.opengion.hayabusa.common.SystemManager

public final class SystemManager extends Object
Webアプリケーション全体で使用しているオブジェクト類のトータルの管理クラスです。 SystemManager は、 session オブジェクトの管理とアクセス/開放 の作業を行います。 上記のクラス(staticメソッド)へのアクセスは、もちろん直接呼び出して 操作することも可能ですが、サーバーのクリーンシャットダウン時やセッションの 開放時、初期化処理など、ある種の統合的なトリガを受けて、関係するクラスに イベントを伝えるようにすることで、Webアプリケーションサーバーとのやり取りを 一元管理する目的で作成されています。
機能分類
初期化
導入されたバージョン:
JDK5.0,
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    static void
    初期化したいオブジェクトを登録します。
    static void
    addCleanable(Cleanable obj, boolean flag)
    初期化したいオブジェクトを登録します。
    static void
    session を記録します。
    static void
    allClear(boolean flag)
    addCleanable( final Cleanable ) で登録したすべてのオブジェクトを初期化します。
    (package private) static void
    GE12からCONTXT PATHをhost:port/context/で登録している物を削除します。
    (package private) static void
    アクセス統計テーブル(GE15)の再編成を行います。
    static int
    システムにログイン中の、すべてのセッション数を、取得します。
    static UserSummary[]
    getRunningUserSummary(String key, boolean direction)
    すべてのシステムにログイン中のUserSummary オブジェクトを取得します。
    static void
    session を削除します。
    (package private) static void
    contextDestroyed 時に、すべてのセッションを、invalidate()します。

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

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • メソッドの詳細

    • addSession

      public static void addSession(HttpSession session)
      session を記録します。 管理者権限で、強制ログアウトさせる場合などに、使用します。 Servlet 2.1 では、HttpSessio#getSessionContext() より取り出した HttpSessionContextのgetSession(java.lang.String sessionId) で すべての session を取り出せましたが、Deprecated になりました。 セキュリティー上、好ましくない処理ですので、注意して使用してください。 common\session_init.jsp より登録します
      パラメータ:
      session - Httpセッション
      変更履歴:
      5.5.9.1 (2012/12/07) セッション作成時に、規定のキーでセッションIDを保存しておく。, 6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。, 6.4.3.3 (2016/03/04) ConcurrentHashMap の not null制限のチェック追加
    • removeSession

      public static void removeSession(HttpSession session)
      session を削除します。 管理者権限で、強制ログアウトさせる場合などに、使用します。 Servlet 2.1 では、HttpSessio#getSessionContext() より取り出した HttpSessionContextのgetSession(java.lang.String sessionId) で すべての session を取り出せましたが、Deprecated になりました。 セキュリティー上、好ましくない処理ですので、注意して使用してください。
      パラメータ:
      session - Httpセッション
      変更履歴:
      5.5.9.1 (2012/12/07) セッション作成時に登録した規定のキーで userInfo を削除します。, 5.6.6.0 (2013/07/05) セッションの Attribute に SESSION_KEY で登録している sessionID も削除します。, 6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。
    • getRunningUserSummary

      public static UserSummary[] getRunningUserSummary(String key, boolean direction)
      すべてのシステムにログイン中のUserSummary オブジェクトを取得します。 キーは、UserSummary の Attribute も含めた値が使用できます。 引数のキーは、内部で大文字に変換されたのち、内部キーとして使用されます。
      パラメータ:
      key - ソートするキー項目を指定
      direction - ソートする方向[true:昇順/false:降順]
      戻り値:
      ログイン中のオブジェクト
      変更履歴:
      4.0.0.0 (2005/01/31) 内部ロジック大幅変更, 5.6.6.0 (2013/07/05) Comparator の作り方を、簡素化します。キーの指定範囲も増やします。, 6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。
    • getRunningCount

      public static int getRunningCount()
      システムにログイン中の、すべてのセッション数を、取得します。 ちなみに、不正なデータが存在した場合は、ここでMapから削除しておきます。 ※ ConcurrentHashMap に変更したため、不正なデータ(ここでは、null データ)は、存在しない。
      戻り値:
      ログイン中の有効なすべてのセッション数
      変更履歴:
      4.0.0.0 (2005/01/31) 新規作成, 6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。
    • sessionDestroyed

      static void sessionDestroyed()
      contextDestroyed 時に、すべてのセッションを、invalidate()します。 注意:キャッシュで内部管理していたセッションが、すべて無効化されてしまいます。 よって、内部にセッションを管理しなくなったため、invalidate() もできません。 不具合が出るかもしれません。
      関連項目:
      変更履歴:
      3.5.2.1 (2003/10/27) 新規作成, 4.0.0.0 (2005/01/31) セッション ⇒ UserSummary に変更, 6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。, 6.4.3.3 (2016/03/04) ConcurrentHashMap の not null制限のチェック追加
    • addCleanable

      public static void addCleanable(Cleanable obj)
      初期化したいオブジェクトを登録します。 オブジェクトは、Cleanable インターフェースを実装しておく必要があります。 実際に、clear() する場合は、ここで登録した全てのオブジェクトの clear() メソッドが呼び出されます。
      パラメータ:
      obj - インターフェースの実装
      変更履歴:
      4.0.0.0 (2005/01/31) 新規作成, 4.3.6.2 (2009/04/15) コンテキスト終了時のみのclear()対応
    • addCleanable

      public static void addCleanable(Cleanable obj, boolean flag)
      初期化したいオブジェクトを登録します。 オブジェクトは、Cleanable インターフェースを実装しておく必要があります。 実際に、clear() する場合は、ここで登録した全てのオブジェクトの clear() メソッドが呼び出されます。
      パラメータ:
      obj - インターフェースの実装
      flag - trueの場合、コンテキスト停止時のみclear()を呼び出す
      変更履歴:
      4.0.0.0 (2005/01/31) 新規作成, 4.3.6.2 (2009/04/15) コンテキスト終了時のみのclear()対応
    • allClear

      public static void allClear(boolean flag)
      addCleanable( final Cleanable ) で登録したすべてのオブジェクトを初期化します。 処理は、Cleanable インターフェースの clear()メソッドを順次呼び出します。
      パラメータ:
      flag - 完全終了時に、true
      変更履歴:
      4.0.0.0 (2005/01/31) 新規作成, 4.3.6.2 (2009/04/15) コンテキスト終了時のみのclear()対応
    • clearGE12

      static void clearGE12()
      GE12からCONTXT PATHをhost:port/context/で登録している物を削除します。 (web.xmlにTOMCAT_PORTを指定した場合に上記CONTEXT_PATHで登録されます)
      関連項目:
      変更履歴:
      4.1.0.0 (2007/12/26) 新規作成, 5.5.4.5 (2012/07/27) 初期起動時のDB接続先は、RESOURCE_DBID とする。, 6.4.2.1 (2016/02/05) try-with-resources 文で記述。
    • deleteGUIAccessInfo

      static void deleteGUIAccessInfo()
      アクセス統計テーブル(GE15)の再編成を行います。 データの保存期間については、システムリソースのACCESS_TOKEI_ALIVE_DAYSで指定します。 データの作成された日時を基準として、上記の期間よりも古いデータは、物理削除されます。 ACCESS_TOKEI_ALIVE_DAYSが指定されていない場合、データの削除は行われません。
      関連項目:
      変更履歴:
      5.0.2.0 (2009/11/01) 新規作成, 5.5.5.1 (2012/08/07) リソース系DBID 付け忘れ対策, 6.4.2.0 (2016/01/29) HybsDateUtil.getDatePlus() と、DateSet.getDate( String ) を利用するように修正します。