Q. 什麼是工作管理 ?
A. 工作管理函蓋控制 AS/400 負載及分配系統資源給在 AS/400 上運行之工作(工作指的是在 AS/400 上執行之程式). 工作管理定義一個工作的執行環境 : 在那裡進入系統 , 需要那些資源 , 從那裡輸出等等.
Q. 什麼因素會影響 AS/400 的工作流程 ?
A. AS/400 電腦硬體的等級(Model),處理器(CPU)速度和記憶體數量, 都很明顯的影響它的處理能力. 負載也影響處理分配工作的能力 : 如果一天之內負載過重系統的回應時間會拉長 , 此時系統績效會變差.
Q. 工作管理 與 AS/400 如何相關 ?
A. OS/400 提供許多技術讓你調整系統及控制在系統中執行之工作(程式). 這些技術就是工作管理的組成元素.
主要的工作管理元素是子系統(Subsystem). 一個子系統是一個調配工作和分配該工作執行時所須的資源 .每一套 AS/400 有許多子系統 , 分享共同的資源 , 但彼此之間卻各個獨立執行. 典型的子系統常被設定來執行同一性質的工作(程式) , 例如 線上(Interactive) , 批次(Batch) ,通信(Communication)等. 你也可以依據特殊需要建立自己的子系統或直接使用 IBM 提供的預設值.
Q. 什麼是系統值 ?
A. 你可以控制或更改系統值來設定整體系統的工作環境 (類似PC 的 Config.sys 組態檔). 系統值例如 系統日期(QDATE) , 現在時間(QTIME) , 系統機密等級(QSEVURITY) , 基本工作環境.
系統值會影響整個系統運行環境而不是對一個單一工作 , 例如更改系統日期則系統上所有工作之系統日期隨即更改.
Q. 如何更改系統值 ?
A. 使用 WRKSYSVAL (Work with System Values) 命令能列出 , 顯示 和更改系統值. 如果不知該系統值會影響什麼 , 可在WRKSYSVAL (Work with System Values) 劃面按 F1 輔助鍵 , 系統會有詳細的線上輔助解釋. 某些系統值是一修改立即生效 ; 另有某些系統值是一修改需要退出系統再從新進入系統才生效或 AS/400 需關機再開機才會生效.線上輔助可告訴你何時生效.
Q. 在那裡可找到關於系統值的資料 ?
A. WRKSYSVAL (Work with System Values) 劃面按 F1 輔助鍵 , 系統會有詳細的線上輔助解釋 , 是最好的. 另外可參考 AS/400 聖經 "工作管理" 書 Work Management book (SC41-4306 for V3R7) 列出每一系統值的詳細說明. 亦可直接於網際網路上查詢.
A. 你能使用工作管理的技術和原則 , 讓你的系統操作員比其他在系統中的使用者 , 以較高的等級執行線上作業(Interactive jobs). 系統操作員為了處理不正常的系統狀況 , 所以必須設定較高的等級 , 讓其快速處理使系統回復正常. 系統操作員能從系統中控台(System Console) 進入系統 ; 因中控台(System Console)作業會在 QCTL (Control)子系統運行 , 系統會自動給予較高的等級. QCTL 子系統使用 QCTL class 等級, 而此 QCTL 等級比其他給使用者使用的預設等級高.
你能藉由建立一個使用 QCTL 等級(亦可自行建立等級)的路由選取入口(routing entry) 讓系統操作員的線上作為擁有較高的等級. 你可以採取以下的步驟 :
ADDRTGE SBSD(QINTER) + '線上作業子系統' SEQNBR(8888) + '序號' CMPVAL(SYSOPR) + '路由資料 (routing data)' PGM(QSYS/QCMD) + '路由程式' CLS(QSYS/QCTL) '系統等級'
CRTOBD JOBD(SYSOPR) + '工作環境設定檔( job description)' RTGDATA(SYSOPR) '路由資料'
其他參數可能也是必須的. 考慮複製預設之工作環境設定檔 QDFTJOBD , 並更改路由資料.
CHGUSRPRF USRPRF(DJONES) + '系統操作員使用者屬性設定檔' JOBD(SYSOPR) '工作環境設定檔( job description)'
A. 使用系統回覆表(System reply list entries) 不必使用者回應而讓系統自動回覆印表機訊息 . 使用 ADDRPYLE (Add Reply List Entry) 命令或 WRKRPYLE (Work with Reply List Entries) 命令來設定回覆訊息之預設值 .
有兩個最一般的印表機訊息是 CPA3394 (Load form 裝紙) and CPA4002 (Verify alignment 確認對齊). 為了對所有印表機自動回應這些訊息 , 可使用下列的命令 :
ADDRPYLE SEQNBR(5) MSGID(CPA3394) RPY(I)
ADDRPYLE SEQNBR(6) MSGID(CPA4002) RPY(G)
如果只想針對特定印表機自動回應這些訊息 ,可使用下列的命令 :
ADDRPYLE SEQNBR(5) MSGID(CPA3394) + CMPDTA(PRT01 41) RPY(I) ADDRPYLE SEQNBR(6) MSGID(CPA4002) + CMPDTA(PRT01 41) RPY(G)
在建立這些系統自動回應訊息表後 , 便須要讓工作 (job) 知道它應該參照系統自動回應訊息表來回應訊息. 可使用下列的命令 : CHGJOB (Change Job更改單一工作屬性) or CHGJOBD (Change Job Description更改工作環境設定檔屬性) :
CHGJOB INQMSGRPY(*SYSRPYL) CHGJOBD JOBD(QDFTJOBD) + INQMSGRPT(*SYSRPYL)
A. 為了在防止批次工作結束時印出工作日誌必須於下列命令中指定參數 LOG(*NOLIST) :
BCHJOB (Batch Job) SBMJOB (Submit Job) CHGJOB (Change Job) CRTJOBD (Create Job Description) CHGJOBD (Change Job Description)
如果指定參數 LOG(*NOLIST) , 系統不會列印工作日誌 , 除非該工作不正常結束.
中止一個不正常的工作(job) 並且不產生工作日誌 , 可使用 ENDJOB (End Job) 命令指定參數 LOGLMT(0) :
ENDJOB JOB(jobname) + OPTION(*IMMED) LOGLMT(0)
如果你想系統產生工作日誌但不列印可使用 CHGPRTF (Change Printer File) 將工作日誌(job log) 報表轉移至未連接印表機之輸出暫存區 (output queue):
CHGPRTF FILE(QPJOBLOG) + OUTQ(outputqueuename)
同樣的技術亦可應用在線上工作(interactive jobs) . 你能於結束線上工作(interactive jobs)時可使用 SIGNOFF LOG(*NOLIST) 命令而不會產生工作日誌(job log).
Q. IBM 提供那些預設子系統和它們的功能 ?
A. QBASE 是小型 AS/400 簡化工作負擔一般性的子系統. 較大型的 AS/400 使用 QCTL支援系統中控台 (system console), QINTER 線路作業(interactive jobs), 和 QBATCH 批次作業(batch jobs). 所有系統使用 QSPL 子系統支援 印表機和其他報表作業 .
每一子系統都有一個屬性描述物件(類似 Configuration file 組態檔)定義子系統的屬性. 每個屬性描述物件在系統上是一個物件型式為 *SBSD 的物件. 子系統屬性描述物件 (subsystem description) 包括工作何時及如何進入系統 , 有多少工作可同步在此子系統執行 , 及有多少記憶體可供前述數量工作使用.
Q. 如何建立自己的子系統 ?
A. 使用CRTSBSD (Create Subsystem Description) 命令可建立一個新的子系統屬性描述物件 (subsystem description object) 和指定操作屬性 , 包括下列項目 :
CRTSBSD 命令也定義擁有多少專屬系統記憶體. 你能複製(Copy)一舊有的子系統屬性描述物件 , 再使用 CHGSBSD 命令修改屬性. WRKSBS(Work with Subsystem) 能列出所有子系統屬性描述物件 , 並可在 WRKSBS(Work with Subsystem) 劃面上 , 啟動 , 中止 , 新增 , 複製 , 修改 , 刪除子系統屬性描述物件 .
Q. 如何定義支援子系統的記憶體區塊(memory pools) ?
A. 子系統屬性除了它的操作屬性外 , 尚有從主記憶體分配給該子系統專屬記憶體 , 專供該子系統工作(jobs)使用 , 且無法分享給其他子系統使用.
每個工作均想要較多的記憶體但主記憶體資源是有限的. 為了達到可接獲的系統績效 , 必須試著平衡負載 , 系統使用 paging 技術將程式及資料從主記憶體搬進及搬出. 對於一個工作有較多的記憶體可利用 , 這搬進及搬出的動作就愈少 , 而該工作也愈快完成. 分配給子系統較多的記憶體 , 它就能處理較多的工作.
子系統的 POOLS 屬性最多可定義 10 個主記憶體區塊專供子系統使用. 每一記憶體區塊定義有一示別代號 , 記憶體區塊大小 , 可同步執行的工作數量. 記憶體區塊可以設定分享或私有. 許多子系統能執行工作於分享的記憶體區塊但只有該子系統能執行工作於該子系統私有的記憶體區塊. 實際上首先均會使用私有的記憶體區塊當不夠使用時再使用分享的記憶體區塊.
AS/400 預設 14 個已定義可分享的記憶體區塊:
與記憶體區塊相關的命令 :
CHGSHRPOOL (Change Shared Storage Pool) , WRKSYSSTS (Work with System Status) , WRKSHRPOOL (Work with Shared Pools)
Q. 為何記憶體區塊大小及同步運行於子系統的最大工作數量有時會自動更改 ?
A. 如果系統值 QPFRADJ 為 1 (開機時調整), 2 (開機時及動態調整),
or 3 (動態調整); AS/400
就會自動調整記憶體區塊大小及同步運行於子系統的最大工作數量 ,
以使系統負載績效得以最佳化.如果不希望系統自動更改這些系統績效屬性
, 將系統值 QPFRADJ 設為 '0'.
Q. 如何分配分享記憶體區塊給子系統 ?
A. 使用CRTSBSD (Create Subsystem Description), CHGSBSD (Change Subsystem Description), 或 WRKSBSD (Work with Subsystem Descriptions) 命令. 你能指定子系統將使用那些分享的記憶體區塊 , 例如 :
CRTSBSD SBSD(MYSBSD) + POOLS((1 *BASE) + (2 *INTERACT))
IBM 預設主要子系統的記憶體區塊定義如下 :
SBSD(QBASE) POOLS((1 *BASE) (2 *INTERACT))
SBSD(QBATCH) POOLS((1 *BASE))
SBSD(QCTL) POOLS((1 *BASE))
SBSD(QINTER) POOLS((1 *BASE) (2 *INTERACT))
SBSD(QSPL) POOLS((1 *BASE) (2 *SPOOL))
Q. 如何分配私有記憶體區塊給子系統 ?
A. 當建立或修改子系統描述物件時你能定義私有記憶體區塊. 為了分配記憶體給私有記憶體區塊必須設定以 K(in kilobytes) 為單位的數量. 也必須指定同步運行於子系統的最大工作數量. (子系統的最大工作數量可使用 CHGSHRPOOL (Change Shared Pools) 或 WRKSHRPOOL (Work With Shared Pools) 命令更改.) 底下是建立一個子系統使用一個 500 K 的私有記憶體區塊 , 且設定最大工作數量等於 1 ,另外共用 *BASE 的分享記憶體區塊 :
CRTSBSD(SPECIAL) POOLS((1 *BASE) (2 500 1))
在啟動後的子系統最多能分配 14 個私有記憶體區塊. 欲知更詳細資料請閱 Work Management book (SC41-4306).
Q. 什麼是控制子系統 (controlling subsystem) ?
A. 控制子系統 (controlling subsystem)是當開機時 ,
用來啟動其他子系統的一個子系統. 控制子系統 (controlling subsystem)一直保留在啟動狀態縱然使用
ENDSYS (End System) 或 ENDSBS *ALL (End Subsystem) 命令後 , 控制子系統
(controlling subsystem)仍然是啟動的.
Q. 如何找到 AS//400 上的控制子系統 (controlling subsystem) ?
A. 系統值 QCTLSBSD 定義控制子系統 (controlling subsystem) 的名字.
IBM 預設 AS/400s 的控制子系統 (controlling subsystem) 是 QSYS/QBASE .
Q. 可有其他的控制子系統 (controlling subsystem) ?
A. 許多 AS/400 的系統管理者改變控制子系統至 QSYS/QCTL. QCTL 分散 AS/400's 負載至許多子系統 : QCTL 供系統中控台, QINTER 供線上作業, QBATCH 供批次作業, QSPL 供報表作業, QSNADS 供網路作業, 和 QCMN 供通信作業.
Q. AS/400 如何管理它的負載 ?
A. AS/400 的工作類別管理定義系統如何初始化工作及配置工作站. 類別定義工作如何進入系統. 子系統支援下列的工作類別 :
CL 提供命令新增修改移除上述工作啟動工作類別.
Q. 如何使用這些工作類別於 AS/400 工作管理 ?
A. 在你能送出一個工作至一個子系統前 , 你必須定義一個工作等待暫存區 (job queue entry) , 亦即進入子系統的路徑 . 可使用 CRTJOBQ (Create Job Queue) 命令建立一工作等待暫存區物件(job queue object). 為了分配一工作等待暫存區物件至子系統, 使用 ADDJOBQE (Add Job Queue Entry) 命令:
ADDJOBQE SBSD(library/subsystem) + JOBQ(library/job_queue) + MAXACT(maximum_active_jobs) + SEQNBR(sequence_number) + MAXPTY1(MAXACT_at_priority_1) + . . . MAXPTY9(MAXACT_at_priority_9)
CL 命令 CHGJOBQE (Change Job Queue Entry) 和 RMVJOBQE (Remove Job Queue Entry) 也可管理工作等待暫存區類別.
Q. 工作站類別於工作管理中伴演什麼角色 ?
A. 工作站類別描述系統如何分配線上作業 (interactive job)至子系統.
使用者在簽入劃面輸入ID 和密碼便初始化一個線上作業 (interactive
job). 工作站類別決定那一個子系統提供資源給該初始化線上作業.
Q. 如何增加工作站類別至子系統 ?
A. 使用 ADDWSE (Add Workstation Entry) 命令增加工作站類別至子系統 :
可針對工作站名稱或型號設定
ADDWSE SBSD(library/subsystem)
+
WRKSTN(workstation_name)
+
WRKSTNTYPE(workstation_type)
+
JOBD(library/job_description)
+
MAXACT(maximum_active_jobs)
+
AT(when_to_allocate)
亦可使用 CHGWSE (Change Workstation Entry修改工作站類別) 和 RMVWSE (Remove Workstation Entry移除工作站類別) 命令.
Q. 有無工作站類別例子 ?
A. 下列是 IBM 預設工作站類別的例子:
SBSD WRKSTNTYPE AT QCTL *CONS *SIGNON QCTL *ALL *ENTER QINTER *ALL *SIGNON QINTER *CONS *ENTER
Q. 工作站類別間有無啟動順序 ?
A. 順序如下 :
Q. 如何設定子系統工作自動啟動 ?
A. 當子系統啟動時 , 使用自動啟動工作類別(autostart job entries) , 能自動啟動執行所設定的工作 . 這特別針對背景監視作業有用.
使用 ADDAJE (Add Autostart Job Entry) 命令如下 :
ADDAJE SBSD(library/subsystem) + JOB(job_name) + JOBD(library/job_description)
亦可使用 CHGAJE (Change Autostart Job Entry) 和 RMVAJE (Remove Autostart Job Entry) 命令.