|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectmy_util.Facility
ここで Facility とは、アプリケーションを構成する機能を表現する抽象的な実体を意味します。 Facility のインスタンスそれぞれは、ひとつの機能を担います。
Facility インスタンスの担う機能に対応する処理の詳細は FacilityAgent によって実装します。
インスタンスは複数の FacilityAgent インスタンスを管理することで機能の並行処理を実現できます。
インスタンスは機能の開始・中断・終了を、
FacilityAgent に関連付けたスレッドを実行・待機・停止させることで
実現します。また、これを敷衍して並行処理の並行度を動的に変更する
ことができます。
Facility インスタンスが処理要求を受け付ける要求キューとして、 Message インスタンスを 1 つ使用します。 このキューから、管理下の FacilityAgent が FacilityCommand を 読み出して実際の処理を進めます。
Facility インスタンスは、その管理下にある FacilityAgent のログ出力先と記録される情報のレベルを管理します。 ログのレベルには、致命的な障害 (FATAL)、エラー (ERROR)、 警告 (WARN)、処理経過情報 (INFO)、デバッグ情報 (DEBUG) という区分があります。
FacilityAgent
,
FacilityAgentControlBlock
,
FacilityCommand
,
Log
,
Semaphore
,
Message
フィールドの概要 | |
protected boolean |
active
機能が活性化/非活性の状態を示す |
protected java.lang.String |
agclass_name
機能の処理を実装する FacilityAgent クラスのクラス名 |
protected int |
concurrency
現在の並行度。 |
protected Log |
log
機能のログ出力先 |
protected LogConf |
log_conf
機能のログ出力先構成情報 |
protected int |
max_concurrency
並行処理を行える最大並行度。 |
protected java.lang.String |
name
機能名称 |
protected Message |
req_queue
機能の要求待ち受けキュー。 |
メソッドの概要 | |
boolean |
activate()
機能を活性化します。 |
static Facility |
attach(java.lang.String name)
既に create(java.lang.String, java.lang.String, int, int, my_util.LogConf, int) メソッドで生成された機能インスタンスを、機能名称で検索します。 |
boolean |
change_concurrency(int concurrency)
機能の並行度 concurrency を変更します。
|
boolean |
change_log(LogConf log_conf)
機能のログ情報を記録する出力先・文字エンコーディング・ ログ・レベルを変更します。 |
static Facility |
create(java.lang.String name,
java.lang.String agclass_name,
int max_concurrency,
int concurrency,
LogConf log_conf,
int resq_len)
機能の生成を行います。 |
boolean |
deactivate()
機能を非活性化します。 |
protected InspectionData |
get_agents_details()
エージェントの詳細情報を InspectionData として返します。 |
protected Timer |
get_app_timer()
この機能を所有するアプリケーションのタイマを 取得します |
InspectionData |
get_details()
機能の詳細情報を InspectionData として返します。 |
protected InspectionData |
get_details(int ser_num)
機能の詳細情報を InspectionData として返します。 |
protected java.lang.String |
get_log_delimit()
ログ出力のフィールド区切り文字を取得します。 |
InspectionData |
get_summary()
機能のサマリ情報を InspectionData として返します。 |
protected InspectionData |
get_summary(int ser_num)
機能のサマリ情報を InspectionData として返します。 |
protected boolean |
leave()
take(boolean, boolean, long) メソッドで獲得された機能インスタンスの
ロックを開放します。
|
void |
log(int log_class,
java.lang.String msg)
機能のログ情報を記録します。 |
boolean |
put_request(java.lang.Object cmd,
long timeout,
boolean insert_head)
この機能に要求を送るために要求送信元が呼び出します。 |
protected void |
set_app(Application application)
この機能を所有するアプリケーションを設定します |
protected boolean |
take(boolean sharing,
boolean blocking,
long to)
機能インスタンスをロックします。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
protected java.lang.String name
protected java.lang.String agclass_name
protected int max_concurrency
protected int concurrency
protected Message req_queue
protected Log log
protected LogConf log_conf
protected boolean active
メソッドの詳細 |
protected InspectionData get_summary(int ser_num)
ser_num
- 機能の通番
public InspectionData get_summary()
Inspectable
内の get_summary
protected InspectionData get_details(int ser_num)
ser_num
- 機能の通番
public InspectionData get_details()
Inspectable
内の get_details
protected InspectionData get_agents_details()
protected void set_app(Application application)
application
- アプリケーションprotected Timer get_app_timer()
public static Facility create(java.lang.String name, java.lang.String agclass_name, int max_concurrency, int concurrency, LogConf log_conf, int resq_len) throws java.lang.Exception
name
- 機能名称agclass_name
- 機能の処理を実装した FacilityAgent
クラスのクラス名max_concurrency
- 機能の最大並行度concurrency
- 機能の並行度の初期値log_conf
- 機能のログ出力先構成情報。
my_util.LogConf を参照のことresq_len
- FacilityAgent への応答キューのキュー長
java.lang.Exception
- FacilityAgent の生成に失敗した場合public static Facility attach(java.lang.String name)
create(java.lang.String, java.lang.String, int, int, my_util.LogConf, int)
メソッドで生成された機能インスタンスを、機能名称で検索します。
name
- 機能名称
protected boolean take(boolean sharing, boolean blocking, long to) throws TimeoutException, java.lang.Exception
sharing
- -- 共有ロックの場合は true を、
占有ロックの場合は false を指定します。blocking
- -- ロック獲得時にブロッキングするか否かを指定
します。to
- -- ブロッキングする場合のタイムアウト時間をミリ秒精度で
指定します。無制限にブロックさせるばあいは、0 を指定
します。
TimeoutException
- -- タイムアウトした場合
java.lang.Exception
- -- 上記以外の例外。Semaphore を参照のこと。protected boolean leave()
take(boolean, boolean, long)
メソッドで獲得された機能インスタンスの
ロックを開放します。
ロック機構には Semaphore を使用しています。
java.lang.Exception
- -- Semaphore を参照のこと。public boolean activate() throws java.lang.Exception
concurrency
に
一致する FacilityAgent インスタンスのスレッドの実行を開始します。
java.lang.Exception
- -- Facility インスタンスかあるいは
FacilityAgentControlBlock インスタンスの
ロック獲得・開放に失敗した場合public boolean deactivate() throws java.lang.Exception
concurrency
に一致する FacilityAgent インスタンスのスレッドを停止するために
割込みを送信します。
java.lang.Exception
- -- Facility インスタンスかあるいは
FacilityAgentControlBlock インスタンスの
ロック獲得・開放に失敗した場合public boolean change_concurrency(int concurrency) throws java.lang.Exception
concurrency
を変更します。
並行度を下げる場合はサスペンド割込みを、
並行度を上げる場合はレジューム割込みを
適切な数の FacilityAgen スレッドへ送信します。
concurrency
- -- 変更後の並行度
java.lang.Exception
- -- Facility インスタンスかあるいは
FacilityAgentControlBlock インスタンスの
ロック獲得・開放に失敗した場合public void log(int log_class, java.lang.String msg)
Loggable
内の log
log_class
- ログ・レベルを指定します。Log クラスを参照のことmsg
- エラー・メッセージを指定しますprotected java.lang.String get_log_delimit() throws java.lang.Exception
java.lang.Exception
- 機能のロック獲得に失敗した場合public boolean change_log(LogConf log_conf) throws java.lang.Exception
Loggable
内の change_log
log_conf
- ログ出力先構成情報。my_util.LogConf を参照のこと
java.lang.Exception
- Facility インスタンスのロック獲得に失敗
した場合public boolean put_request(java.lang.Object cmd, long timeout, boolean insert_head) throws InactiveFacilityException, TimeoutException, java.lang.Exception
cmd
- 要求内容と応答内容を保持する FacilityCommand
インスタンスtimeout
- タイムアウト時間をミリ秒精度で指定しますinsert_head
- cmd を機能の要求キューの先頭に挿入
するか否かを指定します。
InactiveFacilityException
- 機能が非活性の場合
TimeoutException
- タイムアウトが発生した場合
java.lang.Exception
- 上記以外の例外
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |