2.1.1 System Operator Environment
2.1.3 Work with Licensed Programs
2.2.2 Control Language Command
3.1.2 Where Messages Come From
3.1.4 How Messages Queue Are Created
3.1.7 How Messages Are Displayed
3.1.10 User and Workstation Messages Queues
3.1.11 Controlling Message Delivery
3.1.12 Allocating QSYSOPR Message Queue
4.3.1 What is the integrated file system?
4.3.3 Stream Files versus Database Files
4.3.4 Integrated File System Structure
4.3.5 Locating Objects in the Integrated File System
5.1.5 What Is a Job Description
5.1.6 How User Profile Relates to a Job
5.1.7 Starting and Ending a Job
5.1.11 Subsystem
Configurations Shipped by IBM
5.1.13 Interactive versus Batch Job Steps
5.2.2 Job and Job Queue Commands-Overview
5.2.3 Work with Submitted Jobs
5.2.5 Work with Jobs On Job Queue
5.2.6 Work with Job Schedule Entries
5.2.8 Work with Signed-on Users
5.2.9 End a User Job Abnormally
5.3.1 AS/400 Printing Elements
5.3.2 AS/400 Printer Load Balancing
5.3.3 Job Default Output Queue and Print Device
6.1.6 Power On and Off Tasks Menu
6.2.2 Steps prior to Power down
6.2.4 Using the Power Pushbutton
7.1.3 Security Related System Values
7.1.9 Authorization List versus Group Profile
7.1.14 What Information Is Stored Where-Review
7.1.15 Security Commands Review
7.3.1 Security Wizard Overview
8.1.5 Information
That Can Be Saved and Restored
8.2.2 Operational
Assistant Backup
9.1.3 Local Area Network(LAN) Attached
9.1.4 Remotely Attached - Remote Workstation Controllers
9.1.5 Personal Systems Attachment Summary
9.1.6 Creating Device Description
9.1.8 Relationship of Objects-Hints and Tips
9.2.1 Monitoring Devices - QSYSOPR Message Queue
10.2.7 Automated
Problem Management
10.3.1 Cleaning Up Your System
10.3.3 Functions Automatically Cleaned Up
10.3.4 Operational Assistant Cleaned Up
10.3.5 Reorganize Physical File Member(RGZPFM)
10.3.6 Clear Save File(CLRSAVF)
10.3.7 Reclaim Storage(RCLSTG)
10.3.8 Reclaiming Spool Storage
10.3.9 Resetting Message Queue Size
11.1.2 Program Maintenance Strategy
11.1.4 How to Determine Available PTFs
11.1.10 Manual PTF Installation
11.1.11 Licensed Internal Code PTFs
11.1.12 Verify PTF Installation
随着AS/400在全球的应用和推广,要求学习AS/400技术的学生不断增加,希望参加技术认证的学生人数越来越多,但我们却无法满足学生对相关教材的需求,从而影响教学效果和考试通过率。我们开发的IBM iSeries400(AS/400)系统操作与管理网络课程的目的是让学生掌握AS/400计算机的基本知识,系统操作与管理,拓宽学生的知识面、增强其从业技能。同时为参加认证考试的学生提供方便的学习环境及丰富的参考资料,模拟考题,从而满足学生学习的需要和提高认证通过率。
教学目标:通过学习使学生能完成AS/400操作员的功能,具体如下:
教学内容:针对教学目的,组织了以下教学内容:
课程特点:该课程是针对AS/400 Associate System
Operator ( 052 )、AS/400 Professional System Operator
(053 )认证考试的,在内容选择上涵盖了052、053的考试大纲,但同时为了顾及课程的系统性、实用性,有些内容或讲解深度已超出考试大纲。内容的安排具有一定的顺序性,学习时尽量以章节的先后次序进行。除了第一章内容外,其它部分的实际操作性非常强,在学习的同时一定要结合上机操作,在理解相关概念、术语、功能等理论知识的基础上,通过上机进一步熟悉其操作与应用。参加认证考试的学生在全面学习了解课程内容的基础上,应结合考试大纲有重点的进行学习,应掌握每一章列出的常用命令(包括命令的重要参数),认真完成样题和模拟考试题。
第一章
AS/400系统概况

AS/400是当今世界上最流行的中小型、多用户商业计算机系统,在多用户服务器领域里,始终保持着最畅销的地位。目前AS/400在全球的装机量已超过75万套,覆盖150多个国家,支持40多种语言,有近1万个商业伙伴和独立软件商,3万多个商业应用。广泛应用于流通、金融证券、制造、运输等各个行业。
AS/400e及其之后的产品系列,融合了Java、Domino、服务器整合与逻辑分区、Where sphere和商业智能等许多业界最新技术,并增加了对欧元的支持,帮助用户更有效地将企业产品和服务推向市场,在新兴的电子商务领域获益。
本章主要介绍了AS/400先进的体系结构-TIMI、集成性和单级存储技术,揭示了AS/400成功的奥秘。同时也对AS/400的特性和发展历史做了介绍。

|
|
Figure
1-1. AS/400的发展历史 |
为了深入了解一个系统,必须熟悉它发展的历史和背景。多数的计算机系统是从原有的系统基础上发展起来的。AS/400的发展历史:
◇ 1969年6月发布System/3(Batch
machine)
◇ 1975年1月发布System/32 (用于小型商务办公环境)
◇ 1977年4月发布System/34
◇ 1978年10月发布System/38(第一代AS/400,商业上失败,技术上成功)
◇ 1983年5月发布System/36(商业上非常成功)
◇ 1988年6月发布AS/400 B型号(Application
System/400,第二代AS/400)
◇ 1994年5月发布AS/400先进系列/服务器(Advanced System/400,第三代AS/400)
◇ 1995年6月发布AS/400 Power PC 先进系列/服务器
◇ 1997年8月发布AS/400e系列
◇ 1999年2月发布AS/400 e 服务器170、7XX
◇ 1999年7月发布AS/400e Domino 专用服务器(莲花宝箱)
◇ 2000年10月发布iSeries 400,包括270、820、830、840及IBM莲花宝箱(DSD)

|
|
Figure
1-2. iSeries400 |
iSeries 400通过紧密集成硬件、软件、中间件和操作系统提供能够满足不同业务需求的高性能、可靠和易于使用特性。从e系列开始,在电子商务大舞台上开始扮演更为重要的角色。它可以提供扩展业务确保电子商务优势所需的技术和工具。它的突出特点有:
● 卓越的性能,不断获得各种荣誉和认可,全面实现64位处理,先进的体系结构,最领先的SOI芯片技术;
● 卓越的可靠性和可用性,系统可提供99.97%的可用性,使iSeries成为商业关键事务处理的首选服务器平台;
● 高度集成的系统环境,使用户不需要太多的系统管理员就能保证其应用平稳地运行;
● 严密的安全防范系统,荣获美国联邦政府定义的商业计算机最高安全性级别C2级认证,堪称世界上"最安全"的计算机系统。从来没有发现过病毒。
● 开放标准兼容性,使用户把运行在不同平台上的业务系统和数据平滑地连接在一起;
● 简单易用,使用户(尤其是新用户)很快就能掌握它的系统管理和应用程序开发。
● 允许在一台服务器上安装Linux、Java、Windows2000和Domino等多种应用。
● 在系统中可以配备16台PC服务器Netfinity,可以运行多种不同的操作系统,并公享主机系统的资源。
● 是唯一一种能直接(固有)支持多种不同文件结构,如PC文件、Unix文件、Netware文件、Domino文件、ASCII文件、EDBCID文件的系统。

|
|
Figure
1-3. AS/400的先进体系结构 |
面向处理机的体系结构 面向API的体系结构 高级机器的体系结构
在八十年代初,AS/400的研制者,设计师们就预见到计算机技术的发展将会一日千里,用户对计算机需求也将永无止境,因此设计出来的计算机不是功能应如何齐全,实际上也不可能设计这样一个可永远满足用户需求的计算机,而是应设计一个无限灵活的计算机,它可以随时跟上计算机前沿的发展,容易接纳计算机领域的新技术,同时又不会丢掉老用户已有的投资,使升级后的计算机系统真正做到百分之百地兼容在旧系统上已开发的应用程序。这样的计算机才会经久不衰,具有生命力、竞争力。什么样的计算机才能达到这个要求呢,那就是满足这种要求的计算机,应该有一种高级的接口,这种接口既独立于硬件,又独立于软件,是一个逻辑上的(而不是物理上的)系统接口。任何新技术的添加,只是这种接口的延伸和接口内部实现的改变,而不会对使用这种接口的程序产生什么影响,这就是AS/400体系结构的设计初衷。TIMI技术就是这个高级接口的具体实现。
从上图可以看出TIMI层(以下简称MI层)是一个真正的独立层,它将OS/400,应用程序与MI层下方的硬件以及与硬件有关的软件(LIC层)完全隔离开来。底层硬件技术的更新完全被MI层下方的软件所吸收,不会对MI层上方软件产生影响,MI层上方软件可以不加任何改变,就可受益于MI层下方更新的硬件新技术。
MI层面实际上是为AS/400中所有应用程序和OS/400系统软件的接口作了一种形式化的定义,提供了一个完整的API集(APIs),所谓"完整"体现在任何一个MI层上方的应用程序或系统程序都不可能绕过这个APIs直接去访问MI层下方的软件和硬件。另外这个APIs是可以扩充的,可随时加入一些标准化组织(例如POSIX)指定的API,并且这种扩充是没有限制的。例如,在OS/400 V3R1中加入了支持Single UNIX Specification API的功能,这样一些UNIX的应用程序就可以被移植到AS/400上。当AS/400采用一些先进的硬件技术时,可能要修改或增加一些相关的API,修改也只是在MI层下方的实现。在MI层从不执行删除API这一操作,旧的API被完整的保留下来,正因为如此,一些十年前开发的应用程序可以不加任何修改地运行在当今AS/400系列计算机上,TIMI技术使得AS/400成为当今计算机领域中保护用户投资的典范。
MI层提供的APIs,我们称为MI指令。这些MI指令是不能直接执行的,要先将它们编译成机器指令,也不能将MI指令集算成一种高级语言,而应看做是高级语言编译之后生成的中间结果,如下图所示。

|
|
Figure
1-4. MI指令 |
MI指令的操作数有两类:立即数和对象(Object)。立即数即传统的位和字节操作数,对象是一种数据结构,是一个封闭的整体。在使用对象时,只有将对象视为一个整体进行操作的指令才是有效的。因此应用程序和MI上方的系统软件完全不必了解对象的内部细节(这些细节都被封装在对象内部,对外界透明),对象的内部细节有任何改变也不会影响到那些对其进行操作的MI上方软件,这就使得这些软件独立于底层的数据结构。
与常规的机器界面指令不同,在MI指令的操作数中虽保留了立即数,但却没有了寄存器,物理内存空间,I/O空间等概念,倒是多了对象这个些概念。在MI中定义了许多种对象类型,其中大部分都是一些结构复杂的数据结构。一个最重要的MI对象类型称为Space,Space可以简单的理解为一组与硬件无关的字节序列。当一个AS/400程序要使用内存时,它可以使用Space。例如,AS/400的编译器(Compiler)在创建一个程序模板(Program template)时,必须要把这个程序模板放在某一个地方,这时就把它放在一个Space中。
正是有了这种TIMI技术,使得AS/400可以最及时地采用计算机业界的先进技术,成为IBM公司展示自己新技术的橱窗。例如,AS/400是第一个采用

|
|
Figure
1-7. AS/400功能划分 |
集成是指将完成不同功能的程序模块集合在一个有机的整体中。在这个整体中除含有操作系统功能外还有网络通信功能,数据库管理功能,语言支持功能等。将它们作为一个整体来设计的优点是代码量少,执行效率高,安全性好,易于安装、维护和使用,同时也避免了功能上的重复和不同厂商产品之间的缝隙问题引起的一些争端。当然这种集成性所引起的不利因素也是有的,那就是系统的灵活性会有所下降。
AS/400是一个最典型的集成的商用计算机,它把计算机系统通常要用到的一些功能如网络通信功能,数据库管理功能,安全管理功能完全集成在AS/400操作系统中。这种集成系统的整体功能远远胜于各部分功能的简单迭加。使用各种功能的用户接口都是一致的,因此在AS/400上开发应用会节省更多的人力资源、财力资源。需要的维护人员也比其它计算机系统少,这是AS/400在业界获得成功原因之一。AS/400集成系统中含有对各种网络通信协议和通信设备的支持,如TCP/IP协议,异步传输控制协议(ASYNC),二进制同步传输协议(BSC),同步数据链路控制协议(SDLC),高级数据链路控制协议(HDLC),X.25协议等几乎所有目前在市场上流行的通信协议及各种网络通信适配器。AS/400支持几乎所有的TPC/IP应用,Internet应用。
在OS/400中还含有一个功能强大的数据库管理系统DB2/400,这是一个全功能的开放性的关系数据库系统,是IBM DB2家族中的一个成员,目前这个DB2/400已升级到DB2 UDB for AS/400,它除了支持原有DB2/400数据库中存储过程(store procedure),参照完整性(referential Integraty ),触发器(trigger),二阶段提交(two-way commitment)等重要功能外,还增加了对于多媒体信息,对象型DBMS,试算表,虚拟文件等方面的支持。另外在OS/400 V4R4版本中还增强了数据库查询性能,SQL连接能力,并行处理能力等。
由于AS/400的操作系统是由OS/400与LIC组合而成,整个集成的系统所提供的功能根据其与硬件的关系不同,使用频率不同,对安全的要求不同而被分别放在不同的层面上。上图显示了各功能模块所处的位置。上图中可以看出,CL部分是直接面向用户的,完全处于MI上方;工作管理(work management)的职责主要是对作业的管理,与硬件关联不大,所以大部分位于OS/400中;设备管理部分有些和硬件关系十分密切,如设备的驱动程序等要放在LIC层,而那些对设备进行监控的部分放在OS/400中实现;安全部分虽然与硬件完全独立,但为了提供更高级别的安全保护,还是把它的大部分功能放到LIC层实现。此外有些功能与硬件并无多大关系,但对系统性能举足轻重,也将其放在LIC层实现。还有一些功能是分散在OS/400和LIC中的。由于数据传输部分与磁盘驱动方式和数据传输方式密切相关故在LIC中实现,文件定义部分与硬件无关在OS/400中实现,文件中的成员(member)定义与磁盘有一定关联在LIC中实现更好些。有些功能很难确定在LIC中还是在OS/400中实现更合适,AS/400总是尽可能地进行层次划分。

|
|
Figure
1-8. AS/400的单级存储结构 |
AS/400又一特征就是它的存储管理方法。它采用了单级存储(Single-level store)结构对存储器进行管理。它将系统中所有的存储器,即所有主存(main storage )和辅存 (Auxiliary storage )看成是一个大的存储器,这个大存储器提供的存储空间相当于机器的寻址能力,从开始的48位寻址空间到今天的64位寻址空间,近几年内渴望实现128位寻址空间。这个诺大的虚地址空间给用户尤其是程序员带来了极大的方便,他们所面对的就是一个盛装对象(Objects)的大容器,只要知道了一个对象的名称和类型就可以访问这个对象,完全不必关心所访问的对象存放在哪个盘上,也不必考虑存储管理等繁琐问题。至于内外存之间信息如何交换以及为提高对象的访问效率而将一个对象的内容分散存放到几个硬盘上,对用户是完全透明的。
事实上,在MI上方的任何程序(包括OS/400,应用程序,编译器等)都看不到这个单级存储结构中的实存部分(内存和外存),呈现在他们面前的只是一个偌大的虚存, 每个AS/400 对象占用这个虚存中的一些虚地址。当用户使用对象的名字和类型访问它时,MI层上方的程序可以快速地将这个对象的名字映射成它的虚地址。由于MI层上方用户编程时,不再区分内存和外存,只是针对这个虚存编写程序,因此可使得编写程序所需的指令数目大大减少。当然,负责系统性能管理的人员用WRKSYSSTS命令或WRKDSKSTS命令还是可以看到一些关于磁盘的信息的,例如磁盘的使用率,忙闲情况,缺页率(page Fault)等。
对象总是要存储在磁盘上,并且在使用时需将其装入内存的。如何将对象的虚地址映射到磁盘上的实地址或内存的实地址是在MI层下方实现的。AS/400将内存分为大小相等的一些页面帧(page frame),在64位AS/400系统中,页面帧的大小为4096字节(4KB),存储在磁盘上的对象被划分为一个个大小与页面帧相等的页面(page)。一个大的对象由许多页面组成,这些页面在虚存中占用一些连续的地址,但在实际存放时,可能被分散到几个硬盘上,这样做可以提高对对象的读写速度。当处理机要访问的一个对象时,可以将该对象的部分页面从磁盘装入内存的页面帧中,MI下方的地址转换机构通过查询驻留在内存中的一个页表(page table)实现虚实地址转换,如果发现一个虚地址对应的页面不在内存中,就报告页故障(page fault),然后由内存管理程序负责将这个页面从磁盘调入内存。硬件在查询页表时使用的是Hashing算法。
总之,AS/400的单级存储结构不仅给编程用户提供了一个相当大的存储空间,同时也将用户从繁琐的存储管理中解放出来,减轻了用户负担,提高了工作效率。
在OS/400 V4R3及其以后版本中,已把AS/400的单级存储的单一地址空间由原来的内存、硬盘推广到磁带库,系统的存储管理功能可按用户自定义的规则,自动透明地管理分布在磁盘与磁带库中的数据。

|
|
Figure
1-9. AS/400的硬件体系结构 |
AS/400是一个多CPU系统。一个系统处理器模块包含多个CPU,分别用于系统管理、内存管理、进程管理等,每个CPU都包含一个微内核,将多个CPU合起来作为一个处理器,通过微内核间的通讯可以平衡各个CPU间的工作量。现在的CPU采用Power Pc技术。
I/O采用I/O通道技术。I/O总线主要采用SPD总线标准,总线传输速率为266Mbps或1Gbps(对RISC机)。系统可以连接多达19条SPD总线,每条SPD总线最大可连接32个I/O设备。SPD总线可以是排线,也可以是光纤。排线采用32位data lines,4位parity lines,和若干位控制信息线。异步传输。而光纤则采用单线串行传输。
BCU (Bus Control Unit)主要用于控制SPD总线,负责总线仲裁、优先权判断等。IOBU(I/0 Bus Unit)实际上是一个IOP,负责处理所有的I/O功能,而且本身包含内存,实际上是一个微机系统,可以运行不同的操作系统(如,OS/2,Windows,WNT,DOS…)。如果把系统处理器也看作是一个IOP的话,那么系统中任何两个IOP都可以进行通讯,形成主-从多CPU系统。发起通讯的CPU为master,被呼叫的CPU为slave.任何两个IOP之间都可以进行消息传输。除消息操作以外,还可以进行存储器操作。存储器操作只能在主存和IOP内存之间进行,而不能在一个IOP内存和另一个IOP内存之间进行。存储器操作都采用DMA方式。
本章总结

AS/400之所以成为全球使用最广泛的中型商用计算机,一个重要的原因是其先进的体系结构能够不断地吸引融合最新的技术。本章主要介绍了AS/400的先进的体系结构-TIMI、集成性和单级存储技术,揭示了AS/400成功的奥秘。同时也对AS/400的特性和发展历史做了介绍。本章内容不在认证考试范围之内。

有两种类型的AS/400用户接口,一种是字符界面的接口,通常称为绿屏(Green Screen)接口;另一种是在PC机上实现的图形用户接口(GUI) - Operations Navigator。
绿屏接口是OS/400传统的用户接口,在AS/400的字符终端上只能使用这种接口。在绿屏接口中,在命令一级用户可使用AS/400提供的两种接口访问系统功能:菜单(Menu)和CL(Command
Language)命令。如果用户非常熟悉Windows X界面,希望也能像操作Windows界面一样对AS/400进行操作,而不必像在绿屏方式下需记忆太多的内容,就可以通过在PC机上使用Operations-Navigator 功能来实现所求。通过Operations Navigator,用户完全可以用鼠标拖曳或点击方式实现对OS/400的控制和管理请求。本课程主要介绍前者的功能,后者的使用比较简单,几乎不作介绍。
本章内容是操作AS/400系统的基础入门知识,包括系统接口,CL命令和帮助功能等内容。

|
|
Figure
2-1. System Operator Environment |
系统操作员应该了解连接在系统上的每一个东西,并了解发生在系统上的所有活动。作为系统操作员,主要操作设备有控制台、磁带机及系统打印机。
对于AS/400系统,系统控制台System console不是一个特定的设备,而是离系统单元最近的一个工作站,系统操作员消息队列QSYSOPR分配给这个工作站,用于监视系统、回应消息及对设备(如系统打印机,磁带机等)进行操作。
系统操作员应该具有以下职责:
1.启动和停止系统。
2.是操作打印机的专家。
3.回答系统操作消息及来自其他用户的操作消息。
4.运行作业及监控作业。
5.诊断故障及处理故障。
6.定期备份系统。

|
|
Figure
2-2. Software Overview |
Operating System (OS/400)
Programming Support: AS/400 Languages
Application Support
Licensed
Internal Code (LIC)
除了了解连接在系统上的设备及如何操作它们之外,也应该熟悉系统软件(或程序)。如图所示,在AS/400系统上主要有四类程序,从底层向上依次为:内码(LIC)、OS/400、编程支持及应用支持。上层程序建立在底层程序的基础上,即OS/400需要LIC,编程支持需要OS/400和LIC,应用支持需要LIC、OS/400及编程支持(多数情况下)。

