[AS/400] 基本概念
本文内容源于 Go4AS400
在 AS/400 中,AS 代表着 Application System。AS/400 是一个安全性高的系统,可以限制用户只能访问、处理特定的信息。AS/400 整合了 DB2 数据库管理系统。
AS/400 里面可以存储、读取的所有东西,都被称为对象(Object)。
Library
每次我们执行命令或调用程序时,AS/400 都从一个被称为库(library) 的地方搜索指定的命令或程序。库是一个对象的集合。QSYS 是系统的根库,所有用户或系统创建的库都被包含在 QSYS 里面。QSYS 也是唯一一个包含其他库的库,
系统库(system library) 是一个库,包含的对象在安装 AS/400 时被创建。系统提供的库都是以 Q 或者 # 开头。
库的类型
系统库,所有 IBM 提供的库,例如 QSYS, QHLPSYS, QUSRSYS....
当前库(current library) ,当前正在使用的库。你的所有的操作都被存于当前库。可以将当前库设置为自己的个人库。
CHGCURLIB TONYLIB
DSPLIBL(Display Library List), 显示库列表
EDTLIBL(Edit Library List), 编辑库列表
Source Physical File
Source Physical File 用于存放不同类型对象的源代码。详情
Physical File
Physical File 根据定义的结构格式,存储数据。其类型为 PF.
Physical file 的结构层级如下。详情
Columns . . . : 1 71 Browse AMINEM/DDSSRC SEU==> ACCOUNT FMT PF .....A..........T.Name++++++RLen++TDpB......Functions++++++++++++++++++ *************** Beginning of data ***************************** 0001.00 A UNIQUE >>>>> FILE LEVEL 0002.00 A R ACCOUNT >>>>> RECORD FORMAT LEVEL 0003.00 A ACLEVELID 2P 0 0004.00 A ACORGCOD 3P 0 >>>>> FIELD LEVEL 0005.00 A ACCOUNTNUM 12P 0 0006.00 A ACCURRENCY 3A 0007.00 A ACNAME 20A 0009.00 A K ACLEVELID 0010.00 A K ACORGCOD >>>>> KEYFIELD LEVEL 0011.00 A K ACCOUNTNUM 0012.00 A K ACCURRENCY ****************** End of data ********************************
Multi-member Physical File
创建一个 PF 后,会有一个和 PF 同名的成员默认出现在文件中。详情
Work with Members Using PDM SYSTEM09 File . . . . . . ACCOUNT Library . . . . AMINEM Position to . . . . . Type options, press Enter. 3=Copy 4=Delete 5=Display 7=Rename 8=Display description 9=Save 13=Change text 18=Change using DFU 25=Find string ... Opt Member Date Text ACCOUNT 05/21/12 >>>> ACCOUNT member inside ACCOUNT physical file Bottom Parameters or command ===> _________________________________________________________________________ _______________________________________________________________________________ F3=Exit F4=Prompt F5=Refresh F6=Create F9=Retrieve F10=Command entry F23=More options F24=More keys
Logical File
Logical file 相当于关系型数据库里面的视图(View),不占据实际内存。
logical file 依赖于 physical file,多个 logical file 可以对应同一个 physical file
只是简单地包含了数据选择的定义,当被访问时,从引用的 physical file 读取数据。可以通过 select 和 omit 命令来筛选数据。详情
一个 logical file 例子
Columns . . . : 1 71 Browse AMINEM/DDSSRC SEU==> MULTIFRMT FMT LF .....A..........T.Name++++++.Len++TDpB......Functions++++++++++++++++++ *************** Beginning of data ************************************* 0002.00 A R ACCOUNT PFILE(AMINEM/ACCOUNT) 0003.00 A K ACCOUNTNUM 0005.00 A K ACCURRENCY
Physical File 和 Logical File 对比
Physical File | Logical File | |
内存 | 占据内存,包含原始数据 | 不占据任何内存,不包含数据 |
数据格式 | 只包含一个数据格式 | 可包含 32 个数据格式 |
依赖关系 | 不依赖 LF | 依赖 PF |
删除 | 有 LF 引用的 PF 无法被删除 | 依赖 PF 的 LF 可以被删除,而不需删除 PF |
创建 | CRTPF | CRTLF |
Access path
Access path 定义记录读取的顺序。Access path 可以临时或永久地存于系统中。
Access path 的类型
到达顺序访问路径(Arrival sequence access path)
顺序访问,每次访问文件中物理位置的下一条记录
行号直接访问,根据行号直接访问指定行号的记录
关键字顺序访问路径(Keyed sequence access path)
基于 DDS 中关键字段,进行记录访问。一共有三种类型
Immediate
Rebuild
Delayed
常用的是 Immediate。Immeidate 表示只要 Access path 关联的数据有变更,就会立即更新 access path,无论文件是否被打开了。详情
SEU(Source entry Utility)
SEU 是 AS/400 上源代码编辑器。详情
Array
数组,是相同数据类型的集合。详情
DATA STRUCTURE
Data structure 通常用于表示不同数据类型的结构。有一下几个作用
- 把字段分割成子字段
- 组合字段
- 改变字段的格式
- 将非连续的数据整合为连续的格式
- 转换数据
Subsystem
AS/400 包含多个子系统(subsystem),每一个子系统独立地运行在不同的任务(Job)。根据任务的类型,会把任务分配到不同的子系统中。一个子系统可能处理所有的交互任务,另一个子系统处理所有的批处理任务,还有一个系统处理通信任务。一个子系统可以处理不同类型的任务。
每一个子系统都有自己的运行时属性。任务在运行时可以获取子系统的属性。
常用的命令:STRSBS, ENDSBS, WRKSBS
Jobs
Job 是指在 AS400 里被完成的一个任务。可以分为两部分
System Jobs
Spooling job 想一个批量任务,给 job 生成 spool file 。
User Jobs
交互式任务(Interactive job)
批处理任务(Batch job)
通信任务(Communication job)
自启动任务(Auto-start job)
Job Name
任务名称格式为 Job Number/User/Job Nmae
打开任务命令
WRKJOB JOB(677342/AJAISWAL/SA)
效果
Work with Job (WRKJOB) Type choices, press Enter. Job name . . . . . . . . . . . . > SA Name, * User . . . . . . . . . . . . . > AJAISWAL Name Number . . . . . . . . . . . . > 677342 000000-999999 Output . . . . . . . . . . . . . * *, *PRINT Option . . . . . . . . . . . . . *SELECT *SELECT, *STSA, *DFNA... Bottom F3=Exit F4=Prompt F5=Refresh F10=Additional parameters F12=Cancel F13=How to use this display F24=More keys
Job Queue
任务被提交后,它会被放置一个叫任务队列(job queue) 的地方,根据自身的优先级等待处理。
Data Queue
数据队列( Data Queue ) 用于两个任务之间的异步通信。将数据从一个任务发送到另一个任务时,使用数据队列 QSNDDTAQ 接口,可以实现异步通信。详情
Journaling
日记(Journaling) ,通常意义上,是用于记录日常活动。在 iSeries 里,日记是指记录对象的活动的行为。当一个文件开启了日记,则文件的打开、关闭、数据更新行为都会被记录下来。详情
Display File Keyworkds
Display File 的关键词有很多,用于控制不同的显示效果。常见的关键词有 ALIAS, COLOR, COMP 等。详情
Subfile
Subfile 仅仅是用于显示表格类数据。subfile 的类型有
Message subfile
Message subfile 是一种特别的 subfile ,用于存储消息。详情
调试批处理任务
STRDBG 和 STRISDB 的对比
STRDBG 在适用范围、速度上都优于 STRISDB,所有在调试时优先考虑 STRDBG。