|
|
Figure
2-7. Work with Licensed Programs |
在命令行输入GO LICPGM命令,可以显示Work with Licensed Programs菜单。通过这个菜单选项,用户可以完成显示、安装、删除、保存、恢复特许程序及观察有关特许程序的历史信息,也可以处理第二语言(Seconday Language)和补丁程序(PTF)。
另一个用来标识和处理已安装许可程序的命令是DSPSFWRSC,这个命令允许观察,打印已经安装在系统上的许可程序,也可以将此命令的执行结果输出到一个输出文件(output file)中。
Menu Entry List Information
AS/400的屏幕显示格式:
绿屏接口是OS/400传统的用户接口,在AS/400的字符终端上只能使用这种接口。在绿屏接口中, 在命令一级用户可使用AS/400提供的两种接口访问系统功能: 菜单(Menu)和CL(Command Language)命令。系统的屏幕显示格式有四种: 菜单、 输入表项、 列表、信息。
1.
菜单(Menu)显示格式
菜单适合于AS/400的普通用户和初学者。每个菜单上有若干个菜单选项供用户选择。菜单界面一般由标题、菜单名、选项列表、命令行、功能键和消息行组成。 参考图
为了能够显示和使用某一个菜单,一种方法是可以通过在菜单中一级一级地选择,直到出现所需要的菜单选项;另一种方法是通过GO命令来显示菜单。
有几个重要的菜单是系统工作人员经常使用的,即: MAIN,SYSTEM,ASSIST,USER 。普通用户使用较多的菜单是USER。
AS/400还提供一个特殊的菜单—— 系统请求菜单(System Request Menu) 可以用来完成用户工作过程中的临时任务,如显示当前作业、发送消息、显示系统中的用户等。该菜单可以通过 Shift(or Alt) + Sys Req 或 Enter 进行访问。
在使用菜单的过程中有几个常用的功能键:
F3=返回初始状态的菜单
F12=返回上一级菜单
F16=跳到系统主菜单,相当于执行Go Main命令
F23=将当前菜单设为用户的初始菜单
2.
输出表项(Entry)显示格式
在这种显示格式中,会有许多下划线,只有光标处于下划线上方,用户的键盘输入才会有效,这种显示格式主要用于提示用户输入一些数据,最常见的是输入某一条CL命令的参数值。 参考图
3. List显示格式
这是一个类似于二维表格的显示格式,在这个表格中的每一行表示一个实体,每一列表示实体的某一属性值。 参考图
4. Information显示格式
这种显示格式主要用于显示大量的信息,以便用户查看。在这种显示格式中,用户只能按提示的的一些功能键但不能输入命令和选择操作选项。 参考图
Control Language
Control
Language Command structure
Where to enter a command
CL Command prompting
Function key: F11
Conditional Parameters
Free Format Method
Call
QCMD
How to find a command
Special
Characters and Function Keys
命令是AS/400和使用者之间联系的一种方式。在OS/400系统中,大约有1500多条CL命令。命令虽然很多,但很有规则,几乎每一条CL命令都是由两部分组成:操作和操作的接受者,是典型的动词+宾语结构。 命令的结构见图
参数值的输入方式:
(1)关键字格式(Keyword Form)。
CL命令的每一参数都用该参数的关键字(参数值)格式给出。
(2)位置格式(Positional
Form)。
这种格式只需要给出参数值,不用输入关键字,但参数值的顺序不能颠倒。
CL命令的参数大部分都有缺省值,如果某一参数的值为缺省值,可在此位置上用*N表示。
(3)参数提示格式(ParameterPrompting)。
这是用户最常使用的参数值输入格式,它不需要用户去记忆参数的关键字或参数值的前后顺序。当键入CL命令并按F4功能键后,系统就会进入参数提示屏幕,这时只需按照系统提示,键入参数值就可以了。 参考图
有时候用户要请求系统完成一项功能而又记不住该功能对应的CL命令,怎样才能快速查找到这条CL命令呢?OS/400中提供了许多菜单供用户查找CL命令用。这些菜单的Menu ID一般都是CMD开头。例如,所有的Create命令都可在 CMDCRT 菜单中找到,用户可以在CL命令提示行中键入 GO CMDCRT 或CRT* 进入到这个菜单。若要查找与FILE有关的CL命令,可进入CMDFILE菜单。另外有一个菜单MAJOR是所有CL命令菜单的主索引菜单,从这个菜单入手可找到所有的CL命令。 参考图
For a list display, you can position the cursor
anywhere within a column and press the Help key(F1) to cause help information
for just that column to be displayed.
把光标放在你想显示帮助信息的地方,按F1键就可以看到相应的帮助信息。
通过功能键F1,用户可以获取如下一些帮助功能:
1.
通用帮助(General Help)。
对整个当前菜单,或整个CL命令进行帮助。 参考图
2. 字段帮助(Field Help)。
对光标所在位置的当前字段进行帮助,这个字段可以是一个菜单选项,一个命令参数值,一个实体的属性,一个操作选项,或一段错误消息的简单表示等。
3.
超级文本帮助(Hypertext Help)。
在帮助屏幕显示格式中,如果有一些名词或名词短语是高亮度显示,表示这是一个链接指针,它指向另一段更详细解释这个名词的文本信息,用户可将光标移到这个名词上按Enter键进入下一屏,进行更详细的了解。
4.
阅读书籍。
在OS/400种有一个程序Infoseeker,它是IBM
BookManager READ产品家族在OS/400上的一个实现。用户在购买AS/400计算机时,往往只收到很少的几本联机手册,大部分书籍存储在CD-ROM的软拷贝库中,使用 RSTSHF(Restore Book Shelves)CL命令,可以将CD-ROM中的电子书籍安装在AS/400的硬盘上。为查阅方便,这些书以电子书架(BookShelves)方式组织起来。PC机用户也可以通过点击方式来直接阅读这些存放在CD-ROM上的AS/400电子书籍。
执行Infoseeker程序,用户可以打开OS/400中的一个电子书架,然后再打开电子书架上的一本书进行阅读。还可以进行超级文本方式查询,或打印某一个标题及内容。另外用户也可建立自己的电子书架,将一些常访问的书放到这个书架中。由于字符终端上不能显示书中的图片,这时会在屏幕上出现图片超级文本提示,用户可将这个标题打印出来,以便查看该图,也可以将含有该书的CD-ROM放在PC机中进行阅读。

|
|
Figure
2-29. GUI Interface |
通过Operations Navigator,用户可以用鼠标拖曳或点击方式实现对OS/400的控制和管理请求
如果用户非常熟悉 Windows 95/NT 界面,希望也能像操作 Windows 界面一样对AS/400进行操作,而不必像在绿屏方式下需记忆太多的内容,就可以通过在PC机上使用 Operations-Navigator 功能来实现所求。通过 Operations Navigator 用户完全可以用鼠标拖曳或点击方式实现对 OS/400 的控制和管理请求。
Operations Navigator 最初是嵌入在
Client Access for Windows 95 V
在 Client Access for Windows95/NT
V3R
![]()

本章总结

本章内容是AS/400操作的入门知识,在全面了解的基础上重点掌握以下内容:
1. 命令的结构、组成规律,命令的提示(F4、F10、F9),参数格式、命令的查找方法。
2. 了解24个功能键,并重点掌握F1、F3、F4、F5、F9、F10、F11、F12、F16及F23功能键的使用。
3. 学会系统帮助功能的使用。在AS/400系统上,帮助键(F1)是对光标敏感的,在任何需要帮助的地方都可以用F1。
4. 掌握两个菜单的使用:System Request 菜单1-7选项的使用,Operational Assistant(OA)的功能及使用。
5. 用GO LICPGM命令显示The Work with Licensed Programs菜单,在此菜单上用户可以完成许可程序的显示、安装、保存、恢复和观察历史信息等操作。

消息机制是AS/400最重要的通信手段。无论是工作站之间的通信,工作站与系统程序或应用程序之间的通信都是通过消息机制来实现的。在AS/400计算机系统中,发送的消息总是被送往消息队列中等候处理,直到用户处理完毕将消息删除。有了消息队列,即使用户不在机器上工作,消息也不会丢失,也不必对到来的消息做即刻处理。
本章介绍了信息队列等有关概念和怎样发送、查看、删除和答复信息。
通过本章学习,要求掌握发送,查看、删除、答复消息的方法,理解信息队列的概念和作用,并能够指定其传送模式。
A
message is a communication sent from a person or program to another person or
program.
There are two types of message:
Informational -Not
requires Reply
◇Manufacturing
program completed successfully.
◇System
shutdown at 9:00 PM.
Inquiry -Requires
Reply
◇Are
you finished with the report?
◇Do
you have Licensed Program tape?
◇Verify
alignment on device PRT01. (I C G N R)
在AS/400系统上,工作站用户之间,系统操作员和工作站用户之间,程序和工作站用户之间都是用消息进行通信的。
作为系统操作员,经常发送两种类型的消息:
信息型(Informational): 这类消息是不需要回答的。发送方只是把一定的信息告诉对方。在发送此类消息时,应设定类型标志符为*INFO。
询问型(Inquiry): 此类消息是需要接受方回答的,发送方根据收到的应答再决定下一步的活动。在询问型消息中,也可以携带有信息型消息。询问型消息的标志符为*INQ。
发送消息的每个命令都有参数(MSGTYPE)来控制消息的类型。默认情况下,发送的是信息型(*INFO)消息。

|
|
Figure
3-1. Where Messages Come Form |
Messages can come
from:
Other users (including the system
operator)
System programs
Application programs
用户之间、系统操作员与用户之间、应用程序和系统系统程序与用户之间都是用消息进行通信的。发送到用户的消息可能来自于:其他用户(包括系统操作员),系统程序,应用程序。如图所示来自系统操作员、系统程序及应用程序的信息型消息;来自其他工作站的询问型消息。

|
|
Figure
3-2. What is a Message Queue? |
Message are always
sent to message queue.
A message queue is similar to a mailbox.
消息不是直接发送给用户或终端的,而是发到用户或终端的信息队列里。消息队列是一种类型的对象,类型标识符为*MSGQ。信息队列的作用就如邮箱一样。邮箱先保存邮件直到收信人有空领取。消息队列的作用也一样,也许接受方无法立即读取消息,所以消息先发到消息队列里保存起来直到被读取。

|
|
Figure
3-3. How Message Queues Are Created |
A message queue
can be created whenever:
1 A workstation (display) is described
(device description is created)
2 A user (profile) is described (created)
3 IBM supplied
4 using CRTMSGQ command
消息队列可通过下面的途径创建:
1.随终端的描述文件一起生成 当用CRTDEVDSP命令建立设备描述文件时,系统会自动为终端生成一个与终端同名的消息队列。
2.随用户描述文件一起生成 当用CRTUSRPRF命令建立用户描述文件(UserProfile),指定用户的消息队列,系统会自动为用户配置一个消息队列。若非特别指明,此消息队列与用户同名。指定的用户消息队列在用户第一次登录系统是被创建。
3.随操作系统OS/400一起提供 系统操作员消息队列QSYSOPR是在系统初次配置时由系统自动创建的。
4.用CRTMSGQ命令创建 用CRTMSGQ命令创建的消息队列不与任何指定用户或工作站相关,它是用来满足应用需求的。例如,图所示的ARDEPT队列作为艺术部门保留消息用。
Sending
an informational or inquiry message:

|
|
Figure
3-4. Sending an Informational or Inquiry message |
Sending and
Displaying Messages:

|
|
Figure
3-5. Sending and Displaying Messages |
任何用户都可以用SNDMSG命令来发送信息型或询问型信息给:
◇ 一个或多个用户消息队列
◇ 一个或多个工作站消息队列
◇ 所有当前活动的用户
◇ 系统操作员消息队列(QSYSOPR)
◇系统历史日志(QHST),QHST包含所有系统活动的信息,如作业的运行及中止、设备状态、错误检测等.
在用SNDMSG命令时必须指定TOUSR或TOMSGQ参数,但不可两个参数同时指定。信息型消息(*INFO)一次最多可发到50个消息队列里。询问型消息(*INQ)只可一次送给一个用户或终端。RPYMSGQ参数用来指定应答消息被送的队列。默认下,其应答信息发回到发送方的工作站消息队列里。
用DSPMSG命令显示消息,参数为MSGQ(*WRKUSR)时,先显示工作站消息队列中的消息,再按回车键时才显示用户的消息,若工作站消息队列中没有消息,则直接显示用户消息。参数为MSGQ(*WRKSTN)时,仅显示工作站消息队列中的消息。在参数MSGQ中可指定想查看的消息队列名。
用DSPMSG命令去查看消息队列时,对需要回答的消息在应答线上输入回答信息,消息处理完后,可用相应的选项(Option)或功能健将其删除。但只有获得该消息队列的作业才允许做消息删除操作。消息队列任何时候只能被分配给一个作业。

|
|
Figure
3-7. Sending a Break Message Messages |
A break message temporarily interrupts one or
more user's current jobs and displays the message directly on their displays.
SNDBRKMSG
中断消息会打断用户的当前工作并直接显示在屏幕上。例如,系统操作员可以通过中断消息来告知其他用户一些重要消息(如系统将在10分钟后重启)。因为中断消息会打断用户的当前工作,所以只当有重要消息发送时才可使用。
用SNDBRKMSG命令可向一个或所有的工作站消息队列(*ALLWS)发送信息型或询问型的中断消息,但不能发到用户消息队列里。在有用户登录的工作站上,消息直接显示在屏幕上;若当前没有用户登录,消息会先保存在消息队列中,一旦有用户登录会自动显示在屏幕上。

|
|
Figure
3-9. How Messages Are Displayed |
消息显示方式:
1.用户消息队列和工作站消息队列可以通过DSPMSG或WRKMSG命令或OA采单的选项3查看。
2.中断消息会打断用户当前作业直接显示在屏幕上。消息可以是信息型或询问型。它常常是系统操作员或其它工作站用户所发送。
3.消息行是系统或应用程序与您进行通信的地方。消息行接收的消息告诉你关于作业或系统状态及用户错误,或需要你响应。为了获得附加的消息,可以将光标移到包含消息的行上,按帮助键或F1
*BASIC Assistance Level

|
|
Figure
3-10. WRKMSG |
From the Work with
Messages (WRKMSG) display shown on the visual, you can:
1. Remove one message at a time:option 4
2. Remove all messages not needing a reply:F16
*INTERMED Assistance
Level

|
|
Figure
3-11. DSPMSG |
You will see the
Display Messages display when you run the WRKMSG or DSPMSG command. You can:
1. Remove one message at a time:F11
2. Remove all except unanswered messages:F16
消息会一直保留在消息队列里直到被删除。如果积累太多消息,会占用大量系统存贮。所以用户应即时删除无用的消息。
在*BASIC Assistance Level下:
进入WRKMSG的界面后,可用以下方法删除消息:
1.删除某条特定的消息
在所要删除的消息前按选项4再回车。
2.删除所有信息型消息
按F16键。
在*INRTERMED Assistance Level下:
运行WRKMSG或DSPMSG命令都会出现Display
Message的界面:
1.删除一条消息
把光标置于所要删除的消息上,按F11.
2.删除所有消息(除了未答复消息)
按F16键。

|
|
Figure
3-13. Message Queue Modes |
Each message queue has a delivery mode that
describes how you will be notified of messages.
There are four different delivery modes:
*BREAK *NOTIFY
*HOLD *DFT
消息到达消息队列后,怎样处理这条消息呢,是马上中断用户的工作,在显示屏上显示该消息;还是提示一下用户,但不中断用户的工作;还是不做任何处理。这是由消息队列的一个属性:交付模式(Delivery Mode)来决定的。
消息队列的发送模式有:
*BREAK -打断用户当前工作,消息直接显示在屏幕上。
*NOTIFY -一旦消息队列接收到消息则在用户屏幕上设置相应的标志或打开工作站上的消息等待灯或发出相应的警告声。(用户一般使用这种模式来接收消息。)
*HOLD -接收到消息后不作任何提示,而是将其保存在消息队列里等待用户查看。
*DFT -对于接收到的询问式消息自动以该消息的缺省值回答,对接收到的信息式消息则忽略。除系统操作员外其他用户的消息在这种模式下不被放入消息队列。
当设备描述文件、用户描述文件或用户的消息队列建立时,相应的消息队列的发送模式就在里面设定。QSYSOPR消息队列的发送模式默认为*NOTIFY.可用CHGMSGQ命令来改变发送模式。
QSYSOPR的发送模式应设为*BREAK,否则,一些发到QSYSOPR的重要的系统信息可能会被忽略。

|
|
Figure
3-14. User and Workstation Meaages Queues |
当用户在工作站上登录时创建一个交互式作业(interactive job),用户消息队列和工作站消息队列自动被分配给该交互式作业。工作站消息队列被设置成*NOTIFY模式;用户消息队列也被设置成*NOTIFY模式,但用户可以修改。两个消息队列中的消息被设置成新消息。只有被分配消息队列的作业可以从队列中删除消息,当拥有足够权限时,其他用户也可以查看或者应答消息队列中的消息。当用户从工作站上退出时,用户消息队列和工作站消息队列自动与该作业分离,消息队列的发送模式均被设置成*HOLD模式,任何发送的消息队列中的消息被自动保存起来。

|
|
Figure
3-15. Controlling Message Delivery |
SNDMSG -Delivers the message according
to the message queue delivery mode
SNDBRKMSG -Interrupts the work station
job and displays the message
每一条发出的消息都有一个表示该消息重要程度的紧急代码(Severity)。代码值为0―99,值越大,紧急级别越高。可以在消息队列中设置这个紧急代码的最低值,以便使到达该消息队列的紧急代码超过这个最低值的消息,按消息队列的Delivery Mode值进行相应的处理。消息的类型和发送消息时使用的命令决定消息的紧急代码,SNDBRKMSG发送的消息紧急代码为99;SNDMSG发送的*INQ类型的消息紧急代码为99;SNDMSG发送的*INFO类型的消息紧急代码为80。系统中的每一个消息队列都有一个重要性级别与之关联,我们可以通过CHGMSGQ命令来设置和改变该值。只有当消息队列接收到的消息紧急代码大于或等于该重要性级别,系统才会中断当前用户的工作显示消息,否则只将消息保存在消息队列中。
使用CHGMSGQ命令,用户可随时根据需要修改相应消息队列的Delivery Mode和Severity的值。当一个用户注销(Sign off)时,系统会自动将该用户消息队列的Delivery Mode修改成*HOLD;用户再次注册时,系统又会将该消息队列的Delivery Mode设置成 *NOTIFY,如果用户脱机这一段时间有消息到达就会给用户一个提示。

|
|
Figure
3-16. Allocating QSYSOPR Message Queue |
QSYSOPR是一个最重要的消息队列,系统在发现异常,或对设备进行某种操作,或发生一些较重要的事件时都会将消息送到这个消息队列中,操作员要随时查看这个消息队列,以便使问题得到及时处理。
像任何一个消息队列一样,QSYSOPR在某个时刻只能分配给一个用户作业。其它用户可以用DSPMSG QSYSOPR命令查看消息队列的消息。当用户用QSYSOPR登录时,QSYSOPR消息队列自动地分配给相应的交互式作业,模式为*BREAK。
使用图所示的步骤可以将QSYSOPR消息队列分配给另一个用户或工作站。具体为:系统操作员退出所在工作站,然后作为系统操作员在另一工作站上登录或系统操作员改QSYSOPR消息队列的模式为*HOLD(CHGMSGQ QSYSOPR *HOLD)。然后另一个工作站用户改QSYSOPR消息队列的模式为*BREAK(CHGMSGQ QSYSOPR *BREAK)或*NOTIFY(CHGMSGA QSYSOPR *NITIFY)。

本章总结

1. 消息的类型、来源。
2. 消息队列的作用、种类及生成途径。
3. 发送消息的常用命令有两个SNDMSG和SNDBRKMSG,它们的区别在于SNDBRKMSG发出的消息只能送到工作站的消息队列中,且不受消息队列的Delivery Mode制约,消息到达对方后,马上在工作站上显示出来。发出的消息紧急代码一律为99。其他功能同SNDMSG。
4. 学会用DSPMSG命令显示消息和响应查询型消息。
5. 消息队列的交付方式及控制。
6. Assistant Level的含义,不同的Assistant
Level(*BASIC、*INTERMED)下,如何删除消息队列中的消息及F11、F16键的功能。

AS/400是一个基于对象(Object-based)的系统。我们说AS/400是一个基于对象的系统而不称其为面向对象(Object-Oriented)的系统,是因为在AS/400系统中没有类(Class)和子类(Subclass)的概念,当然也就不存在着继承(Inheritance)机制。对象在AS/400中定义为:一个具有名字,需要占用一定的存储空间,可以对其实施某些特定操作的软件实体。它具有封装性(Encapsulation),其内部细节对外部应用来说是完全透明的。内部细节的改变如数据结构的变化和操作的实现过程改变都不会影响访问这个对象的外部程序。AS/400的安全性好部分应归功于这种对象机制。
这一章描述了对象、库、库列表和集成文件系统(IFS)的概念,还介绍了相关的术语和命令。
通过本章学习,要求了解对象、库、库列表和集成文件系统的概念,知道对象的简单名和限制名的区别,懂得查看和修改库列表,并能描述集成文件系统的特点。

|
|
Figure
4-1. Object |
这里我们所说的对象是指在系统的存储器中存在并占用一定的存储空间的实体,对其可执行一定的操作.每一个对象拥有一个名字,并可以通过CL命令创建和删除对象。在系统中共有约80多种对象,每种对象类型有自己的标识符,上图显示的是对象本身及类型标识符,例如,文件的标识符为*FILE、命令的标识符为*CMD等。OS/400会根据对象的类型来决定对其执行什么操作。例如,用户不能运行一个文件或把程序当作数据来处理。
每个对象由两部分组成:对象描述和功能部分。对象描述部分包含了对象名称、类型、所在库、创建者、所有者、保存/恢复等信息,可用 DSPOBJD
命令查看对象的一些属性.对象的功能部分决定了对象的类型,例如,若功能部分为程序代码,则对象类型为*PGM,若功能部分为物理文件的成员,则对象类型为*FILE。

|
|
Figure
4-3. Object Name-Simple versus Qualified |

|
|
Figure
4-4. IBM-supplied Objects Start with Q |
在AS/400系统上每个对象都有自己的名字。对象名字由两部分组成:库名和对象名。当用户想对某一个对象进行操作时,可以只指定对象名(称为简单名),如EX1;也可以指定其对象名及所在库名(称为限制名),如OL2901/EX1。
对象可由系统提供或由用户创建。由系统提供的对象一般以Q作为对象名的第一个字母,如QSYS、QGPL、QSYSOPR等,这些对象是系统的一部分。为了便于区别,建议用户创建的对象不要以Q起名。
为了方便地引用一组对象,我们可以使用通用名(Generic names),如命令DSPOBJD OBJ(OL29LIB/p*)
OBJTYPE(*ALL)运行的结果是显示库OL29LIB中名字以P字母开头的所有对象。

|
|
Figure
4-5. Object Types |
在AS/400系统中,有超过80种对象。

|
|
Figure
4-6. Object Identification: Library, Name, Type |
AS/400系统中采用分级对象管理,不同于其它的操作系统(如DOS、UNIX等)。AS/400系统的分级管理只有两级,即所有的对象都位于某一个库之中,我们可以通过该库引用相应的对象;由于库也是一种对象,所有的库位于一个特殊的库(Library)QSYS之中。我们通过库名、对象名和对象类型可以唯一确定系统中的一个对象。
在同一个库中,不同对象的名字和类型不能同时相同。但在不同库中,可以存在名字和类型都相同的对象。

|
|
Figure
4-7. library |
A library is a special object which has a
named set of objects associated with it and is used to group objects.
Basically, it is a directory to other objects.
Library/Object
structure
库是系统用来进行对象管理的一种特殊的对象,库中包含了一组对象。库仅仅是其它对象的目录,所有的对象并没有真正地存贮在库中。因为查找对象不是根据其在硬盘中的位置而是根据其名字,所以只要OS/400能找到此对象所在的库,就能定位这个对象。库本身也是一种对象,类型标识为*LIB,所有的库都存在于QSYS中。库可分为两大类:系统提供的库和用户库。所谓用户库是用命令CRTLIB根据需要创建的库,它的作用与系统提供的库没有区别。

|
|
Figure
4-9. IBM-supplied Librarys |
这里列出的仅仅是IBM提供的少数库。它们都是由Q开头的。有些作为OS/400的一部分,有些作为IBM许可程序产品(IBM Licensd Program
Products,LPPs)库出现。不要删除这些库及其中的对象。要完全列出IBM提供的库,请参考Programming:Reference Summary 。
上图所列的库中,QSYS和QGPL不能被删除或重命名,它们是由SECURITY OFFICE所拥有的,存在于所有库列表中。

|
|
Figure
4-10. Library List |
*CURLIB
*USRLIBL *LIBL *ALLUSR *ALL
How Your Library List is Constructed at Sign On
How to Change Your Library After Sign On
对象的表示有两种方法:简单名字和复合名字。如果使用对象的复合名字,系统会根据复合名字中指定的库名字来检索这个对象。如果使用简单的对象名字,系统会使用作业的库列表(Library
list)。
每当一个作业在OS/400中被初始化时,系统就会为这个作业创建一张库列表,库列表中含有若干个库的名字。当用户使用简单名字访问一个对象时,系统就会在这个作业的库列表中自上而下地逐个搜索那些库,一旦在某个库中找到该对象,就停止搜索。显然一个库在库列表中的位置是很关键的。库列表不是一个对象,它不能够被创建和删除,库列表对于不同的作业来说可能是相同的,但每个库列表只可由其所属的作业使用。当作业被创建时库列表自动被创建,当作业结束时该作业的库列表被清除。
根据库列表中库的来源及管理方式上的不同,一个作业的库列表由四部分构成:系统库列表(System
library list)、产品库列表(Product
library list)、当前库(Current
library)、用户库列表(User
library list)。用户可以使用CL 命令CHGCURLIB,CHGLIBL改变作业的当前库,用CHGLIBL,ADDLIBLE
,RMVLIBLE,
EDTLIBL命令修改用户库列表部分,也可以用DSPLIBL命令查看作业的整个库列表。有权限的用户,还可以用CHGSYSLIBL修改库列表中的系统库列表部分。库列表中的产品库列表部分是由系统动态对其进行管理的,用户不能去修改这一部分。
在用限制名字访问对象时,在'/' 前面可以不给出一个具体的库名字,而用'*'开头的某些系统定义值来表示一些特定的库。系统定义值即为系统保留字,它们以'*'开头,大都有其特殊含义。在对象的有效名字中,可使用的系统定义值及含义如下:
*LIBL-整个作业的库列表
*CURLIB-作业的当前库
*USRLIBL-作业库列表中当前库和用户库列表部分
*IBM-指IBM提供的那些库. 其中有几个允许用户存放对象的库除外
*ALLUSR-所有用户自己创建的库及IBM提供的几个可供用户存放对象的库
*ALL-所有IBM提供的库和所有用户创建的库

|
|
Figure
4-13. Finding an Object |
To display the
library list for your job, enter the command DSPLIBL
Quiz
如果在引用一个对象是使用限制名,则只有被引用的库被查找(这个被引用的库不一定在库列表里);如果使用简单名,则系统在作业的库列表中按顺序由前向后依次在库中查找。
依照上图所示的库列表来回答下面的问题:
1. 若使用简单名,程序PAY02会在哪个库中找到?
在库列表中由上到下进行查找,先查QSYS,然后查QSYS2, QHLPSYS, QUSRSYS, QRPG,
QCBL......最后在PAYLIB中找到PAY02.
2. 若使用简单名PAY02, 库PAYTSTLIB中的对象PAY02会被找到吗?
因为对库列表的查找顺序是由上到下,所以先找到库PAYLIB中的PAY02, 而库PAYTSTLIB中的PAY02则不会被搜索到。
在我们使用系统命令时,往往需要指定搜索库的范围,有以下几个系统定义值可以引用:
*CURLIB--作业的库列表中的当前库
*USRLIBL--作业的库列表中当前库和用户库部分
*LIBL--作业的整个库列表
*ALLUSR--系统中所有的用户库
*ALL--系统中所有的库
运行命令,就可以查看当前作业的库列表。

|
|
Figure
4-17. Object Placement |
当用户创建一个对象,但没指定该对象所属的库时,缺省情况下,系统会把这个对象的Entry放在当前库中;若没有设定当前库,这时系统就会将该对象放在QGPL(General Purpose Library)库中。但有一些对象类型如:*USRPRF、AUTL、*LIB、*LIND,*CTLD,*DEVD,*MODD等总是隶属于库QSYS,创建这些对象时不会有指定所在库的参数出现。

|
|
Figure
4-18. What is the Integrated File System? |
为了更好地实现AS/400与其它系统(如UNIX)中的文件系统互操作,OS/400 V3.1 开始推出一个集成的文件系统IFS。在这个IFS中,增加了对流式文件的I/O支持。这个集成的文件系统采用基于PC的标准命名机制,文件和目录名字的长度符合POSIX标准,文件名的存储格式支持多国语言,包括双字节字符集的国际标准Unicode。集成文件系统是在OS/400中像pc机一样实现对流文件输入输出和存储管理的支持。它提供了一个存储信息的集成结构(如流文件、数据库文件、目录、文档、文件夹等)。

|
|
Figure
4-19. File System Concepts |
文件系统把存储的数据组织成文件、目录、库和对象等逻辑单元。每个文件系统都有自己的访问存储数据的逻辑结构。实际上,在OS/400中通过库来访问数据库文件和其他对象,这种结构就可看成一种文件系统。同样地,通过文件夹来访问文档(实际上是流文件)也就可看成一种独立的文件系统。
在IFS接口中,整个文件系统被表示成‘/’每一个子文件系统表示格式及含义为:
/QSYS.LIB-传统的OS/400的库文件系统。
/QDLS-由一些共享文件夹(Shared Folder)和文档(Document)构成的多级目录结构的文件系统,用于支持DOS、OS/2、Windows及AS/400上的Office用户文件。
/QopenSys-UNIX文件系统(遵从POSIX标准)。
/QNETWARE-Novell Netware 文件系统(需FSIOP支持)。
/QNFS-SUN公司的网络文件系统。
/QLANSrv-LAN Server 文件系统(需FSIOP支持)。
还有一些文件系统也被组合在IFS中,此外用户还可以定义自己的文件系统。
IFS使得PC机用户和UNIX用户及其它相关系统的用户访问这个IFS中的数据就像访问本地文件系统一样,他们甚至不需要掌握OS/400的CL命令接口,就可以在本地机上用自己熟悉的方式管理存储在AS/400中的数据。PC机用户完全可以用图形操作方式去管理AS/400上的库、文件夹等。客户端用户也可以编写一些直接访问AS/400中数据的应用。通过Client Access/400可以提供给用户一个图形的操作界面。
在AS/400中,提供了一个统一的接口去访问这个IFS中的各子文件系统。AS/400用户既可以通过这个接口访问QSYS.LIB,也可以用传统的接口去访问库、对象。为了实现各子文件系统之间的信息互访,数据的格式必须是兼容的。对不同平台上发出的对AS/400的数据请求,OS/400做了将AS/400的数据格式转换成应用程序数据格式的大部分工作,OS/400可以自动地完成EBCDIC码(Extended Binary Coded Decimal Interchange
Code)和ASCII码(American Standard Code for Information
Interchange)之间的转换。当用户通过客户端访问存储在AS/400系统中的数据时,以EBCDIC码存储的数据自动被转换成ASCII码传递给用户。IFS增强了其它系统中的用户对文件的处理能力。将数据存储在AS/400上,就可以享受到AS/400的强大的数据备份功能,恢复功能及更安全的保护措施。

|
|
Figure
4-20. Stream Files versus
Database Files |
Database Files Stream Files
在数据库文件中,预先定义了record和field,field在record里。所以数据库文件有一个特殊的两层结构,record和field。
集成文件系统支持以流文件形式对数据进行存储和操作。流文件是指包含连续数据流的文件。存储在文件夹中的文档就是流文件,其他流文件还有pc机上的文件和UNIX系统上的文件。在集成文件系统中,流文件是一种系统对象*STMF。

|
|
Figure
4-21. Integrated File System Structure |
A directory is an object that is
used to locate other objects by name. Each directory contains a list of objects
that are attached to it, including other directories.
A particular directory along with all of
its subdirectories and the objects that are attached to those subdirectories is
referred to as a subtree. Each file system is a major subtree in the IFS
directory structure. In the library file system (QSYS.LIB subtree),a library is
handled the same way as a subdirectory. Because database files contain objects
(database file members), they are handled like subdirectories rather than
objects. In the document library services file system (QDLS subtree), folders
are handled like subdirectories and documents are handled like obyects in a
subdirectory. Because of differences in file systems, the operations you can
perform in one subtree of the directory hierarchy may not work in another
subtree.
.Current directory -similar in concept to
current library
.Home directory -current directory
provided to you when you sign on
When you request an operation on an object
such as a file, the system looks for the object in the current directory,
unless you specify a different directory path. The current directory is similar
to a current library.It is also called the current working directory or just
working directory.
The home directory is used as the current
directory when you sign on to the system. The name of the home directory is
specified in the user profile. When a job is started for a user, the system
looks in the user profile for the name of the user's home directory. If a
directory by that name does not exist on the system, the home directory is
changed to the root directory.

|
|
Figure
4-22. Locating Objects in the Integrated File System. |
There
are two ways of indicating a path name:
◇An absolute path name begins at
the highest level, or root directory (which is identified by the forward
slash(/) character.
/Dept2/Photo/Smith
◇if the path name does not begin
with the forward slash(/) character, the system assumes that the path begins at
the user's current directory. This type of path name is called a relative path
name. For example, if a user's current directory is Dept2 and it has a
subdirectory named Photo containing the file Smith, the relative path name is :
Photo/Smith
Notice that the path name does not include
the name of the current directory. The first item in the name is the directory
or obyect at the next level below the current directory.
◇ Object Related
Commands
◇ Library
Related Commands
◇
IFS Related Commands
-WRKFLR---Work with Folders
-WRKLNK---Work with Object Links
本章总结

1. 对象的概念,简单对象名和限制对象名的不同,对象的标识,对象的搜索。
2. 库的概念和操作库的相关命令
3. 库列表的概念、组成顺序、作用及操作库列表的命令。
4. 集成文件系统的概念。

工作管理(Work Management)是在 OS/400中实现的,它的主要功能是负责处理用户提交给系统的请求。OS/400是以作业(JOB)为基本单位实施对工作的管理,作业是OS/400进行系统资源分配的单位。每个作业又可以进一步分解为一个或若干个顺序的作业步(Routing
Step)。OS/400支持多种类型的作业以满足用户的各种需求。为了更合理、有效地使用系统资源,系统(System)被划分成若干个子系统(Subsystem),所有的作业在子系统的监控下运行。系统有些属性决定了整个系统的大环境,并会影响所有的子系统。系统的属性由系统值(System Value),网络属性(Network Attributes)等定义。每个子系统还要有自己的属性,这些属性在子系统描述(Subsystem Description *SBSD)中定义。在子系统中运行的每个作业也有自己的属性,作业的属性主要来自作业描述(Job Description *JOBD)和用户描述(User Profile
*USRPRF)。工作管理对象见 参考图
。
本章内容将从三个部分来讲解:第一部分介绍作业、队列以及子系统和存储池等工作管理和控制的基本概念,第二部分和第三部分将分别介绍作业控制和打印控制方面的基本的知识。
通过本章的学习,我们应该掌握以下内容:
◇AS/400系统的作业类型和交互式与批处理两种作业的处理过程。
◇子系统的概念及子系统中的作业等相关知识。
◇运用OS/400命令来监视和控制作业队列和队列中的作业、活动作业、输出队列和队列中的作业、打印机的工作情况。

|
|
Figure
5-1. Methods of Processing |
Interactive Processing
Batch Processing
AS/400系统有两种工作处理方式:交互式和批处理式。
交互式的处理方式类似于交谈,在作业运行过程中需要用户和系统之间双向的交流.
对于批处理方式的工作,用户只需要将运行所需的相关信息一次性地传递给系统即可,不再需要用户对作业的运行进行干预,系统也不会向用户要求更多的信息,用户可以去完成其它的工作。
交互式处理响应时间短,可更好地发挥人的主观能动性,但需要的系统资源多(如终端),批处理方式周转时间长,但所需资源少一些。

|
|
Figure
5-2. What Is a Job? |
作业(JOB)是OS/400对工作进行管理的基本单位,也是系统分配资源的基本单位。作业是一种环境(environment),可以在系统中完成用户的工作。在一个作业中,通过输入命令、选择菜单或调用程序,可以要求系统处理用户的请求。

|
|
Figure
5-3. Types of Jobs |
SYSTEM JOBS
USER JOBS
interactive jobs batch jobs communication jobs autostart jobs
系统中的作业笼统地讲可以分为系统作业和用户作业.
系统作业又可以分为多种,每种系统作业名一般均以Q字母打头。在所有的系统作业中,只有SPOOLING作业可以被系统操作员控制,该作业类似于批处理作业,用来控制将输出队列中的脱机打印文件(Spooled file)在打印机上打印。
用户作业又可以细分为自动启动(AUTOSTART)、通讯(COMMUNICATION)、交互(INTERACTIVE)和批处理(BATCH)四种类型。
AUTOSTART作业总是与一个子系统(SUBSYSTEM)关联起来,当子系统启动时自动启动AUTOSTART作业,如完成一些相关的设置工作。
COMMUNICATION作业发生于两个或多个AS/400间连接的情况下,当一个系统中的用户在另一个系统中递交作业时使用该类型作业。
INTERACTIVE也称为终端作业(Workstation),它从用户注册(Sign on)开始,直到用户注销(Sign off)为止。
BATCH是一种脱机处理的作业,用户将自己的请求提交给系统后就无须再干预,系统将该请求暂时存放到作业队列(JOB Queue *JOBQ)中,当资源满足作业的需求时,子系统就会选择作业运行,批处理作业产生的所有输出信息都会放在打印文件中,由打印作业负责输出。

|
|
Figure
5-4. Job Name |
系统中的每一个用户作业都有一个唯一的作业名,如000578/OL29XX/DSP01。作业名由三部分组成,作业号、用户名和作业名。
每个作业启动后都由系统分配一个唯一的作业号,如000578。
用户名是递交或启动该作业的用户,如OL29XX。
对于BATCH作业,递交该作业的用户可以指定一个作业名,对于INTERACTIVE作业,作业名就是用户登录的工作站的名字,如DSP01。
当搜索一个作业时,可以用作业的限制名,例如,WRKJOB JOB(000578/OL29XX/DSP01)。若不知道作业的完整名,也可只输入用户名和作业名,例如,WRKJOB JOB(OL29XX/DSP01)。甚至只用作业名,例如,WRKJOB JOB(DSP01)。

|
|
Figure
5-5. What Is a Job Description? |
作业的属性定义了作业的环境。这些属性值包括:作业使用的作业队列(JOBQ)、输出队列(OUTQ)、打印机、排队优先级、排队优先级的最高限定值、作业的库列表、作业日志纪录的等级、作业的运行优先级、使用的内存池以及时间片长度等。有若干种途径描述作业的属性,其中最重要的、最完全的属性定义是在作业描述(以下称JOBD)中,其次是在用户描述(*USRPRF)中,有时可能会参照某些系统值(System Value)。批处理作业的属性也可以在提交作业命令SBMJOB中用参数值定义。
作业描述是一种OS/400对象(类型*JOBD),包含了作业要用到的大部分属性值。可以用命令 CRTJOBD 命令创建,CHGJOBD命令修改,DSPJOBD命令查看。每个AS/400系统上有多种作业描述。
在AS/400系统上运行的每一个作业都对应着一个作业描述。但每一个作业描述可以有多个作业与它相关。IBM 提供的默认作业描述是 QDFTJOBD。图列出了QDFTJOBD中的部分信息,此外还有Routing data,Request Data,Initial Library List等。图中的Job Date的值为*SYSVAL,表示参照系统值QDATE。Output Queue的值为*USRPRF,表示要参照使用这个JOBD用户的User
Profile中的Output Queue定义。

|
|
Figure
5-7. How User Profile Relates to a Job |
在安全性一章中,我们会从安全的角度来讨论用户描述文件(User Profile)。在这里,我们必须明白每一个在AS/400上的作业都与一个用户描述文件相关联。用户描述文件包含有关用户和用户如何运行作业的有关信息。
用户描述中与作业属性有关的信息有:用户使用的JOBD、OUTQ、打印设备、当前库、最高排队优先级、交互式作业的初始执行程序和初始菜单等。有些信息与JOBD中有重复,这是系统会优先采用JOBD中定义的属性值。

|
|
Figure
5-8. Starting and Ending a Job |
不同类型的作业它们开始和结束的方式也会不同
Interactive job: 每当用户登录到一个工作站的时候,一个新的Interactive Job(交互式作业)就开始了,这样直到用户退出。
Batch job: 一个Batch Job(批处理作业)在它离开作业队列时开始。批处理作业的结束EOJ(End of Job)不以作业的运行结束为标志,而是指作业运行的相关结果已经从输出队列中删除或已经被从打印机上打印出来。
Autostart job: 自启动作业随着与其相关的子系统的启动和结束而开始和结束。
Communication job: 一个通信作业随着远程系统请求而开始,直到用户退出(若此作业为交互式作业)或作业结束(若此作业为批处理作业)才结束。
Spooling job: 一个打印作业随着打印机程序开始而开始,直到打印机程序结束而结束。
所有类型的作业都要在子系统的监控下运行,直到运行结束并且没有打印输出,或运行结果已在打印机上输出完毕,该作业才会真正结束。系统人员要经常对各种作业的打印输出(Spooled file)做清理工作,不需打印时,就应将它们删掉,以减轻系统对作业的管理负担。

|
|
Figure
5-9. What Is a Subsystem |
子系统的定义
子系统是在考虑到AS/400系统中存在着多种类型的作业,不同种类的作业对系统资源的要求不同,如交互式作业要求较快的响应时间,批处理作业可能要求较多的CPU时间等,将所有的系统资源分成多个配置不同的环境,管理员可以在这些环境之间调整资源的分配,以达到充分利用、灵活调节的目的。因此我们可以认为子系统是专门为了运行某一类作业而配置的环境。每个作业在其开始时都被指派给一个适合此作业运行的子系统。一个子系统所提供的操作环境在子系统描述(Subsystem Description *SBSD)中定义。可以用WRKSBS命令查看系统上活动的子系统。

|
|
Figure
5-10. Subsystem Description |
The subsystem
description is
an object that defines the environment that the jobs which run in the subsystem
need in order to run most efficiently.
与作业相同,子系统本身并不是对象,但子系统描述(Subsystem Description)是一种对象(*SBSD)。子系统描述定义了子系统中拥有的资源,特别是存储器资源,和在子系统中运行的作业类型以及最大作业数等特征。与作业不同,每一个子系统描述仅对应一个子系统,因此我们可以用子系统描述对象的名字来区分不同的子系统。
子系统描述中含有子系统可以管理的最大并发作业个数;内存池的个数及大小;作业的来源(Work Entries 如来自哪些终端,哪些作业队列);作业的运行属性(如作业分配的内存池ID,运行优先级,时间片长度,从何程序开始执行)等。作业的运行属性实际上是在一个类型为*CLS(class)的对象中描述的,子系统描述中定义了许多叫Routing Entry的项,每个Routing Entry指向一个Class。每个作业可以在自己的作业描述(*JOBD)中设置一个称为Routing data的参数值,来确定使用子系统描述中的某个Routing Entry,从而获得该作业的运行属性。子系统描述含有的信息及相关的追加命令 参考图 。
与子系统描述相关的命令:
CHGSBSD 改变子系统描述
CRTSBSD 创建子系统描述
DLTSBSD 删除子系统描述
DSPSBSD 查看子系统描述
PRTSBSDAUT 打印子系统描述
WRKSBSD 可对子系统描述进行创建、修改、删除等操作。

|
|
Figure
5-12. Storage Pool |
OS/400通过内存池(Storage pool)使用内存。内存池是对内存的一个逻辑的动态的划分,在子系统描述中定义它们的个数和大小。当启动一个子系统时,系统根据子系统描述中定义的内存池为其分配相应的内存。每个子系统最多可以定义10个内存池。整个内存最多可划分的内存池个数是有限制的,如在OS/400 V3.2中最多允许将内存划分成16个内存池,OS/400 V4以上版本则允许更多一些,可达六十个以上。
AS/400内存池有两种类型:共享池(Shared pool)和私有池(Private pool)。共享池允许若干个子系统共用,私有池只允许一个子系统使用。典型的共享池有*MACHINE、*BASE、*INTERACT和*SPOOL。一般地,*MACHINE供系统作业使用;*INTERACT供交互式作业使用;*SPOOL用于打印作业;*BASE用于各种类型的作业,以批处理作业为主。每天在IPL时,系统会根据系统值QMCHPOOL为*MACHINE分配内存,然后将其余的内存全部分配给*BASE。每激活一个子系统,系统就要从*BASE池中为子系统分配所需内存;当一个子系统结束时,该子系统占用的内存就被回收到*BASE池中。*BASE池不能为空,有一个系统值QBASPOOL定义了*BASE池的最小尺寸。当*BASE尺寸达到这个值后,系统就不会为新启动的子系统再分配内存空间。
每个作业只能在一个内存池中运行,由于每个子系统所管理的作业类型相近,内存池固定,因此可以实现在相同池中运行相同类型的作业。作业发生缺页时,偷页也只能在同一池中进行,因此不会出现不同类型的作业发生内存冲突的现象,从而使系统对作业的管理做到有理、有序、简单。有了内存池的概念,可使用户对作业使用内存有一定的控制权,例如通过对作业描述中的Routing Data定义和子系统描述中的Routing Entry、Storage pools定义使一个重要的作业独占一块充足的内存,以保证该作业的运行及时、可靠。
AS/400的这种内存池管理策略可能会出现各内存池之间忙闲不均的情况。因此OS/400允许为每个内存池规定同时所允许存放的最多作业个数ACTLVL(Activity Level)。使用 WRKSYSSTS(Work with System Status) 命令,结合F11功能键,操作员可以看到当前内存中划分的内存池的大小、缺页率、作业的状态转换等信息。当发现性能有问题时,如某一内存池的缺页率偏高,或作业状态转换到Ineligible 次数太多,可以在这个命令中修改内存池的大小(Pool Size)或ACTLVL(Max Active)来改善性能。如果操作员经常疏于这项工作,可以指定系统值QPFRADJ为'2'或'3',让系统根据情况动态地调整这些内存池的大小或ACTLVL。

|
|
Figure
5-14. Subsystem Configuration Shipped by IBM |
系统在安装时,已经建立了一些子系统描述,如负责交互式作业的子系统QINTER,负责批处理作业的子系统QBATCH,负责打印作业的子系统QSPL等。每次在做IPL(Initial Program Load 启动系统)时,可根据当天要处理的作业情况启动所需的子系统,也可以根据某一时刻的作业情况,随时启动一个子系统(STRSBS)或停止一个子系统(ENDSBS)。当一个子系统被终止时,它所监控的所有作业也都被终止。
系统值QCTLSBSD定义了系统在IPL时最先启动的控制子系统,QCTLSBSD可以取两个值:QBASE或QCTL。然后由这个控制子系统中的自启动作业(Autostart JOB)将其它子系统启动起来。在系统作初始化时根据QCTLSBSD的取值不同,系统将会启动不同的子系统。
若QCTLSBSD取值为QBASE,系统启动三个子系统QBASE、QSYSWRK和QSPL,其中QSYSWRK运行系统作业,QSPL运行Spooling类型的作业,其它作业都在QBASE中运行。这种配置的优点是简单,缺点是划分不够详细,效率不高。这种配置是缺省值。
如果QCTLSBSD取值为QCTL,系统将启动QCTL、QSYSWRK、QINTER、QBATCH、QSPL、QCMN和QSERVER共7个子系统。其中QCTL为控制子系统,处理控制台作业。QSYSWRK执行某些这特定系统功能。QINTER为处理交互式作业的子系统,QBATCH处理批处理作业,QSPL处理脱机打印作业。这种配置的优点是划分详细,每个子系统均适应系统中一种类型的作业,管理员可以灵活地安排资源,缺点是较为复杂,管理员需要做很多工作。有些特殊的任务必须在控制台上完成,且不允许有其它类型的作业存在,如备份整个系统,整理硬盘等,这时要终止除QCTL之外的所有子系统,这种状态被称为Restricted state。
用户也可以用CL命令CRTSBSD定义自己的子系统描述,必要时用STRSBS命令将其激活,用ENDSBS命令结束它。操作员可以随时用WRKSBS命令监控当前所有启动的子系统情况,用WRKSBSJOB命令对子系统中的作业进行管理。

|
|
Figure
5-15. What Is a Job Queue? |
A job
queue is an object that contains a list of batch jobs waiting to be
processed.
AS/400有很多类型的队列(Queue),其中对普通用户和系统操作人员来说,最常用到的队列有:消息队列(Message
Queue *MSGQ)、作业队列(JOB
Queue *JOBQ)、输出队列(Output
Queue *OUTQ)。他们都是OS/400中的对象。此外,AS/400应用开发人员还需了解程序通信用的数据队列(Data
Queue),作业消息队列(Job
Message Queue)等。消息队列用于存放等待处理的消息,作业队列用于存放等待子系统进行处理的作业,输出队列则用于存放等待打印的数据(Spooled
file)。
作业队列(Job Queue)是一种对象(类型为*JOBQ),系统中存在多个作业队列,每一个作业队列包含一组等待处理的批作业。作业队列中的每一个作业都有一个优先级(job
queue priority)与之关联,优先级从1到9,1是最高级别,9是最低级别。系统在处理作业时,按优先级由高到低的顺序进行处理,若优先级相同,在依照先进先出的原则。
可以规定作业队列中最多允许同时在子系统中运行的作业个数(MAXACT),或该队列中相同优先级的作业允许并发执行的最大个数(MAXPTYn,n=1-9)。当一个子系统管理几个作业队列时,作业队列之间的优先顺序由作业队列在子系统中的顺序号(Sequential
Number SEQNBR)决定。在队列中的作业可根据需要将其挂起(Hold),延迟一段时间后再将其释放(Release)。因此一个在作业队列中等待处理的作业何时会被子系统选中,取决于子系统定义的最大并发作业数MAXJOBS,作业队列的MAXACT,作业的状态(Status)及作业的优先级Priority及作业队列之间的SEQNBR。 作业选择示例
一旦作业被子系统选中,子系统的监控程序(Monitor)就会根据作业描述中的Routing
Data,在子系统描述中找到与之匹配的Routing
Entry,根据这个Routing
Entry为作业分配相应的内存池和Class,从而使作业获得运行属性,参与对CPU的竞争。

|
|
Figure
5-16. Interactive versus Batch Job Steps |
用户登陆后,交互作业通常会按以下步骤运行:
1.用户在工作站登录;
2.OS/400运行这个作业,若有东西要打印,则把要打印的东西放到输出队列(Output Queue)中的一个脱机打印文件(Spooled File)里;
3.这个作业等到所有在输出队列中排在它前面的作业打印完毕;
4.这个作业的脱机打印文件打印出来后,用户可以注销,也可以继续保持登录状态,交互作业会一直运行到其注销。
批作业通常会按以下步骤运行:
1.运行提交作业命令SBMJOB会在作业队列中加入一个作业,OS/400会按接收的时间先后来将作业排队;
2.直到子系统发现这个作业所需的资源均已准备好后,才运行这个作业;
3.OS/400运行这个作业,若有东西要打印,则把要打印的东西放到输出队列(Output Queue)中的一个脱机打印文件(Spooled File)里;
4.这个作业等到所有在输出队列中排在它前面的作业打印完毕;
5.最后,脱机打印文件打印出来了。
有三种提交作业的方法:SBMJOB、SBMDBJOB、SBMDKTJOB
SBMJOB用于提交具有特定作业描述或需进行作特别处理的批处理作业;
SBMDBJOB和SBMDKTJOB用于提交与数据库或磁盘相关的批处理作业。
批处理作业总要在作业队列中等待一段时间后,才可能进入到子系统中运行。交互式作业只要注册(Sign on)成功就立刻进入子系统中运行。
打印作业(Spooling Job)实际上也是一个以批处理方式运行的作业,当操作员发出STRPRTWTR(Start Print Write)命令后,系统会创建一个批处理作业,并将它放到作业队列QSPL中排队,由QSPL子系统负责选中它并为其分配内存池(一般地都用*SPOOL),然后调入相应的Writer程序执行。Writer是一个系统程序,它取出相关的输出队列中的Spooled file,在指定的打印机上打印。可以用WRKWTR命令来控制打印机的打印操作。打印作业的流程参看图5-29 。

|
|
Figure
5-17. Submitting a Batch Job |
用户可以通过命令SBMJOB启动一个批处理作业。递交作业时用户可以给出作业运行所需要的参数,如提交给的作业队列(job queue),作业运行的优先级(job priority),输出队列(output queue)及输出优先级(output priority),使用的打印设备(print device)等等。也可以指定作业和那一个作业描述关联起来。若用户没有指定具体参数,系统将从此作业描述中取得相关的参数值。如果没有指定所关联的作业描述,系统将会默认使用用户描述中指定的作业描述,它的默认值为QDFTJOBD。在QDFTJOBD中,作业被提交给作业队列QBATCH,QBATCH在子系统QBATCH或QBASE中运行其中的作业。

|
|
Figure
5-18. Job and JOb Queue Commands - Overview |
如图5-18,有很多命令可以用来对作业进行监控,但有一些命令只能用于批处理作业,如:WRKSBMJOB、WRKJOBQ等。其他的命令如WRKUSRJOB,ENDJOB,ENDJOBABN等对批处理和交互式作业都可以用。各个命令的功能及使用见后面的介绍。

|
|
Figure
5-19. Work with Submitted Jobs |
用户可用WRKSBMJOB命令来查看批处理作业的状态及对其进行操作。输入WRKSBMJOB命令后,可选择所查看的作业的范围:
*USER 由当前用户提交的作业
*WRKSTN 在当前工作台上提交的作业
*JOB ]]由>当前作业提交的作业</正文> <换行/> <换行/>
<正文><
|
|
Figure
5-20. Working with Job Queues |
用WRKJOBQ命令可查看作业队列的相关信息,如等待的作业数,此作业队列的状态,与其相关的子系统等。
在WRKJOBQ界面上,可对其中的作业队列进行以下操作:
3=Hold
将这个作业队列hold住,即阻止其中的作业运行。但当前正在运行的作业不会受影响。相当于使用HLDJOBQ命令。
4=Delete
删除此作业队列,但前提是此队列里没有提交的作业。相当于使用DLTJOBQ命令。
5=Work with
可查看在此作业队列中等待运行的作业并对其进行相关操作。相当于使用WRKJOBQ命令。
6=Release
释放已被HOLD的作业队列,允许里面的作业运行。相当于使用RLSJOBQ命令。
8=Work with job schedule entries
查看此作业队列中未运行的作业的运行时间安排。相当于使用WRKJOBSCDE命令。
14=Clear
清除此作业队列中的所有作业。相当于运行CLRJOBQ命令。

|
|
Figure
5-21. Working with Jobs on a Job Queue |
在运行WRKJOBQ命令时指定某个作业队列,就可以查看这个作业队列里的作业的相关信息。在队列里作业是按优先级高低来进行排序的,这也是它们的运行顺序。用户若拥有*JOBCTL权限,就可对这些作业进行控制。
选项2可修改作业属性,相当于运行CHGJOB命令。注意:作业的三部分的名字是不能改的。
选项3可暂时阻止作业运行。若要使作业运行,则得先释放作业(选项6)。
选项4是结束作业。注意:一旦作业被结束,就意味着把它从系统中删除,没有办法重新启动此作业。

|
|
Figure
5-22. Work with Job Schedule Entries |
用WRKJOBSCDE命令可设定作业定期运行,每周一次,每天一次,或在某个特定的时间运行。

|
|
Figure
5-23. Working with User Jobs |
用WRKUSRJOB可对用户作业进行操作。在参数STATUS OF USER JOBS中输入不同值,可显示不同范围的作业,如*ACTIVE(所有激活的作业),*JOBQ(等待运行或正在运行的作业),*OUTQ(已经完成的作业)。
在WRKUSRJOB界面可对作业进行各种操作。选项4可结束作业。系统默认以控制方式来结束作业。但如果用户认为一个作业在控制方式下不会正常结束,也可以改为立即方式结束(将选项4的参数HOW TO END的值设为*IMMED)。注意:如果作业正在更新数据,以立即方式来结束作业可能会导致破坏。
WRKUSRJOB STATUS(*ACTIVE) JOBTYPE(*INTERACT)
ASTLVL(*BASIC)

|
|
Figure
5-24. Work with Sign-on Users |
WRKUSRJOB可以用来操作所有状态的用户作业。以上显示了通过选择适当的参数,可以操作所有在系统中登录的用户交互式作业。

|
|
Figure
5-25. Ending a User Abnormally |

|
|
Figure
5-26. Disconnecting a User Job |
DSCJOB将交互式作业暂时从系统断开,返回sign-on Display,当同一用户再次从同一设备登录时自动进行重新连接。
运行DSCJOB命令后,当前作业信息将被保存起来,在工作台屏幕上出现登录画面,再次登录后,能准确回到上次退出的地方。用户须拥有*JOBCTL权限才能使用此命令。
系统值QDSCJOBITV指示系统在结束该交互式作业之前临时断开的时间(以分钟计算)长度,它的值允许在5-1440分钟(默认值为240分钟)之间或*NONE(系统不会自动结束临时断开的作业)。修改此系统值会立刻生效。
Disconnected jobs end abnormally at IPL.
Disconnect job is also an option on the System Request menu.

|
|
Figure
5-27. AS/400 Printing Elements |
与作业队列相似,输出队列(output queue)也是系统中的一种对象(*OUTQ)。输出队列存放作业在子系统中运行时产生的输出数据(以下称Spooled file),严格讲应是Spooled file的控制信息。AS/400为了使多个用户能共享少量的,且价格昂贵的打印机,对作业的输出采用SPOOLing(Simultaneous Peripheral Operations On Line
外围设备同时联机操作 也称为假脱机)技术。在系统中有一个程序叫Spool Intercept(截获)。每个有打印数据产生的程序应在程序开头说明该程序要使用的Print file名字,在Print file中定义了输出信息的打印属性,如每页多少行,每行多少字符,用什么样的打印格式,使用哪个输出队列(OUTQ)等,其中有一个参数SPOOL,决定是否采用SPOOL技术。当程序中有输出信息产生时,如果程序说明的Print file中定义了参数SPOOL(*YES),系统的Spool Intercept程序就会将这些输出信息与Print file的输出属性一起,构成一个Spooled file放在磁盘上,同时将该Spooled file的控制信息放在输出队列中排队等候,最后由打印作业通过执行Writer程序将它们打印出来。 图5-28
给出了一个Output Queue的实例。系统中包含多个输出队列,每个输出队列中包含可能来自于不同用户的不同作业的多个脱机打印文件。系统在为每一个打印机创建设备描述时生成一个与打印机设备描述同名的输出队列,称为打印机的默认输出队列。
打印作业(Spooling Job)实际上也是一个以批处理方式运行的作业,当操作员发出STRPRTWTR(Start Print Write)命令后,系统会创建一个批处理作业,并将它放到作业队列QSPL中排队,由QSPL子系统负责选中它并为其分配内存池(一般地都用*SPOOL),然后调入相应的Writer程序执行。Writer是一个系统程序,它取出相关的输出队列中的Spooled file,在指定的打印机上打印。可以用WRKWTR命令来控制打印机的打印操作。打印作业的流程参看 图5-29
。

|
|
Figure
5-30. AS/400 Printer Load Balancing |
对于一个输出队列来说,可以通过启动多个打印机Writer将输出队列与多个打印机关联起来(最多10个),这样可以很容易地使多个打印机的工作量平衡起来。

|
|
Figure
5-31. Job Default Output Queue and Print Device |
Printer Device File Print Output
对于一个作业如何选择打印机和输出队列呢?系统按照上图所示的顺序进行确认该作业使用的输出队列和打印机设备。系统先检查打印机设备文件(The printer device file ),再检查作业描述(job description),用户描述(user profile),工作站设备描述(device description),系统值QPRTDEV(system value QPRTDEV )。此过程中一旦检测到指定的输出队列和打印机设备,将不再往下检测。例如,如果在作业描述中指定了输出队列名字和打印机设备名字,系统就不会继续检测用户描述,工作站描述和系统值QPRTDEV。

|
|
Figure
5-34. Work with Spooled Files |
有四种控制作业打印输出(Spooled files)的途径,这里先讨论三种:
WRKSPLF
这是对脱机打印文件进行操作的最有用的命令。可按用户,打印设备和状态对查看的脱机打印文件的范围进行选择。与jobs和job queues一样,spooled files也能被held、released、deleted,可以分别通过选项3、6和4来进行以上操作,同时也可以通过2选项changed,即命令 CHGSPLFA 。值得注意的是只有进行中的spooled files才能held。
WRKUSRJOB
在WRKUSRJOB界面下的8选项可查看某一作业相关的脱机打印文件并进行操作。
WRKOUTQ
用此命令查看在某一输出队列里的所有脱机打印文件。

|
|
Figure
5-36. Work with Writers |
用WRKWTR可查看系统上所有的writer的状态。可能状态有:END(Ended),STR(Started),HLD(Held),MSG(Message waiting),JOBQ(Job Queue)。
可对WRITER进行以下操作:
1=Start
启动writer。相当于运行 STRPRTWTR
命令。默认下,启动与打印设备同名的输出队列的writer。
2=Change
改变writer的属性。这些改变在当前文件打印结束或在队列里没有文件等待打印时生效。
3=Hold 和 6=Release
用3选项和6选项可使writer暂停打印,在需要时再重新启动。在重新启动writer时,可设置从哪一页开始打印。
4=End
结束writer,停止打印。默认的结束方式为控制结束,即等待当前文件副本打印完毕后结束writer。也可以设置为立即结束或在当前页打印完时结束。
7=Display message
查看打印机信息。只有当打印机的writer被启动后此选项才有效。

|
|
Figure
5-38. Restart a Printer |
Basic assistance level和Intermediate assistance level下的WRKWTR界面相似,但有一些选项和功能键不同。
注意:在Basic assistance level下,不能对writer进行Change、Hold、
Release操作,但可以重启(Restart)writer。 Restart完成的功能相当于在Intermediate assistance level下先Hold再Release。
◇ Job
Related Commands
◇ Job
Description Related Commands
◇ Job Queue
Related Commands
◇ Output Queue
Related Commands
◇ Writer Related Commands
◇ Spooled file
Related Commands
◇ Subsystem and Subsystem Description Related Commands
◇ Other Related Commands
-STRPFRMON---Start Performance Monitor
本章总结

有许多种不同类型的作业,当它们在AS/400系统上运行时要历经许多阶段。上图显示的是交互式作业与批处理作业运行时所经历的阶段及对应每一个阶段监控作业最常使用的命令。除命令WRKACTJOB之外,其它命令在前面的内容中已经做过介绍。WRKACTJOB命令用于显示当前系统上活动作业的性能和状态信息,将在第九章中详细介绍。
本章主要介绍了以下内容
1.Job的定义、分类及名字的组成。
2.Interactive jobs和Batch jobs的定义及处理步骤。
3.Job Description的含义、作用及相关命令。
4.Subsystem、Subsystem Description、Pool的含义及相关命令。
5.Job queue和队列中的作业。
6.Running Job
7.Output queue和Spooled file。
8.Printer writer 及相关命令。

本章的主要内容就是系统开机和系统关机。
系统启动称IPL(Initial Program Load),在做IPL的过程中系统程序被从储存器中重新载入并且做硬件检查。IPL可分为Unattended IPL,Attened IPL和Automatic IPL。

|
|
Figure
6-1. IPL an AS/400 - Overview |
Three types of IPLs:
Unattende IPL
Attende IPL
Automatic IPL
AS/400系统的启动称为IPL(Initial Program Load) 在做IPL的过程中系统程序被从辅助存贮器中载入,并且做系统硬件检查。共有三种类型IPL:
1.
Unattended IPL:
用户通过控制面板上的电源按钮来启动系统,不需要用户在系统控制台登录进行干预。当IPL完成后,所有可用的工作站上都显示登录界面。
2.
Attended IPL:
用户必须在控制台上登录,在做IPL的过程中需要用户的干预,回答相关问题,完成一定的系统配置。
3.
Automatic APL:
在一些特殊的情况下,系统会基于一定的条件设置自动做IPL,如掉电、预定的日期和时间等。
系统做IPL 的时间长短依赖于AS/400系统型号和配置。系统的面板上通常包括以下部件:电源灯、电源按钮、模式按钮、上下选择按钮和确定按钮。通过模式按钮可以在系统的四种模式(Manual、Normal、Secure和Auto)之间切换,通过上下选择按钮和确定按钮可以在面板上完成一些操作,特别是在系统出现错误无法登录时十分有用。

|
|
Figure
6-2. Unattended IPL Steps - Overview |
做Unattended IPL的步骤:
当系统正在运行时:
①设置面板的模式按钮为Normal,且设系统值QIPLTYPE的值为0(Unattended IPL);
②在命令行中输入PWRDWNSYS *IMMED RESTART(*YES)然后按回车键;
③在IPL结束后将模式按钮设为Normal 。
当系统关机时:
①设置面板的模式按钮为Normal,且设系统值QIPLTYPE的值为0(Unattended IPL);
②打开所有外部设备的电源,如工作站、打印机、磁带机等;
③按下面板上的电源按钮;
④在IPL结束后将模式按钮设为Normal。
Note: Always set Mode (c) to
Attended IPL Steps:

|
|
Figure
6-3. Attended IPL Steps - Overview |

|
|
Figure
6-4. Attended IPL Steps(2) |
Attended
IPL DEMO
在一般情况下应该完成Unattended IPL,但在以下的条件下要做Attended IPL:
◇改变IPL选项(如日期和时间,系统能否自动配置及AS/400运行环境的设置);
◇安装新的操作系统版本;
◇访问专用服务工具(Dedicated Service Tools)来定义或改变硬盘的配置(DST工具可在操作系统不运行的情况下来访问);
◇恢复系统失败。
做Attended IPL的步骤:
当系统正在运行时:
①打开系统控制台;
②接通所有外设的电源,如显示终端、打印机、磁带机和通信控制器等;
③将面板上的模式按钮设为Manual;
④在命令行中输入PWRDWNSYS
*IMMED RESTART(*YES)然后按回车键。(如果不能够输入命令则先通过面板上的电源按钮将系统关闭,然后再按电源按钮开始做IPL);
⑤根据控制台显示的要求,输入相应的回答或完成一定的设置完成IPL的过程;
⑥将面板上的模式按钮设置为Normal。
当系统关机时:
①打开系统控制台;
②接通所有外设的电源,如显示终端、打印机、磁带机和通信控制器等;
③将面板上的模式按钮设为Manual;
④按面板上的电源按钮启动系统;
⑤根据控制台显示的要求,输入相应的回答或完成一定的设置完成IPL的过程;
⑥将面板上的模式按钮设置为Normal。
|
|
Figure
6-11. What is a System Value |

|
|
Figure
6-12. System Values and IPL |
系统值(System Value)
AS/400系统提供了一组系统值,它们用于定义整个系统的大环境,控制和改变系统范围内的操作。用户不能创建和删除系统值,但可以显示和修改。操作系统值的命令有WRKSYSVAL、DSPSYSVAL、CHGSYSVAL。系统值分为若干类,如日期时间类(QDATE、QTIME)、系统控制类(QIPLTPYE)、库列表类(QSYSLIBL、QUSRLIBL)、安全类(QSECURITY)等。WRKSYSVAL命令可按类操作系统值,例如,WRKSYSVAL *SYSCTL 可以列出系统控制类系统值。要修改系统值必须以用户QPGMR、QSYSOPR、QSRV登录或有*ALLOBJ权限。
一些与IPL有关的系统值:
1. QIPLDATTIM:
设定日期和时间用来做自动IPL,却省值为*NONE。日期的格式由另外一个系统值QDATFMT来定义,日期的分隔符由系统值QDATSEP定义。
2.
QIPLSTS:
用来记录最近一次IPL的类型,可选值及其含义为,0代表从系统的面板上完成IPL;1代表在出现掉电后作的Unattended IPL;2代表通过命令PWRDWNSYS完成的Unattended
IPL;3代表有QIPLDATTIM的设置完成的Unattended
IPL;4代表通过远程控制完成的Unattended IPL。缺省值为0。
3.
QIPLTYPE:
定义通过系统面板完成的IPL的类型。0代表unattended IPL;1代表使用了DST(Dedicated Service Tools)的attended IPL;2代表使用DEBUG状态的attended IPL。0是缺省值。
4.
QPWRRSTIPL:
可以取值为0和1。其中0代表在出现掉电的情况下不会做自动IPL;1代表在出现掉电的情况下做自动IPL。0是缺省值。
5.QRMTIPL:
可以取值为0和1。其中0代表不可以通过远程系统控制IPL;1代表可以通过远程访问控制系统的IPL。0是缺省值。
6.
QUPSDLYTIM:
在出现掉电的情况下,控制多长时间系统将开始做保存主存中的内容、关闭系统等工作,如果时间结束前恢复电力供应则关闭计时器,如在恢复电力供应前时间已到则系统开始做备份工作,只有在系统使用了电池组或不间断电源时该系统值才有意义。*BASIC或*CALC表示时间的长短根据系统的配置计算得出(在PowerPC系统中*BASIC和*CALC含义相同);*NOMAX表示不设置最大值;0表示在出现掉电的情况下自动关闭系统;1~99999为定义等待的秒数。*CALC为缺省值。
7.QUPSMSGQ:
定义在出现掉电的情况下时,消息将会被发送到哪一个消息队列。缺省值为QSYS/QSYSOPR。
综上所述,自动IPL与三个系统值有关,QPWRRSTIPL、QRMTIPL和QIPLDATTIM。为了能够做自动IPL除了相应的系统值设置为允许自动IPL,另外一个条件是面板上的模式按钮必须被设置成Normal或Auto。

|
|
Figure
6-13. Automatic IPLs |
在不同的情况下有三种Automatic IPLs,分别由三个不同的系统值控制:
1. Set QPWRRSTIPL to 1: 如果电源故障,则当电源恢复时系统自动地完成IPL。
2. Set QRMTIPL to 1: 允许远程IPL。
3. Set QIPLDATTIM to appropriate date and time: 系统在某一规定的时间启动。

|
|
Figure
6-14. Go Power |
Power On and Off Tasks 菜单选2项,可以修改 AS/400 系统的开关机时间表。按F10可以设置每日默认的开关机时间, 见图6-15
。还可以修改每周的第一天是哪一天。当系统快要关机时,系统会自动给用户送一个消息。可以设置系统在关机前多少分钟给用户送这个消息。当回答这个消息的时候,可以把关机时间延迟30分钟到3个小时,那么系统会在指定的这个时间后关机。不过,只有一次机会修改延迟时间。
选项1可以查看开关机时间设置。选项3是立刻关机。选项4是立刻关机后再起机。

|
|
Figure
6-16. Stopping an AS/400 |
系统关机可以通过以下方式来完成:
◇PWRDWNSYS命令
可以使用这条命令来关闭系统,它是被推荐的关机方法。
◇POWER菜单
POWER菜单的主要用途是可以设置开机关机时间表。当然,它还可以立即关闭系统或者关闭系统后再启动系统。
◇Power Pushbutton(B)
如果不能使用PWRDWNSYS命令和POWER菜单来实现关机时,可以通过Power Pushbutton(B)按钮来实现关机。

|
|
Figure
6-17. Steps Prior to Power Down |
在关机前应该依次做以下工作:
①将QSYSOPR消息队列设置为*BREAK模式。
②将系统设置为限制状态(将多余的作业和子系统关闭)。
③通知所有系统中的用户,系统将关机。
④关闭所有交互式作业。
⑤检查所有可能被影响的批处理作业。
⑥关闭所有的用户作业(正在做关机操作的作业除外)。
⑦检查QSYSOPR消息队列中是否有系统已处在限制状态的消息。(当系统处于限制状态时QSYSOPR消息队列会接到相应的消息)。
After
you have done the steps prior to powering down, you can use the Power Down
System (PWRDWNSYS) command to stop the system immediately or in a controlled
fashion. ![]()
建议使用PWRDWNSYS命令来关闭系统.
PWRDWNSYS的具体用法: Using PWRDWNSYS

|
|
Figure
6-18. Using the Power Pushbutton |
只有当PWRDWNSYS命令和Power On and Off Tasks menu不能用时才使用 Power Pushbutton关机。
直接使用电源按钮B步骤:
①确定磁带设备中没有磁带;
②确定Mode(C)被设置成“Manual”;
③按一下按钮B(功能/数据显示区会出现O?),然后再按一次,这样系统会马上关机。
当然,在你第一次按了电源按钮B后,也可以取消这个关机操作。只需要按控制面板上任何其它的按钮。
由于在直接使用电源按钮B关机时,可能会对数据文件造成不可预计的结果,会导致下一次IPL需花费更长的时间,所以使用时必须万分小心。

PWRDWNSYS - Power Down System
本章总结

1.
Unattended IPL的含义及完成的步骤。
2. 在什么条件下需要完成Attended IPL 、Attended IPL的含义及完成的步骤。
3. 系统值的含义、分类及操作系统值的命令,并掌握IPL有关的系统值:QIPLDATTIM、QIPLSTS、QIPLTYPE、QPWRRSTIPL、QRMTIPL、QUPSDLYTIM、QUPSMSGQ。
4. Automatic IPLs的含义及条件。
5. PWRDWNSYS命令的功能、使用及各参数的含义。
6. Power On and Off Tasks菜单的各选项的功能及使用。
7. 什么条件下使用Power Pushbutton.。

AS/400安全体系包括系统安全、用户控制和资源保护三个层次,融贯于整个计算机系统中。可以说从外部硬件到系统内部,从用户登录开始,到用户访问的每一界面(菜单、命令行等),访问的任何资源,安全检查一直处于活跃状态。能有效地对数据进行保护,免遭破坏和非法访问。
本单元介绍OS/400的包括用户描述、与安全相关的系统参数、权限表、组描述、安全工具及安全向导等安全概念。
安全包括系统内置的用来控制系统设备、数据、系统上安装程序使用的安全措施。安全阻止未授权的用户访问数据,从而保护数据的完整性。
菜单是用来控制用户访问权限的方法之一。用户描述扩展了此权限,可控制用户的登录。

|
|
Figure
7-1. Types of Security |
There are 3 types
of security on the AS/400 system: Physical security 、 Sign-on security and Resource security
对于AS/400计算机系统来说,系统应该有三级安全保护机制。物理安全性(Physical Security)、登录安全性(Sign-on Security)和资源安全性(Resource Security)。物理安全性是指提供系统和相关设备及存贮数据介质的保护,以防意外或有意的数据丢失、破坏。登录安全性限制谁可以在系统上登录,以及登录后可以执行那些操作。资源安全性是在用户登录系统后,附加的用于保护对象和对象中数据安全性,避免非法访问。这里我们主要讨论后两种安全性管理。

|
|
Figure
7-2. Security Levels |
The system offers 5 levels of security:10,20,30,40 and 50.
为了满足商务需求,AS/400的安全机制能够实现从没有安全性到C2级标准的安全性,这是依赖于系统值的调节功能。与安全有关的系统有很多,最重要的是QSECURITY。系统值SECURITY用于制定当前系统运行在什么样的安全级别,它有五个值:10、20、30、40、50,分别对应五个不同的安全级别。以V4R
10级: 没有安全性。这是系统的最低安全级别,表示系统没有安全性。进入系统不需要口令,所有用户都有权访问系统中的全部资源,对系统对象的访问也没有限制。
20级: 20级的用户在登录前必须先注册,注册用户在登录时,要输入正确的口令才能进入系统。一旦用户成功进入系统,即可访问任何系统资源,这时和10级没有区别。但在20级的系统中,可以设定用户为受限制用户,只允许进行菜单选择,不允许使用命令行。
30级: 资源保护。30级具备20级的全部功能,所不同的是在30级的系统中,用户对系统资源的访问受到了限制。系统设置了用户对资源的访问权限,只有获得相应权限的用户才可以访问相应的系统资源。但在这一级别上,用户的对象和操作系统的对象不加区别,用户可以授权访问大多数MI下方的内部对象。
40级: 40级与30级相比又有很大程度的加强。在40级的系统中,不允许访问非标准界面,即用户不允许访问或调用全部的MI指令。用户程序只能使用IBM认可的由部分MI指令组成的标准指令集,包括数百个供独立软件提供商(ISV)使用的API。然而,在40级安全性下,禁止应用程序使用的那些MI指令对于OS/400来说还是有效的。为了区分OS/400程序和用户程序,在AS/400中定义了两个执行状态:系统态(System State)和用户态(User State)。AS/400中的每一个进程都运行于其中的某一个状态,只有在系统态下才能使用对应用程序禁止的MI指令。
50级: C2级保护。美国联邦政府定义的安全级别从高到低依次为A、B、C、D。B和C下又分了若干子级别。C2级是商务计算中的最高级别。50级安全性获得了联邦机构的认证,符合联邦政府C2级安全级别。如果系统运行在50等级下,系统性能会因其带来的附加检验而受影响。
常用的是30和40两个级别。有相关权限(*ALLOBJ或*SECADM)的用户可对QSECURITY系统值自由修改,但所改的系统值只在下一次IPL时生效.可用DSPSECA命令显示系统的安全级别。

|
|
Figure
7-3. Security Related System Values |
除了QSECURITY之外,还有一些系统值与安全密切相关,在不同的层次上实施安全控制。以下几个是安全管理员经常使用的。
QMAXSIGN 此系统值控制本地或远程用户的最多无效登录次数。当达到最大值时系统采用QMAXSGNACN系统值中的相应措施。
QMAXSGNACN 此系统值决定当用户无效登录次数达到最大值时,系统应采取的相应措施:①逻辑断开设备 ②使用户描述无效 ③既逻辑断开设备又使用户描述无效。
QINACTITV 此系统值指定系统所允许的交互式作业处于非活动状态的分钟数。主要是预防没有Sign-Off而离开工作站,可将此值置为 *NONE (系统不检查非活动的交互式作业)或置为5-300 分钟.当规定的时间到时,系统采取QINACTMSGQ系统值规定的措施。建议值为30-60分钟。
QINACTMSGQ 此系统值指定当交互式作业处于非活动状态的时间间隔(即为QINACTITV所规定的)后,系统所应采取的相应措施。交互式作业可能被终止、断开连接,或者有消息会被送到指定消息队列。建议值为*DSCJOB
QDSPSGNINF 显示最后一次Sign-On日期和时间,无效的Sign-On次数,以及再过几天需要更换口令。能有效地帮助用户发现是否有其他用户使用过或试图使用自己的帐号。
QLMTSECOFR 限制拥有特权(*ALLOBJ或*SERVICE)的用户只能在指定的终端上登录,防止权力扩散。
QPWDEXPITV 此系统值通过跟踪最进修改密码时间或用户描述的创建时间,来控制用户使用密码的天数。在密码将要失效的前七天,用户登录时(即使不显示登录信息)会有一警告,告诉用户更新密码,如果在规定时间内用户没更新密码,用户不能登录,直至更新密码为止。此参数值可置为*NOMAX (密码可长期使用) 或者一定天数(1-366).
QLMTDEVSSN 限制用户同时能否在多台工作站上Sign-On。
注:可用WRKSYSVAL *SEC 命令查看修改所有安全相关系统值。

|
|
Figure
7-4. Work with System Values |

|
|
Figure
7-5. User Profile |
What is User Profile
DSPUSRPRF USRPRF(USER××) TYPE(*OBJOWN,*OBJAUT)
用户描述既是一个OS/400对象又是一个MI系统对象,每个用户都有一个对应的用户描述,当然也允许多个用户共享一个用户描述。在用户描述中包含有和系统安全有关的信息,这些信息被用于OS/400安全功能部分和SLIC对象权限功能部分。
CRTUSRPRF命令或AS/400的操作浏览器允许安全员或安全管理员建立用户描述并指定用户安全操作的参数。
CRTUSRPRF命令的重要参数
DSPUSRPRF USRPRF( )
TYPE(*OBJOWN,*OBJAUT)命令显示用户拥有的对象或被授权的对象。此命令的TYPE参数是非常有用的参数,给不同的参数值可以查看指定用户的不同信息。

|
|
Figure
7-7. System Authority |
There are two
types of authority available with the AS/400 system: special authority and specific Authority
Specifying Specific Authority for Objects in the Integrated
File System
在AS/400系统上,用户访问某一对象(Object)或完成某一任务的能力是受其操作系统OS/400控制的,OS/400控制是基于用户对对象或任务的权限(即访问对象或完成任务的能力)。系统权限组成见图7-7,它使用两类权限:特殊权限 (Special Authority ) 和特定权限(Specific Authority ),其中特殊权限与用户描述(User Profile )相关,控制系统操作,拥有系统范围的作用域,完成一定任务不需要附加对象权限;特定权限与对象相关,控制用户如何访问对象(在用户特殊权限被允许完成任务的情况下)。
特殊权限: 特殊权限共有8种,其含义和功能描述见 图7-12。
特殊权限在用户描述中设定,由命令CRTUSRPRF或CHGUSRPRF中的参数SPCAUT指定,当SPCAUT设为 *usrcls,且系统的安全级别在30 级或以上,用户级别(User class)与特殊权限有 图7-13 描述的对应关系。当然对指定用户级别,你可以随意赋予其一种、多种特殊权限或不赋予任何特殊权限。查找用户特殊权限需使用 DSPUSRPRF命令。
特定权限: 特定定权限分为对象权限(Object Authority)和数据权限(Data
Authority)见图7-7。对象权限定义对对象整体的操作权限;数据权限定义对对象内部数据的使用权限,10种指定权限的功能描述见 图7-14
。在授权时可以指定其中的一种、几种权限(称为User-defined),或使用系统定义的权限(称为 system-defined)*ALL、 *CHANGE、
*USE、 *EXCLUDE.
可用GRTOBJAUT或RVKOBJAUT命令授权对象或取消对象权限,通常用WRKOBJ命令完成对对象的各种操作,包括对对象权限操作。要授予或取消一个对象的权限,用户描述必需满足下列条件或其中之一:(1)拥有此对象;(2)拥有特殊权限*ALLOBJ;(3)拥有对象*OBJMGT权限(仅有*OBJMGT权限不允许授予另外一个用户简要表*OBJMGT权限)。特定权限可以通过用户描述或对象查看,分别使用DSPUSRPRF或DSPOBJAUT命令。
Public Authority
at Object Creation

|
|
Figure
7-15. Public Authority at Object Creation |
Where *PUBLIC
Authority Comes from

|
|
Figure
7-16. Where *PUBLIC Authority Comes from |
*PUBLIC Authority

|
|
Figure
7-17. *PUBLIC Authority |
Public由有权限登录到系统上的任何人组成。Public对应的权限称为公共权限,可以是任何指定的权限,它控制用户对未授权对象的存取,通常在对象建立时生成(CRTxxx命令中的AUT参数的值为对象的公共权限),之后可根据需要修改(用GRTOBJAUT和RVKOBJAUT命令,参数USER设为*public,在参数AUT中设权限)。 公共权限是一种有效保护数据的方式并且能提供好的性能。保留字*ALL、*CHANGE、*USE和*EXCLUDE可被用来授予所创建对象的公共特定权限。*ALL 代表所有对象权限和数据权限;*CHANGE 代表*OBJOPR 和所有的数据权限;*USE代表*OBJOPR、*READ和*EXECUTE权限;*EXCLUDE表示拒绝访问对象及其数据。
当对象被创建时,公共权限由CRT×××命令的AUT参数所决定,默认值为*LIBCRTAUT。*LIBCRTAUT可向前参考CRTLIB命令的CRTAUT参数。CRTAUT参数指定了在库中创建的对象的默认公共权限。如果CRTAUT的参数值为*SYSVAL,则公共权限的值就是系统值QCRTAUT的值。
例如:
CRTLIB LIB(WORK) AUT(*USE) CRTAUT(*CHANGE)
CRTPF FILE(WORK/DAILY) AUT(*LIBCRTAUT)
结果文件DAILY的公共权限为*CHANGE。
CRTLIB LIB(APP1) AUT(*USE)
CRTAUT(*EXCLUDE)
CRTPF FILE(APP1/TRAN1) AUT(*LIBCRTAUT)
结果文件TRAN1的公共权限为*EXCLUDE。
QCRTAUT *CHANGE
CRTLIB(CUST) AUT(*USE) CRTAUT(*SYSVAL)
CRTPF FILE(CUST/CUST1) AUT(*LIBCRTAUT)
结果文件CUST1的公共权限为*CHANGE。
What is a Group
Profile

|
|
Figure
7-18. What is a Group Profile |
Group Profile
Example

|
|
Figure
7-19. Group Profile Example |
组描述允许多个用户共享一个公共的描述(Profile),此外,这些用户都有自己的用户描述。用户作为组的一个成员,可以共享公共对象。组中所有成员的权限取决于组描述。对组描述的访问是通过用户的用户描述进行的。如果一个用户的用户描述中已定义了有关权限,则忽略组描述中的权限。通过修改组成员的用户描述可以增加或减少该成员的权限。如图7-19所示,组DEPTA包括两个成员:MICHELLE和CHRIS。成员的权限部分是自身所有的,部分是从组GRPMGRS中得来的。
组的具体实现:
1.先建立组描述(用CRTUSRPRF命令,最好置参数PASSSWORD的值为*NONE)。
2.使用户描述成为组描述的成员,将CRTUSRPRF或CHGUSRPRF命令中的GRPPRF
或SUPGRPPRF参数设置为所建组描述的名称。
3.给组颁发权限,可以使其成员得到相同的权限,当然可以在用户描述中覆盖组 所具有的权限。
使用组描述应注意:组不能是另外一个组的成员;一个用户描述最多能成为16个组描述的成员,第一个必须在参数GRPPRF上指定,可在SUPGRPPRF参数指定另外15个组描述。当一个用户有很多组描述时,所有组中的权限加在一起以决定用户拥有的权限。
What is an Authority
List

|
|
Figure
7-21. What is an Authority List? |
An authorization
list is an object (object type *AUTL) that can be used to secure other objects.
Authority List
Example

|
|
Figure
7-22. Authority List Example |
权限表是一种对象(对象类型是*AUTL),可以用来保护其他对象。对具有类似安全需求的一组对象进行保护,权限表包含用户列表及各用户对权限表保护的一组对象的权限,不同用户对该表保护的对象可有不同的权限。
实现方法:
①先建立权限表(用CRTAUT命令)。
②权限表与需管理的对象建立连接(用CRTXXX AUT(Auth-list-name)或GRTOBJAUT AUTL(Auth-list-name)命令)。
③在权限表中添加用户并设置权限(用ADDAUTLE命令)。
使用权限表应注意以下几点:
◇权限表不能保护*USRPRF和*AUTL类型的对象,一个权限表可以保护无限量的对象,但一个对象仅能受一个权限表保护。
◇可以使用权限表定义公共权限。假如公共权限设为*AUTL,对象就从权限表上得到公共权限。
◇仅仅对象的拥有者或带有*ALLOBJ特殊权限或对对象有*ALL 权限的用户可以增加或从权限表上移去对象。
◇可以对权限表颁发操作特殊权限*AUTLMGT,带有*AUTLMGT的用户允许增加或移去表上的用户,且改变用户的权限。
◇仅可以给其它用户相同或比自已少的权限。
对权限表进行操作可用如下命令:
CRTAUTL 创建权限表
ADDAUTLE 添加权限表条目
EDTAUTL 编辑权限表
WRKAUTL 处理权限表
图7-22所示例子中,权限表AUTL1的所有者为USER3。权限表保护四个对象:LIBA(*LIB)、LFILEB(*FILE)、PFILEC(*FILE)和PROGD(*PGM).表中每个用户对四个对象可以有不同的权限,但同一用户对它们有相同的权限。USER5对于权限表AUTL1有管理权限,除此之外其他用户对这些对象没有任何操作权限。
以下是这个例子的实现方法之一:
1.用CRTUSRPRF命令创建用户描述(USER1,USER2,USER3和USER5)。
2.创建权限表,并增加用户及授权。
CRTAUTL AUTL(AUTL1) AUT (*EXCLUDE)
ADDAUTLE AUTL(AUTL1) USER(USER1) AUT(*USE)
ADDAUTLE AUTL(AUTL1) USER(USER2)
AUT(*CHANGE)
ADDAUTLE AUTL(AUTL1) USER(USER3) AUT(*ALL)
ADDAUTLE AUTL(AUTL1) USER(USER5)
AUT(*CHANGE*AUTLMGT)
3.创建对象。
CRTLIB LIB(LIBA) AUT(AUTL1)
CRTLF FILE(LFILEB) AUT(AUTL1)
CRTPF FILE(PFILEC) AUT(AUTL1)
CRTPGM PGM(PROGD) AUT(AUTL1)

|
|
Figure
7-23. Authorization List versus Group Profile |
Group
profile: Many
users in the group,each with the same authority as the other,but which may
differ object to object as the group profile is authorized.
Authorization
list: Many
users,each of whose authority may be different from the other but it stays the
same for every object which is secured by the authorization list.
Spend some time on this comparixon between a group profile and authorization
list.
Example1:
GRPPRF APDEPT GRTOBJAUT
OBJ(APFILE1) USER(APDETPT) AUT(*USE)
USERS: AP1 GRTOBJAUT OBJ(APFILE2) USER(APDEPT) AUT(*CHANGE)
AP2
AP3
Resulting authority: APFILE1 APFILE2
AP1 *USE *CHANGE
AP2 *USE *CHANGE
AP3 *USE *CHANGE
Example2:
AUTL: PAYLIST GRTOBJAUT
OBJ(PAYFILE1) AUTL(PAYLIST)
USERS: PAY1 *ALL
PAY2 *CHANGE
PAY3 *USE
Resulting authority: PAYFILE1 PAYFILE2
PAY1 *ALL *ALL
PAY2 *CHANGE *CHANGE
PAY3 *USE *USE
What is Adopted
Authority

|
|
Figure
7-24. What Is Adopted Authority? |
Adopted Authority
Example

|
|
Figure
7-25. Adopted Authority Example |
借用权限(Adopt Authority ):有时对一个对象或一个应用,根据具体情况在不同场合用户需要不同权限,需使用借用权限,借用权限给用户临时的使用程序中所需的对象,它是借用程序拥有者的权限给程序的使用者,包括特权和特定权限。能否使用借用权限是由程序决定的。假如在此程序创建时将命令CRTXXXPGM中的参数USRPRF的值设为*Owner或程序创建后用命令CHGPGM将参数USRPRF的值设为*Owner,那么凡是对程序有调用权限的用户,在程序运行期间都可借用程序拥有者的权限。在程序运行中当程序的调用者的权限不够时,系统会检查程序拥有者的权限。
如图7-25所示,虽然USER5无权访问文件FILEX 和 FILEY,当 USER5 运行程序
PROG1,USER5借用PROG1所有者SPVR1的权限,这样就有权访问文件 FILEX 和
FILEY。
使用借用权限应注意以下几点:
(1)对象类型为*PGM,*SRVPGM和*SQLPKG的对象有借用权限功能。
(2)用户简要表中所有特殊权限(例如*ALLOBJ)和指定权限都可被借用,假如用户简要表是一个组的成员,则组的权限不能被借用。
(3)仅当用户拥有程序或有*ALLOBJ和*SECADM特殊权限时,才可以改变USRPRF参数的值。
(4)提交作业将不能使用借用权限。
(5)仅当用户、用户组或public对对象完成操作需要的权限不足够时,才查借用权限。
(6)借用权限为满足变化的权限需要提供了一个重要工具,但要小心使用,以防造成安全漏洞。

|
|
Figure
7-26. Authority Checking |
当一个用户企图对一个对象完成某一操作,系统要检查用户对此操作是否有足够的权限。系统首先检查对对象所在库的权限是否足够;若对库的权限足够,系统进一步检查对对象本身的权限。在权限检查的处理过程中,任何权限发现(即使对需要的操作不足够),权限检查停止,并且访问被允许或否定。对这个原则,借用权限例外,它可以临时覆盖任何发现的指定权限。
系统检查用户对对象的权限是按照如下流程图进行的:检查用户是否有*ALLOBJ的特殊权限?用户对对象有无特定权限?用户是否在保护该对象的权限表上,表上能否找到相应权限?用户是否为某个组的成员,该组是否有*ALLOBJ特殊权限?组对对象有无特定权限?组是否在保护对象的权限表上? Public对对象有无特定权限? Public是否在保护该对象的权限表上?假如有借用权限,必要时系统检查程序拥有者的权限。
总上所述,系统确定用户能否对对象操作,先检查用户的用户描述;仅当用户描述中没有找到相应权限时,才搜索相关的组描述;仅当在用户描述和组户描述中均没有找到相应权限时,才搜索公共权限。
Sign-On过程的权限检查
Object Ownership

|
|
Figure
7-28. Object Ownership |
QDFTOWN

|
|
Figure
7-29. QDFTOWN |
每个对象在创建时就分配了所有者(Owner)。所有者通常是创建对象的用户描述。所有者自动拥有对象的所有权限(*ALL)。安全员(*SECOFR)可对系统上的对象执行和对象所有者相同的功能。
系统通过对象所有者的描述来跟踪谁对对象有权限。这是一个内部功能,并不直接影响用户描述。应该合理规划对象的所有权,使用户描述不致于太大。
保存对象时,对象所有者名称同时也被保存。恢复对象时,如果对象所有者在系统上,对象的所有权也被恢复;否则系统将对象的所有权转移给IBM提供的QDEFOWN (系统默认用户描述)用户描述。一旦所有者描述已经恢复或重建,就可用WRKOBJOWN命令再将所有权转移回来。 如果一个在系统上的对象其所有者和保存媒质的所有者不同,须将RST×××命令的ALWOBJDIF参数置为*ALL,否则该对象不能恢复。
当分配对象所有权时,请参考如下建议:
◇避免用IBM提供的诸如QSECOFR 或 QPGMR描述作为应用的所有者。这些描述拥有很多系统对象,并且已经很大。
◇不要使用组描述作为应用的所有者。
◇不要将应用的所有权分配给部门经理。
◇为每个应用创建特别所有者描述,将其密码置为*NONE。
AS/400 系统提供 QDFTOWN (默认所有者)用户描述,因为每个对象都应该有所有者。图7-29是将对象所有权分配给QDFTOWN 用户描述的情况及建议。
Changing Password
for Dedicated Service Tools (DST)

|
|
Figure
7-30. Changing Password for Dedicated Service Tools (DST) |
Recovering Lost
Passwords

|
|
Figure
7-31. Recovering Lost Passwords |
Three profiles are
provided for performing service using DST. They are shipped with standard
passwords. CHANGING THESE PASSWORDS IS IMPORTANT FOR THE SECURITY OF YOUR
SYSTEM.

|
|
Figure
7-32. What Information Is Stored Where-Review |
为了对安全信息的存储有一个全面的了解,应查阅用户描述,对象权限以及权限表。
保存此信息用SAVSECDTA 命令或AS/400 操作浏览器;恢复此信息用RSTUSRPRF和 RSTAUT命令。
图7-32从概念上显示出安全信息保存在哪里。实际上,系统可以将安全信息保存于其它地方。

|
|
Figure
7-33. Security Commands Review |
以上是与安全相关的命令。很多可由安全命令执行的功能也可以由AS/400 操作浏览器实现。
CRTUSRPRF:建立用户描述。
DLTUSRPRF:删除用户描述。
DSPUSRPRF:显示指定用户信息。
WRKUSRPRF:允许通过输入选项对一批用户描述进行诸如修改、显示、删除等操作。
CHGPRF:允许用户修改自己的用户描述中的某些属性。
CHGUSRPRF:允许用户修改他人用户描述中的某些属性,例如用户的特权,初始程序,当前库等。
CHGPWD:允许用户修改自己的口令。
CHKPWD:允许用户检查自己的口令。
GRTOBJAUT:允许对一个命名用户或全部用户(*PUBLIC)对此命令中命名的对象进行授权。
RVKOBJAUT:允许对一个命名用户或全部用户(*PUBLIC)对此命令中命名的对象撤消权限。
EDTOBJAUT:编辑对象的权限,允许增加、修改和撤消一个用户对某个对象的权限。
WRKOBJOWN:显示或改变对象的所有者。
CHGOBJOWN:改变对象的所有者。
CRTAUTL:创建权限表。
DLTAUTL:删除权限表。
EDTAUTL:编辑权限表,允许在权限表上增加、修改和撤消用户及他们的权限。
DSPAUTL:显示权限表。
WRKAUTL:操作权限表。
ADDAUTLE:增加用户到权限表。
RMVAUTLE:移去权限表上的用户。
DSPPGMADP:此命令指定一用户描述,系统将显示那些程序借用了用户权限。从安全角度,知道什么程序借用了安全员的用户描述是很重要的。

|
|
Figure
7-34. Security Tools Overview |
安全工具嵌在OS/400系统中,简化了OS/400系统的安全管理和控制命令。安全工具可在以下两个菜单下运行:安全工具菜单(可用GO SECTOOLS命令访问)或提交或调度批作业的安全报告的菜单(可用GO SECBATCH访问).
GO SECTOOLS命令可以按交互方式执行,而GO SECBATCH命令可按批处理执行。

|
|
Figure
7-35. Security Wizard Overview |
安全向导是AS/400操作浏览器的功能,可允许安全管理员在客户端很容易地设置系统基本安全值。
安全向导会问一系列问题以建立系统描述。基于你的回答,安全向导会:
◇提出一系列有关安全系统值的建议;
◇产生一个安全管理员报告以及一新的用户报告;
◇允许你应用这些建议或将其保存以备他用;
◇允许你查看并忽略个别建议;
◇提供一种可取消那些应用建议不成功的选项的方法。
安全向导不是用来取代安全原则的,也并不保证消息不会泄露或被破坏,只是提供一个保护系统的合理出发点。
若想运用安全向导,用户描述必须有*ALLOBJ、*SECADM以及*AUDIT特别权限。
◇ User
profile Commands
◇ Object authority Commands
◇ Authorization list Commands
◇ Password Commands
--CHGPWD---Change Password
--CHKPWD---Check Password
◇ Objects Owned Commands
--WRKOBJOWN---Work with Object Owner
---CHGOBJOWN---Change Object Owner
◇ Adopt authority Commands
--DSPPGMADP---Display Programs that Adopt
本章总结

1. User Profile的含义、包含的信息,掌握CRTUSRPRF命令的常用参数。
2. 通过DSPUSRPRF命令的TYPE参数显示指定用户的各类信息。
3. 系统权限的组成,各种特权的含义及特权与用户级别的关系。掌握10种特定权限的含义及与系统定义的4种权限的关系。
4. 与安全相关的系统值:QSECURITY、QMAXSIGN、QMAXSGNACN、QINACTITV、 QNACTMSGQ、QPWDEXPITV。
5. 公共权限与私有权限的含义,会颁发、撤消及显示对象的权限。权限表的作用、创建及使用。
6. Group Profile的作用、创建及使用。Adopted
权限的作用、实现。
7. 系统安全性的检查顺序。

AS/400具有非常好的可用性。单台AS/400系统平均可用性可达到99.94%,每年停机时间不足9小时。同时系统也提供了全套备份及恢复策略,大大降低了用户的风险程度。备份及恢复是高可用性的基础。AS/400基于操作系统备份和恢复命令,提供了一套灵活有效的备份恢复策略,帮助用户将风险降低到最小。
AS/400备份使用的介质主要有磁盘、磁带、可擦写光盘和备份文件(Save File)。磁盘由于容量太小,目前很少有人使用。可擦写光盘比较昂贵,其使用尚未形成规模。最常见的是磁带和备份文件(save file)。备份文件是在系统硬盘中建立的一块和磁带结构完全一致的顺序存储区域,是一个系统对象,属性是*SAVF,可以看作一个文件。由于备份文件是建立在硬盘上的,用它进行备份和恢复速度非常快,适用于短时间内备份大量数据的情况。但是备份文件不能用作长期保存数据的介质,应当在工作空闲的时候将数据从备份文件保存至其它外部介质。
通过本章的学习能够标识和使用有效的介质保存信息,掌握OS/400备份及恢复的概念及如何对系统资源做备份和恢复操作。

|
|
Figure
8-1. Save/Restore Facility |
通常来讲备份和恢复的功能有三个;备份对象、恢复对象和保存历史信息。这里的对象是指广义的对象,包含库。
每次当一个对象被备份出来时,系统会将相关的备份信息保存在该对象的描述中(包括系统中的和备份介质中的);每次当一个对象被恢复到系统中时,系统会更新该对象的描述中存储的恢复信息(系统中)。
从系统中备份出来的对象可以被存储在磁带上(早期还支持磁盘),也可以被存储在系统中的备份文件(Save File)中,系统中的备份文件只能像一个磁带一样被访问,可以将备份文件再转移到磁带上。
Purposes of Tape on AS/400 System

|
|
Figure
8-2. Purposes of Tape on AS/400 System |
![]()
在AS/400系统中磁带是最常用的备份介质,可以被用来复制信息、移植程序、进行软件的发布、备份和恢复以及作为程序的输入和输出介质。
Tape Labels

|
|
Figure
8-3. Tape Labels |
![]()
每一盘磁带都有标签,标签又分为外部标签(External Tape label)和内部标签(Internal Tape Label)。
外部标签一般贴在磁带的表面,可以被用户用来管理磁带。
内部标签作为数据存储在磁带上,被系统用来保存和获取磁带上数据的相关信息,如对象名、对象类型等。
这里我们只讨论磁带的内部标签,根据内部标签可以将磁带分为两类:标准标签和无标签。无标签磁带有以下特征:有两个标记分别指出磁带的开头和结尾;分别有两个标记指出磁带中每个文件的开头和结尾;没有关于整个磁盘卷标的任何信息;没有关于每个文件内容的标记信息。
无标签磁带一般用来和其它不支持标准标签的系统交换数据。标准标签磁带保存了关于整个磁带存储内容的信息以及关于每一个文件内容的信息。在备份和恢复操作中要求必须使用标准标签格式的磁带。

|
|
Figure
8-26. Tape Menu |
Tape Menu
通过使用TAPE菜单可以完成所有关于磁带的操作,包括显示磁带内容、初始化磁带等,这些功能也可以通过命令来完成。
1. Display tape
information
显示磁带的保存数据。相当于运行DSPTAP命令。
2. Initialize a tape
格式化磁带。一个磁带在用来备份数据前必须先对其进行格式化。相当于运行INZTAP命令。
3.
Print contents of a tape
将磁带里的备份数据打印出来。相当于运行DMPTAP命令。
4.
Save
显示Save菜单。可将数据备份到磁带,软盘,光驱或备份文件上。
5.
Restore
显示Restore菜单。将所备份的数据恢复。
6.
Work with tape device status
显示Work with Confihuration Status界面,可查看各个磁带备份的状态信息。
7.
Verify tape
对磁带进行校验。相当于运行VRYTAP命令。

|
|
Figure
8-6. Information That Can Be Saved and Restored |
在AS/400系统中以下内容都可以被备份出来:
◇库中的一个对象
◇通过通用名引用的一组对象
◇通过通用名和对象类型引用的一组对象
◇一个或多个库
◇所有的OFFICE数据(包括文档、文件夹、邮件和日历等)
◇目录中的所有对象
◇被修改过的对象
◇系统数据(包括QSYS库、有关系统配置的对象、有关系统安全性数据)
◇除了系统库之外的所有库
◇所有用户的数据
◇有关系统安全性的数据

|
|
Figure
8-7. Save Menu |
用GO SAVE命令可以进入SAVE菜单,此菜单提供了备份系统中所有的对象和数据的方法。
当使用9,21,22,40选项备份数据时,强烈建议使系统置于限制状态。(限制状态是指系统上除了控制子系统外其他子系统处于关闭状态。)

|
|
Figure
8-8. Operational Assistant Backup |
BACKUP菜单可以让用户对每天、每周以及每月的备份工作进行预定义。点击Automatic Default Backups可以看到系统默认的自动备份内容。
注意,每月和每周备份所有用户库,文件夹,邮件和日志的数据,但每天只是备份它们改变了的数据。用户可用CHGBCKUP或SETUPBCKUP菜单里的选项可以对自动备份表进行修改。

|
|
Figure
8-10. |
SAVSYS SAVLIB SAVDLO SAVOBJ SAV
SAVCHGOBJ SAVSAVFDTA SAVSECDTA SAVCFG SAVSTG
SAVSYS:用来备份系统库QSYS,所有的有关系统安全性的数据,所有的有关系统配置的对象和LIC(Licensed Internal Code)。备份出来的数据格式与用来安装的一样,单独的对象不能够从这个备份恢复出来。
SAVLIB:用来备份一个或多个(最多300个)库和库中的所有对象。当备份到备份文件或光盘上时,只能指定一个库。 SAVLIB Example
SAVDLO:备份文档、文件夹和邮件等数据。
SAVOBJ:备份一个或多个(同一个库中不同的50个对象)对象或通过通用名和类型指定的一组对象(从一个或多个库中)。当备份到备份文件中时,只能够指定一个备份文件。 SAVOBJ Example
SAV:用来备份一个或多个目录,或者目录中的对象。这条命令被用来备份集成文件系统(Integrated File System)。
SAVCHGOBJ :用来备份被修改过的对象,这些对象必须已经通过对一个库的完整备份而被备份过。这些对象最多可以来自于300个库。
SAVSAVFDTA:将备份在备份文件中的对象备份到离线的介质中,如磁带等。
SAVSECDTA:用来备份一个或多个用户描述对象,或者所有的有关系统安全性的数据(包括用户描述、权限表等)。这条命令不需要系统处于限制状态。
SAVCFG:用来备份所有有关系统配置和系统资源管理的数据。这条命令不需要系统处于限制状态。
SAVSTG:将LIC和外存储器中的数据(不包括临时数据)备份到磁带中。备份出来的数据只能够用来安装整个系统,单个的库和对象不能够从这个备份中恢复出来。

|
|
Figure
8-14. Complete System Save(1 of 2) |
在对整个系统进行备份之前,必须依次做以下准备工作:
1.使用STRSST命令打印系统中当前的磁盘配置。(要使用这个命令,用户必须拥有*SERVICE权限)
2.通过具有*ALLOBJ特殊权限的用户登录,使用DSPLOB LOG(QHST) OUTPUT(*PRINT)命令打印出系统当前的日志。
3.使用命令WRKF FILE(QSYS/QHST*)察看所有的系统日志文件,将必要的进行备份。
4.使用命令PRTSYSINF打印出与系统相关的一些信息,这些信息可以用来在系统备份或恢复后对系统进行验证。
5.使用命令DSPLNK OBJ('/*') OUTPUT(*PRINT)打印出在根目录下的所有目录。
6.打印出所有被修改过的系统对象。
7.如果用户在系统管理中创建了并使用了自己的CL命令,可以通过命令RTVCFGSRC CFGD(*ALL)
CFGTYPE(*ALL) SRCFILE(QGPL/QCLSRC) SRCMBR(IMPICFG)将相关的源程序检索出来.
8.使用WRKSPLF命令将系统中包含了一些重要的系统信息的输出文件打印出来,进行保存。如QPEZBCKUP包含了用户库的列表,QSYSPRT包含了所有系统值的当前设定等。

|
|
Figure
8-15. Complete System Save(2 of 2) |
在完成以上的准备工作后,便可以进行整个系统的备份。操作依次如下:
1. 通过具有*SAVSYS和*JOBCTL特殊权限的用户在系统登录,如果在你的工作站上使用了Client Access,必须关闭它。
2. 备份整个系统时必须使处于限制状态,即除了执行备份工作的作业外,系统中没有其它作业在运行。使用WRKACTJOB命令察看系统中的活动作业,通知其它用户结束作业,使系统处于限制状态。
3. 如果系统中使用了OS/2 Warp Server、OS/400 Integration for Novell NetWare和Lotus Notes licensed programs,必须通过VRYCFG命令相应的服务。
4. 如果系统中使用了用户自定义文件系统,使用UNMOUNT命令卸载用户自定义文件系统。
5. 如果进行用户干预的备份,则跳转到第9步继续执行;如果进行用户不干预的备份则从第6步继续执行。
6. 6、7、8三步用来避免备份的过程被未回答的信息打断。通过WRKRPYLE察看应答列表(Replay List),确认必须的消息都已经设置了相应的回答。
7. 如果存在可能收到的消息不在应答列表中,可以通过命令ADDRPYLE SEQNBR(xxxx)
MSGID(CPA3708) RPY('G')将其添加到应答列表中,其中xxxx是1~9999的一个顺序号,CPA3708是相应消息的ID号。
8. 通过命令CHGJOB INQMSGRPY(*SYSRPYL)对作业进行修改,使用应答列表来回答所收到的询问式消息。
9. 将系统值QINACTITV设为*NONE,确保在执行备份的过程中工作站不会被自动关闭。
10. 调用SAVE菜单,选择第21项:Entire system,并回答系统可能提出的问题,如磁带设备名等。
11. 系统将会执行以下命令来备份整个系统。
ENDSBS SBS(*ALL) OPTION(*IMMED);
SAVSYS;
SAVLIB LIB(*NONSYS) ACCPTH(*YES);
SAVDLO DLO(*ALL) FLR(*ANY);
SAV DEV('/QSYS.LIB/TAPxx.DEVD')
OBJ(('/*') ('/QSYS.LIB' *OMIT) ('/QDLS' *OMIT))
UPDHST(*YES);
STRSBS SBSD(controlling subsystem)
12. 通过VRYCFG命令启动在第3步中关闭的服务。
13. 必要的话,装载相应的用户自定义文件系统。
14. 将系统值QINACTITV该为原值。
15. 通过命令DSPJOBLOG * *PRINT打印出作业的日志,通过日志确认所做的操作是否都已成功,备份是否成功.
you cannot save

|
|
Figure
8-16. You Cannot Save |
系统中不能够通过备份操作保存下来的有:
◇队列的内容,如消息队列、作业队列等。
◇已损坏的对象。
◇正在被更新的对象(除非将参数SAVACT的值设置为*yes)
◇假脱机输出文件(Spooled
files)

|
|
Figure
8-17. When an Object is Saved |
当对一个对象进行备份时,不仅这个对象本身被保存,它的整个描述(包括对象名和类型,备份时间,拥有此对象的用户名,系统所要求的内存,安全信息和关于此对象的文档描述等等)也被保存下来。

|
|
Figure
8-18. Free Storage Function |
通常来说,备份后并不把原来对象从系统里删除。但如果用户想在备份后把原来对象删除从而释放存储空间,可以把save命令里的STG参数值设为*FREE。这样,对象的内容被删除,只保留其描述和search values。

|
|
Figure
8-19. Save Considerations |
备份、安装(恢复)系统时需要一个专门的环境,所有的子系统都必须关闭掉。
CRTSAVF FILE(APSAVF) or CLRSAVF
FILE(APSAVF)
SAVLIB LIB(OL29VB) DEV(*SAVF) SAVF(APSAVF)
DSPSAVF FILE(APSAVF)
SAVSAVFDTA SAVF(APSAVF) DEV(TAP02)

|
|
Figure
8-20. Save File |
若暂时无法把数据备份到磁带或软盘中,可先将其保存在备份文件(Save File)中,等到方便时再将数据从备份文件中转移到磁带或软盘中去。备份文件也可用来把数据从一个AS/400系统通过通信线发送到另一个AS/400系统里。
在使用备份文件时需考虑的因素有:备份速度快,存储空间有限,须预先准备好备份文件。
使用备份文件进行备份的步骤如下:
1.
CRTSAVF FILE(APSAVF) or CLRSAVF FILE(APSAVF)
创建一个备份文件APSAVF,或把已存在的备份文件APSAVF里的文件删除。
2.
SAVLIB LIB(OL29VB) DEV(*SAVF) SAVF(APSAVF)
上述命令表示把库OL29VB里的内容保存到备份文件APSAVF中。
3.
DSPSAVF FILE(APSAVF)
查看备份文件APSAVF里的内容
4.
SAVSAVFDTA SAVF(APSAVF) DEV(TAP02)
把备份文件APSAVF里的数据备份到磁带TAP02中去。

|
|
Figure
8-21. Restore Menu |
在系统中出现问题或出现灾难等紧急情况时,可以通过将备份到磁带或备份文件中的对象恢复到系统中来等手段减少问题造成的影响。用户可以通过RESTORE菜单或相应的恢复命令来执行恢复操作。

|
|
Figure
8-22. |
RSTLIB RSTDLO RSTOBJ RST RSTUSRPRF
RSTAUT RSTCFG
RSTLIB:可以用来恢复一个或多个通过SAVLIB *NONSYS/*ALLUSR/*IBM命令备份起来的库。
RSTLIB Example
RSTDLO:恢复一个或多个文档、文件夹和邮件。
RSTOBJ:可以用来恢复一个或多个对象。只有通过同一个备份命令备份出来的多个对象可以通过该命令恢复,通过SAVLIB命令备份出来的多个对象可以被该命令分别恢复出来. RSTOBJ Example
RST:可以用来恢复集成文件系统的对象。
RSTUSRPRF:恢复一个或多个用户描述,或用来恢复所有被备份出来的有关系统安全性数据,包括所有的用户描述、所有权限表等。
RSTAUT:在所有相关的用户描述和对象都已恢复到系统中后,可以用来将所有的对象授权恢复到用户描述中。
RSTCFG:用来恢复一个或多个有关系统配置的对象。

|
|
Figure
8-25. Complete System Restore |
恢复系统的步骤如下:
1. 做一个D模式的IPL。D模式指通过光驱或磁带而不是系统中安装的硬盘进行IPL。可以在系统的随机手册中查到执行D模式IPL的步骤,这里不做详述。通过系统安装的第一张光碟(或磁带)安装操作系统和LIC。
2. 将最后一套备份出来的数据载入系统,然后设置磁带设备处于准备状态。
3. 通过WRKCFGSTS命令确认所有在恢复工作中没有用到的设备都已关闭,所有在恢复工作中需要用到的设备(包括工作站、磁带机和磁带控制器等)都已处于准备状态。
4. 如果进行的是需要用户干预的恢复,则跳到第8步继续执行;如果进行的是不需要用户干预的恢复,则从下一步继续执行。
5. 这一步和下两步用来保证恢复工作不会因为收到的消息没有应答而被中断。通过WRKRPYLE察看应答列表(Replay List),确认必须的消息都已经设置了相应的回答。
6. 如果存在可能收到的消息不在应答列表中,可以通过命令ADDRPYLE SEQNBR(xxxx)
MSGID(CPA3708) RPY('G')将其添加到应答列表中,其中xxxx是1~9999的一个顺序号,CPA3708是相应消息的ID号。
7. 通过命令CHGJOB INQMSGRPY(*SYSRPYL)对作业进行修改,使用应答列表来回答所收到的询问式消息。
8. 调用RESTORE菜单,选择第21项System and user data并回答可能出现的问题。
9. 系统将会执行以下命令恢复整个系统:
ENDSBS SBS(*ALL) OPTION(*IMMED);
RSTUSRPRF USRPRF(*ALL) RSTCFG OBJ(*ALL);
RSTLIB SAVLIB(*NONSYS);
RSTDLO DLO(*ALL) SAVFLR(*ANY);
RST DEV('/QSYS.LIB/TAPxx.DEVD') OBJ(('/*') ('/QSYS.LIB' *OMIT) ('/QDLS'
*OMIT));
RSTAUT;
STRSBS SBSD(controlling subsystem)
10. 通过命令DSPJOBLOG * *PRINT打印出作业的日志,通过日志确认所做的操作是否都已成功,恢复是否成功。
◇ Save Commands
◇ Restore
Commands
◇ Save File
commands
◇ Tape commands
本章总结

1.了解AS/400系统可连接哪些设备及各种连接方式。
2.掌握设备的自动配置方式和手动配置方式。
3.掌握监控和管理设备的方法及命令。

在系统主机上一般接有磁带机、光驱和控制台等设备,其它设备如众多的工作站和打印机可以通过工作站控制器、局域网或调制解调器接入系统。
作为一个系统操作员,必须知道怎样管理这些设备,判断设备是否有问题和在设备有问题时解决问题。
本章主要介绍如何配置、监控、管理这些设备。
在学了本章之后,应该会:判断有什么设备被连接到系统,识别那些系统值对设备管理有影响,掌握管理和监控设备的命令。

|
|
Figure
9-1. Sample Configuration |
There are multiple
methods of attaching devices to an AS/400:
Locally
attached devices -
CD-ROM,Diskette,Tape Drives,Workstation Controllers
LAN
attached devices -
Token Ring and Ethernet adapters
Remotely
attached devices -
Remote workstation controllers
在系统主机上一般接有磁带机、光驱和控制台等设备,其它设备如众多的工作站和打印机可以通过工作站控制器、局域网或调制解调器接入系统。
设备与AS/400连接方式有两种:本地方式(Local)和远程方式(Remote)。在AS/400中分别把这些设备称为本地设备(Local Device)和远程设备(Remote Device)。PC机或PC机上的打印机做为AS/400的设备(如仿真终端)使用时,AS/400将它们称为虚拟终端或虚拟打印机。
工作站设备(Workstation)指终端设备或打印机设备,不论是本地的,远程的或虚拟的,AS/400都是通过控制器(Controller)来实现对它们的控制。远程工作站还需要配置通信线(Line)。PC机与AS/400通信时要配置网络适配器的通信线。
◇ CD-ROM, Diskette, Tape Drives, and controllers
☆ Usually auto-configured
☆ Can be manually configured
☆ Uses default naming
conventions
◇ Workstation Controller (Twinaxial)
◇ Workstation
Controller (ASCII)
每一台连接到AS/400上的设备,必须要为其建立一个设备描述(Device Description),系统根据这些设备描述对其实施管理。配置设备的过程就是建立设备描述的过程。本地设备的配置可以使用自动配置(Automatically Configuration)方式或手动配置方式(Manual Configuration)。远程设备总是用手动方式进行配置。
对于连接到系统的CD-ROM、磁盘、磁带控制器/驱动器等设备,AS/400系统可以进行自动配置。这些设备的名字使用常规命名方法,例如,OPT01,DSK01,TAP01。也可用手动进行配置,但不建议使用这种方法。
这里也显示了两种本地控制器连接方式:一种是使用双同轴线,另一种是通过ASCII工作站控制器。
Local workstations
and printers

|
|
Figure
9-4.Device Attachment - LAN |
PC可以通过局域网连接到系统中。这种连接可以是令牌环网或者以太网,也可以连接到AS/400集成PC服务器(IPCS)。对于局域网连接在AS/400和连接的PC机上都要安装相应的网卡(网络适配器)。目前多采用以太网形式,使用TCP/IP通讯协议。
Remote
workstations and printers

|
|
Figure
9-5. Remotely Attached - Remote Workstation Controllers |
远程工作站控制器需要配置通讯线与AS/400相连。一个控制器可以连接多少个工作站由控制器的类型决定。工作站控制器(Workstation Controller)有四端口(Port)和八端口的。每个端口通过双同轴电缆或终端多路连接器(Terminal Multiconnector)最多可连接七个工作站,这样一个八端口的工作站控制器最多可连接56个工作站设备。

|
|
Figure
9-6. Personal System Attachment Summary |
PC机与AS/400的连接方式很多,在PC机上安装一块Twinzx Adapter卡,可以通过双同轴电缆将PC机做为本地设备连接到AS/400上,也可以通过IBM 5494,5394,5294或5251控制器将PC机做为远程设备连接到AS/400上。当然通过安装网卡,PC机可以在局域网(以太网,或令牌网)中作为一个节点与AS/400进行各种各样的通信。苹果机工作站也可以通过Token-ring或Ethernet直接与AS/400系统相连接。
Create device
description Automatically

|
|
Figure
9-7. Creating Device Description - Automatically |
Create device
description Manually
Commands
◇CRTDEVxxx
◇CRTCTLxxx
◇CRTLINxxx
每一台连接到AS/400上的设备,必须要为其建立一个设备描述(Device Description),系统根据这些设备描述对其实施管理。配置设备的过程就是建立设备描述的过程。本地设备的配置可以使用自动配置(Automatically Configuration)方式或手动配置方式(Manual Configuration)。远程设备总是用手动方式进行配置。PC机做为AS/400的工作站设备使用时有些是自动配置的,有些是手动配置的。
自动配置:
要使用自动配置方式可用两种方法实现。第一种方法是在系统启动时,采用手动IPL(Initial Program Load)方式,并在Set Major System Options显示屏幕中,将Enable Automatic Configuration设置成'Y'。第二种方法是在系统正常工作时,修改系统值(System Value)QAUTOCFG为'1'。这时一旦某个设备连接到AS/400上并且被加电,系统就会自动为其建立设备描述。当系统操作员对设备的各种物理特性不十分熟悉时,应采用自动配置方式。
在将LAN中的PC做为AS/400中的虚拟设备进行配置时,如果通过SNA连接,在配置通信线描述时,要指定线描述中一个参数Autocreate Controller为'*YES',以使系统能自动建立PC机的虚拟控制器和虚拟设备,如果PC机通过TCP/IP连接,要指定系统值QAUTOVRT大于零,让系统自动配置PC机的虚拟设备,这些设备名字为QPADEVxxxx,它们都连接在虚拟控制器QPACTLxx上。这里x为阿拉伯数字。
手动配置:
手动配置方式主要是使用CL命令建立设备描述。这些命令有:
◇CRTDEVxxx
-建立设备描述(*DEVD),xxx是设备类型,如CRTDEVDSP配置终端设备,CRTDEVPRT配置打印机,CRTDEVTAP配置磁带设备。
◇CRTCTLxxx
- 建立控制器描述(*CTLD),如:CRTCTLLWS配置本地工作站控制器,CRTCTLTAP配置磁带控制器,CRTCTLAPPC配置一个APPC(Advanced Program-to-Program Communication)控制器等。
◇CRTLINxxx
- 建立线描述(*LIND),如CRTLINETH配置Ethernet LAN通信线,CRTLINTRN配置Token-Ring
LAN通信线。
要使一个设备对AS/400有效,不仅要配置该设备,还要配置连接该设备的控制器,远程设备的通信线。配置虚拟工作站设备时,首先要配置网络通信线,然后再配置虚拟控制器。这些设备描述都是OS/400中的对象,它们只能属于QSYS库。
设备配置有错时,可以对设备描述进行修改或删除后重新配置。改变设备描述的命令有:CHGDEVxxx、CHGCTLxxx、CHGLINxxx,xxx是设备/控制器/通信线的类型。
删除设备的CL命令有:DLTDEVD、DLTCTLD、DLTLIND,有些设备描述不能被修改,只能被删除后重建。在删除一个设备描述时,该设备必须要首先被修改为不可用状态(Vary Off)。
每一个工作站设备的地址信息由三个参数唯一决定:Attached Controller;Port Number;Switch Setting。同一Port上连接的工作站设备其Switch Setting不能相同。在配置新的工作站设备之前,应使用PRTDEVADR命令显示一下本地工作站的控制器上还有哪些Switch Setting是空闲的,使用这些空闲的Switch Setting就不会造成两台工作站设备地址冲突的现象。
根据系统值
QDEVNAMING 生成的设备名
◇ Netwrok Server
Descriptions (NWSD)
◇ Line
Description (LIND)
◇ Controller
Description (CTLD)
◇ Device
Descriptions (DEVD)
如果要成功地管理连接到你的系统上的设备,必须清楚许多描述对象。这些描述对象和AS/400系统的联系有物理的和逻辑的两种。
◇NWSD: 描述了 Integrated PC Server(IPCS) 的特征。
◇LIND: 描述了物理线路和与AS/400系统通信的线路协议。
◇CTLD: 描述了远程系统、控制器及与系统连接的网络的物理特性。
◇DEVD: 描述了与AS/400系统通讯的物理设备和逻辑设备。
Local Connections
Local
Area Network Connection
Remote
Communications
![]()
本地连接:
确保系统值 QAUTOCFG 被设置为“
局域网连接:
通常在IPL的时候,连接线描述vary on,确保它已经vary
on。
如果使用SNA连接,检查线路描述参数 AUTOCRTCTL 是否被设置成*YES。 否则要手工配置控制器和设备,确保它们已经vary on。
如果使用AnyNet连接,确保有一个可用的*ANYNET控制器被建立,且已经vary on,以便用户与它连接。在这种方式下,所有的设备被连接到ANYNET控制器里。
如果使用的是TCP/IP或IPX连接,检查设备状态,再检查系统值 QAUTOVRT 是否设置成可以自动生成虚拟设备。虚拟设备通常被命名为 QPADEV××××。
远程连接:
检查并确定线路、控制器和设备的状态。记住:系统值 QAUTOCFG 只能自动为本地的控制器和设备生成描述文件。

|
|
Figure
9-8. Monitoring Devices - QSYSOPR Message Queue |
在QSYSOPR消息队列中会收到关于设备管理的各种系统消息,如设备访问失败等等,所以经常检查系统的QSYSOPR消息队列会帮助用户了解系统设备的运行状况。通过GO DEVICE命令可以访问DEVICE菜单,该菜单提供了所有对系统中设备管理的方法;其中较为常用的是第一项Work with device status,也可以通过命令 WRKCFGSTS 进行访问,通过该项(该命令)可以了解系统中各类设备的当前状态,可以对设备进行各种操作。
如果系统中存在远程设备,可以通过CMNSTS菜单进行管理。

|
|
Figure
9-9. Go Device |
The type of
devices you can work with are: *NWS, *NWI, *LIN, *CTL, *DEV
从设备操作菜单中,可以管理所有设备。有两种方法可以进入到设备操作菜单:一是从General System菜单选择选项8进入;二是直接在命令输入 go device 命令进入。
在设备操作菜单,可以管理设备(1选项),仅显示(2选项),仅打印(3选项),仅操作磁带(4选项),光驱(7选项),配置与PC的连接(6选项)。
也可以通过命令 WRKCFGSTS 来显示配置状态的页面。WRKCFGSTS 的用法请点击: Using WRKCFGSTS
GO CMNSTS

|
|
Figure
9-9. Go CMNSTS |
If your system
communicates to remote systems or workstations, you can use the Communications Status
menu to monitor and manage communication lines, remote controllers and remote
devices. More...
如果你的系统是与远程系统或工作站通讯的,可以通过通讯状态(Communication Status)菜单来监控和管理通讯线路、远程控制器和远程设备。
有两种方法可以进入通讯状态菜单:一是在General System Tasks菜单中选9选项;二是直接在命令行输入 go cmnsts 命令。
在通讯状态菜单,可以监控通讯线路(1选项),监控远程控制器(2选项),监控远程设备(3选项)。
用WRKCFGSTS命令,可以看到所有连接到你的系统的通讯线路的状态。它的用法请点击 Using WRKCFGSTS
如果要手动Vary on 一条线路,则使用VRYCFG命令,它的顺序必须是:
1.连接到每个控制器的设备
2.每个连接在线上的控制器
3.最后,断开这条线
手动Vary off 一条线路的顺序恰好相反。
◇ Device
Description Commands
◇ Controller
Description Commands
◇ Line Description Commands
◇ Other Commands
◇ CRTDEVPRT
◇ CRTDEVDSP
◇ WRKDEVD
◇ WRKCTLD
◇ WRKLIND
◇ PRTDEVADR
◇ WRKCFGSTS
◇ WRKHDWRSC
◇ VRYCFG
◇ STRSST
本章总结

1. 了解Save/Restore操作可用的介质。
2. Tape的基本知识及操作。包括Tape labels
、Tape的初始化,内容显示、Tape的校验。
3. 系统上哪些内容可以Save/Restore,哪些内容不能Save。
4. Save Menu 和Restore Menu的常用选项。
5. Save File 的概念、作用及相关命令。
6. 系统全备份/恢复的条件、步骤。

系统对其运行过程中的所有问题进行跟踪,并会在message queue和logs中提示用户.AS/400系统不能够自己解决所有系统中出现的问题,但系统提供了多种工具(如CL命令、菜单、消息队列、日志等)用来帮助标识、分析和解决问题。通过本章的学习,你能够用系统提供的工具来发现、分析、解决问题。

|
|
Figure
10-1. Work with Job |
WRKJOB菜单对发生的问题的解决很有帮助,它能显示你目前正在做的和过去曾做过的一些作业的相关信息。只要在命令行输入WRKJOB就可以进入到Work with job 菜单,从而对作业进行相关的操作。通过10选项或DSPJOBLOG命令观察活动作业的Job log。

|
|
Figure
10-2. JOB LOG |
对于每一个在系统中运行的作业来说,系统保存了该作业在活动期间所有的操作,包括执行的每一条命令和收到的每一条消息等,这就是作业日志(Job Log)。
作业日志对于发现问题以及对问题的处理都是非常有用的。通过命令DSPJOBLOG用户可以察看自己当前交互式作业的作业日志,也可以察看其它交互式作业,但必须知道该作业完整的作业名。对于批处理作业来说,当作业被递交入作业队列后系统自动为该作业创建作业日志用以记录作业活动期间的所有操作。当作业正常结束时,该作业日志被自动删除,当作业非正常结束时该作业日志被放入输出队列供用户查阅。
通过Work with job 菜单的10选项或DSPJOBLOG命令观察活动作业的Job log时,如果显示的信息不够详细,可以按F10键。必要时按Page Up/Page Down键可以观察完整的Job log。

|
|
Figure
10-3. JOB LOG Printing |
SIGNOFF
LOG(*LIST)
DSPSPLF FILE(QPJOBLOG) JOB(name)
DSPJOBLOG JOB(*/name) OUTPUT(*PRINT)
CHGJOB JOB(*/name) LOG(4 0 *SECLVL)
CHGJOBD JOBD(name) LOG(4 0 *SECLVL)
因为作业日志可以为用户处理问题提供第一手的资料,往往需要将作业日志保存下来。对于交互式作业来说,通过命令DSPJOBLOG OUTPUT(*PRINT)可以在该作业运行期间将当前作业日志送输出队列进行打印。如果用户使用SIGNOFF命令退出系统,则交互式作业的作业日志自动被删除;如果使用SIGNOFF (*LIST)命令退出系统,则该作业的作业日志将会被送到输出队列进行打印。对于批处理作业同样可以通过DSPJOBLOG OUTPUT(*PRINT)命令将当前的作业日志送输出队列进行打印。
通常情况下,如果一个作业是正常退出的,那么作业日志(Job Log)是不会被保存的。而在作业是活动的情况下,以上的命令都会使作业日志保留。改变作业描述可以永久地产生作业(交互式和批处理)。
命令CHGPRTF QPJOBLOG OUTQ(lib/outqname)可以将job logs输出文件QPJOBLOG输出到指定的输出队列里。值得一提的是,在OA进行清理工作时,会自动创建一个输出队列QEZJOBLOG,并使打印文件QPJOBLOG指向这个输出队列。

|
|
Figure
10-4. WRKACTJOB |
为了检查系统上有哪些作业在运行(包括批作业和交互式作业),可以采用下列步骤:
1.在命令行输入WRKACTJOB命令,按回车键,屏幕显示如上。可以用来显示系统中的活动作业的一些状态信息。从而能发现系统中的一些异常作业,例如活动作业占CPU利用率过高的就表明作业可能异常.
2.为了显示有关数据,在该屏幕上按F11(Display elapsed data)显示图所示屏幕。可以从该屏幕所显示的数据中得到系统为每个作业分配的资源情况,按F5(Refresh)键可以看到最近的资源使用数据。
通过该屏幕也可知道一个作业当前的状态及执行的功能。例如,是否有等待回答的消息(MSGQ)。也能发现系统中的一些异常作业,如果一个作业死循环,在该屏幕的CPU%中可以体现出来。

|
|
Figure
10-5. WRKSYSSTS |
这是一个非常有用的命令,用它可以监控系统的一些情况,例如当前系统的CPU的使用情况,硬盘的使用率,系统总的作业数,各存储池的最大作业数,存储池的大小及缺页中断等性能数据.
需要注意的是,permanent和temporary address的百分率不应超过90%,否则做不了其它任何事情。还有,auxiliary storyage的百分率最好也应保持在70%~80%。

|
|
Figure
10-6. WRKCFGSTS |
通过命令WRKCFGSTS,可以对AS/400的设备进行管理,通过它可以看到每条通讯线状态,控制器的状态,及所连接设备状态,并允许修改。
如果操作员希望管理设备,WRKCFGSTS命令是最佳的选择。它可以告诉你所有你想知道的东西,也允许你修改你想修改的东西。

|
|
Figure
10-7. WRKSBMJOB |
用命令WRKSBMJOB可以查看一个批作业的状态或是寻找一个批作业。

|
|
Figure
10-8. WRKJOBSCDE |
OS/400有Job schedule功能,通过此功能,可以设定一个特定的时间去运行批作业。ADDJOBSCDE命令是在Job schedule中加入一个作业。WRKJOBSCDE命令允许显示和修改Scheduled Jobs。

|
|
Figure
10-9. WRKUSRJOB |
通过WRKUSRJOB命令可以查看批作业和交互作业。
以下是查看当前所有登录用户的命令:
WRKUSRJOB STATUS(*ACTIVE) JOBTYPE(*INTERACT)
ASTLVL(*BASIC)
或者
GO MANAGESYS, option 12(Work with signed-on users)

|
|
Figure
10-10. ENDJOBABN |
如果需要结束一个作业,应该首先用命令 ENDJOB *IMMED 。十分钟以后,若作业仍未结束,则用ENDJOBABN。应该在必要的时候才使用ENDJOBABN,因为它不会关闭此作业打开的任何文件或做结束作业处理的任何其它工作。

|
|
Figure
10-11. DSPMSG QSYSOPR |
当你分析问题产生的原因的时候,在一些情况下,系统出现问题仅仅是因为在QSYSOPR消息队列中存在未回答的消息,因此系统操作员经常地检查该消息队列是十分必要的。
系统在未回答的消息前加有*以示区别,对这种消息可以运行问题分析。方法为:将光标放在被分析的消息之上,按F14键(Work with Problem)。Work with Problem会后面相关章节进行讲解。

|
|
Figure
10-12. Problem Analysis - Problem Handling Menu |
利用Problem Handling menu是分析系统问题的另一种方法。用命令go problem可以进入相应菜单,也可以在AS/400 Main Menu中选8选项进入。
在Problem Handling 菜单中,2选项(Work with problem)允许查看系统已经删除的的问题,可以选其中一个问题分析或打开新的。4选项允许显示QSYSOPR 消息队列中的消息,5选项用来显示history log。

|
|
Figure
10-13. WRKPRB |
当用户不能够解决所出现的问题时,可以通过WRKPRB对所出现的问题进行分析形成报告,从而向系统支持寻求帮助。
通过wkrprb命令或在Problem Handling menu中选2选项就可以进入Wrk with Problems,所显示出来的问题表称为problem log。每个问题的状态和对问题类型的简单描述也会同时显示出来,问题可能的状态如下: OPENED , READY , PREPARED , SENT , ANSWERED
, VERIFIED , CLOSED 。
通常选状态为opened的问题,当对问题进行分析,它的状态就会变称ready。如果问题需向IBM寻求解决方法,你要标上你的姓名和地址。接着问题的状态就会变成prepared,一旦问题的状态变成prepared就可以发送给IBM,问题的状态变为sent。
Work with Problem中的4选项用来删除老的问题,用Delete Problem(DLTPRB)命令也可以进行该操作。只有比系统值QPRBHLDITV所设时间长的问题能被删除。
Work with Problem中的5选项(Display details)用来显示问题的细节部分,6选项(Print details)用来打印这些细节部分。

|
|
Figure
10-14. Analyze a Problem |
![]()
在Work with Problem显示中选择选项8,显示Work with Problem显示。在这个显示中可以分析、汇报和关闭一个问题。图10-14就是一个很好的例子。
上例显示了系统问题分析的操作帮助。在问题分析的过程中,系统会显示有待回答的必须解决的一些问题。在Work with Problem 菜单例选择1选项,系统会首先检测常见原因。接下来一直到系统帮你解决了问题或者告诉你需要向IBM寻求进一步的帮助。如果系统不能辨别出问题产生的原因,它至少会提供一些问题产生的可能原因。
分析一个新问题,可以使用ANZPRB命令,你会得到问题的描述,而不是一个出错的信息。此项功能也可以通过Work with Problems菜单中按F14来实现。

|
|
Figure
10-15. Analyzing Problems with a System Reference Code |
当系统出现严重问题时,在系统单元的控制板面上会出现消息码称为系统参照码(SRC),并且指示灯(attention light)置亮。此类代码所对应的问题可以从随机手册the Basic System Operation,Administration和Problem Handling 中查到。

|
|
Figure
10-16. Problem Analysis - History Log |
Saving
and Deleting History Log
DSPLOG
除作业日志外,系统还对整个系统中发生的所有活动保留了历史日志(History Log)。历史日志记录了每一个作业开始和结束的时间,设备活动,队列QSYSOPR接收到的所有信息及所有的PTF活动。
历史日志保存在消息队列QHST中,可以通过DSPLOG命令访问该历史日志。每当DSPLOG命令执行或QHST队列满的情况下,历史日志的所有内容被移放到文件QHSTyydddn中,其中yyddd是日期,n是顺序号。这类文件的大小是由系统值QHSTLOGSIZ确定的。所有的保留系统日志的文件都是以QHST字母开头的。
在DSPLOG命令中可以指定参数(starting and ending date and
time)来观察部分历史。

|
|
Figure
10-19. Automated Problem Management |
自动问题管理对系统检测出来的问题提供自动问题分析及自动问题报告。所有分析和报告完成不需要用户的参与。自动问题管理是通过Service Attributes实现的。DSPSRVA命令用于显示Service Attributes;CHGSRVA命令用于修改Service Attributes,此命令的使用需要有*ALLOBJ特权。
自动问题适合多数的硬件问题和部分的微码问题。要知道哪些问题是自动分析的,哪些不是,可以通过命令WRKPRB。如果问题的状态是OPENED,就意味着这个问题未经分析,可以使用WRKPRB手动运行问题分析。

|
|
Figure
10-20. Copy Screen |
命令STRCPYSCN可以使一个用户观察到另外一个用户在进行系统操作时所看到的界面,这样便于远程解决问题。相应的另一条命令是ENDCPYSCN。
copy creen功能允许你在自己的workstation上监测另一workstation的工作情况,从而发现其问题产生的原因。通过运行命令Staart Copy Screen (STRCPYSCN)并设置目标workstation名和自己的workstation名来开始cpy screen功能。目标workstation需响应你的申请操作,发出一响应信息允许你观看他们的擦作。这个时候OS/400锁定你的键盘,从而你不能输入任何信息。
通过命令End Copy Screen(ENDCPYSCN)结束copy screen操作。

|
|
Figure
10-21. Cleaning Up Your System |
当进行IPL时,系统自动对系统作业和工作空间进行清理,使得整个系统在更有效率的环境下工作。

|
|
Figure
10-22. Do You Need To IPL |
实际上,很难知道什么时候需要IPL,特别是机器需要每星期开7天、每天开24小时的情况。但即使如此,有时候还是需要IPL的。通过WRKSYSSTS命令,从显示的系统状态信息中可得知什么时候需要进行IPL。

|
|
Figure
10-23. Functions Automatically Cleaned Up |
从图10-23我们可以知道那些对象可以让系统自动清除,那些需要手动清除。OA(Operational Assistant )提供了自动清除功能。
通过GO CLEANUP命令可以进入Cleanup Tasks菜单,选项1允许设置和修改想要OA清除的内容,上图显示的是默认的天数。值得一提的是,在OA进行清理工作时,会自动创建一个输出队列QEZJOBLOG,并使打印文件QPJOBLOG指向这个输出队列。

|
|
Figure
10-24. Operational Assistant Cleaned Up |
运行go assist命令,选择11选项进入operational
assistant cleanup操作。
在CLEANUP菜单中选择1选项(change cleanup tasks)设置或更改OA来进行cleanup,可以决定各种类型的objcts想保存的时间。
当Allow automatic cleanup设为Y后,在OA定时开始cleanup前,需使用2选项(start cleanup at scheduled time)进行设置。另一个是选项3(start cleanup immediately)接着选项2来预设下一次的cleanup。

|
|
Figure
10-25. Reorganize Physical File Member(RGZPFM) |
用RGZPFM命令(Reorganize Physical File Member)可把删除了的记录从数据库物理文件member中移走,并可以选择性的重新组织member中的记录。RGZPFM命令中的KEYFILE参数决定有无此功能,当参数KEYFILE的值为*NONE时,无此功能;KEYFILE的值为一个逻辑文件时,此物理文件member中的记录按此逻辑文件排序。

|
|
Figure
10-26. Clear Save File(CLRSAVF) |
一旦备份文件中的数据已被转移到磁带(通过SAVSAVFDTA命令)中,那么就可用CLRSAVF来释放备份文件所占据的存储空间,即把其备份的数据删除,但备份文件本身仍然保留等待下次使用。

|
|
Figure
10-27. Reclaim Storage(RCLSTG) |
RCLSTG命令(Reclaim Storage)用来对硬盘进行一般清理。通常用来处理由无法预测的故障(如电源或设备故障)而引起的对象的异常情况。
在运行RCLSTG命令前,应使用ENDSYS或ENDSBS命令把所有的子系统(除了控制子系统)关闭,使系统处于限制状态。运行RCLSTG命令的时间可能会持续好几个小时,随系统上的DASD的大小和对象的数量的不同而变。在运行RCLSTG命令后,应该查看库QRCL和目录QReclaim,这些区域包括系统已经不能识别的对象。

|
|
Figure
10-28. Reclaiming Spool Storage |
一些大的脱机打印文件会占用大量的内存空间,所以它们在完成打印后应立即被删除。可在系统值QRCLSPLSTG里设置在系统自动清空脱机文件前应等待的时间(以天来计算)。或者用RCLSPLSTG命令手动进行清理。

|
|
Figure
10-29. Resetting Message Queue Size |
有时会由于消息队列占据空间过大而引起问题,这时,可用DLTMSGQ和CRTMSGQ命令来减小消息队列的大小。该方法不能用于队列QSYSOPR。

本章总结

1. Job log 的作用、包含的内容,过滤的方法、查看的方法。
2. History log 的含义、目的、包含的内容,查看的方法。History log文件的概念。
3. 了解SRC码,在SRC码出现时,会用手册确定系统问题。
4. 了解减少系统问题的各种方法。

尽管所有IBM的许可程序在发行之前都会经过大量测试,但在实际应用中还可能出现错误。所以IBM提供了补丁程序(PTF)来暂时修正错误和解决问题。每一个PTF被设计用来全面代替许可程序中的一个或多个对象。PTF可以通过电子方式(ESC)或CD-ROM、磁带获取。接收到PTF之后,必须装载和应用到系统上。
Before start working with PTFs,there are two
important things :
First, some functions related to the installation of
PTFs can only be performed by someone who is signed on to the system as the
security officer (QSECOFR).
Second, before start working with PTFs you should
ensure that you have a current backup of your system If there is any doubt at
all about the validity of their current backup you should take the time to
perform another full system backup before beginning any PTF activity.
本章主要介绍补丁程序的基本概念及其相关操作.
通过本章学习,应清楚PTF的概念,知道订购和获取PTF的途径,并学会怎样安装PTF、显示PTF的状态及在安装完成后验证其安装是否成功。

|
|
Figure
11-1. What Is a PTF? |
Programe
Temporary Fixes(PTFs) is a temporary solution to, or bybass of, a defect diagnosed by
IBM in a current, unaltered release of a licensed program.
PTF可以处理硬件或软件错误,也可以用来提供新的功能。但PTF只是临时的,问题的最终解决通常依靠新版本的产品。

|
|
Figure
11-2. Program Maintenance Strategy - Preventive Service |
程序的维护策略有预防性措施和修正性措施:
预防性措施有助于避免当前版本出现的问题。 可通过以下两种方法实现:
Cumulative PTF Package
它中驻留的PTFs包含目前普遍存在问题的关键修改和实现。如果系统没有equipment和程序的改变,应每3-4个月更新Cumulative PTF Package一次。
Preventive Service Planning (PSP) Information
在新的Cumulative PTF Package发布前可用此补丁来解决问题。
有时候可能会出现问题需要立即更正,在这种情况下,要使用修正性措施。

|
|
Figure
11-3. PTF Process Overview |
PTF应用过程由以下五个步骤:
1.首先,确定是否需要PTF。
2.一旦确定需要PTF,必须去IBM定购和接收需要的PTF。可以从ESC(电子客户支持)线路、互联网或IBM服务商得到PTF。如果PTF文件太大,就必须通过CD-ROM或者磁带邮寄。
3.下一步就是安装PTF。如果PTF是通过ESC线路方式得到的,它将以Save File形式保存在AS/400系统的QGPL目录下。如果PTF是通过CD-ROM或磁带的方式得到的,就要从CD-ROM或磁带中安装。
4.PTF被安装后,应该通过显示History Log信息校验PTF是否被正确地安装。
5.最后,测试有问题的许可程序产品来确定问题是否解决。当然不是所有的PTF都要这样做的。

|
|
Figure
11-4. How to Determine Available PTFs |
IBM提供了很多信息来帮助你决定是否要使用PTF。
PTF
cross-reference summary list
显示了目前版本中的一些比较新的PTF,这个表单用来帮你确定申请PTF,为你以前的版本进行升级,但这些PTF不在这些表单中。
Preventive
service planning (PSP) information
在安装IBM许可程序、cumulative PTF package或硬件前应先阅读此信息。
PTF
summary list
列出了一系列对大部分系统用户有效的PTF。用户可用这张列表去确定自己所需要的PTF。

|
|
Figure
11-5. Working With PTFs |
![]()
通过如上的菜单导航或GO PTF命令可以访问PTF采单。在PTF菜单里可对PTF执行各种操作。
1. Load a program temporary fix
选择需要装载的PTF。相当于运行LODPTF命令。
2.
Apply a program temporary fix
选择PTF应用到许可程序中。相当于运行APYPTF命令。
3.
Copy a program temporary fix
选择PTF从磁带,软盘或备份文件复制到另一磁带,软盘或备份文件中去。相当于运行CPYPTF命令。
4.
Remove a program temporary fix
删除PTF。相当于运行RMVPTF命令。
5.
Display a program temporary fix
查看安装在系统上的PTF。相当于运行DSPPTF命令。
---DSPPTF命令的用法: Using DSPPTF
6.
Order a program temporary fix
订购PTF。相当于运行SNDPTFORD命令。
7.
Install a pragram temporary fix from a list
查看PTF列表,从中选择PTF进行安装。
8.
Install a program temporary fix package
安装PTF包。

|
|
Figure
11-6. Ordering a PTF |
若配置了ECS线,可以通过PTF菜单里的6选项命令订购PTF。否则,可通过电话或因特网向IBM服务代表订购。
在Send PTF Order (SNDPTFORD)的显示画面上可以订购如下PTF:
◇A
specific licensed program PTF (SFnnnn(where nnnn=PTF number))
◇A
specific licensed liternal Code (LIC)PTF (MFnnnn(where nnnn=PTF number))
◇A
cumulative PTF package which is always sent on CD-ROM or tape (SF99vrm(where
vrn is the version,release and modification level))
◇PTF
cross-reference summary list(SF99vrm(where vrn is the version,release and
modification level))
也可以通过互联网订购PTF,请访问AS/400技术支持网站(URL:http:/as400service.rochester.ibm.com).

|
|
Figure
11-7. Receiving a PTF |
PTF可以通过ECS line,internet,CD-ROM 或磁带来取得。一般的,如果PTF较大,通过CD-ROM 或磁带获取比较合适。
若PTF是通过ECS线或因特网来获取的,它会作为备份文件存储在QGPL库里。

|
|
Figure
11-8. Displaying/Printing PTF Cover Letter |
每个PTF都有cover letter,包含了有关PTF的描述信息和安装指示。在安装PTF前应先阅读其附带的cover letter。在用SNDPTFORD命令订购PTF时,可在PTFPART里设定需要PTF和cover letter或只要cover letter。
◇ Installing PTF
Package
◇ Installing
Individual PTFs
![]()
安装PTF根据源文件形式可分为两种方式:
◇ 安装PTF包
◇ 安装单独的PTF程序

|
|
Figure
11-11. Manual PTF Installation |
上图显示的是手动安装PTF的过程。在收到PTF后,必须将其装载到相应的许可程序库中。这样,出现错误的旧版本对象就与修改错误的新版本对象同位于这一库中。
在临时应用了PTFs后,系统为新版本对象作了标志,以便代替原来的对象的使用。在永久地应用了PTF后,原来的对象就会被删除。
临时性应用的PTFs,可以被移去,但永久性应用的PTF是不能移去的。因此在永久性应用了的PTF之前,必须临时应用PTF以确保问题得到解决。
使用自动安装PTFs(PTF菜单的7或8选项),不需要担心装载和应用,系统以将其作为安装的一部分进行处理。

|
|
Figure
11-12. Licensed Internal Code PTFs |
Licensed Internal Codes fixes是专为微码而设的PTF。
有两种类型的微码补丁: Delayed , Immediate
.
系统上所有许可内码有两个备份,一个备份当作永久备份称为系统存贮区A,另一个备份当作临时备份称为系统存贮区B。和其它PTFs一样,许可内码的PTFs必须装载和应用。B存贮区是通常应该使用的,只有当B存贮区IPL失败时才使用A存贮区。
总是使用B存贮区进行LODPTF。B存贮区包含临时的和永久的PTFs.当从B存贮区IPL后,运行LODPTF命令,任何被代替的PTFs被永久性的应用到A存贮区。

|
|
Figure
11-13. Verify PTF Installation |
在命令行键入go licpgm进入Work with Licensed Programs菜单,用50选项,可以查看PTF的安装信息。

DSPPTF -
Display PTF Status
本章总结

1. PTF的含义及其作用。
2. 学会通过SDNPTFORD命令定购PTF、PTF Cover Letter.
3. 了解PTF PACKAGE的安装及单个PTF的安装。
4. 了解手动PFT的安装过程及微码的PTF的安装过程。
5. 会用DSPPTF命令显示PTF的状态。
6. 在PTF正确安装后,用命令GO LICPGM的50选项校验PTF是否安装成功。