摘要: 八.通用日志管理工具1. 引言AS/400系统上有日志(JRN)和日志接收器(JRNRCV)目标对象,用来存放对数据库文件进行增删改等操作的日志记录。日志接收器是存放日志记录的具体地方,它可以是由一个无限增大的文件组成,也可以是由多个固定大小的文件组成。多个日志接收器文件形成日志接收器链,当当前ATTACHED的有限大小的日志接收器满了以后,系统会自动产生或由用户产生一个新的同样属性的接收器文件。用CHGJRN命令可以改变产生新的日志方式,当Manage receivers( MNGRCV)选项选择*SYSTEM时,系统会自动产生新的日志接收器,当Manage receivers( MNGRC 阅读全文
posted @ 2012-01-09 14:14 静海平心 阅读(764) 评论(0) 推荐(0) 编辑
摘要: 五.如何使用分布式关系数据库我们可以在AS/400系统中使用STRSQL命令来交互执行SQL语句。如果AS/400系统中没有安装交互式SQL工具,那么我们便不能使用SQL语句进行交互式查询等操作。假设有一群连网的AS/400,其中只有一台安装了交互式SQL工具,那么我们能不能只通过这台AS/400的交互SQL工具去对其他没有安装SQL交互工具机器的数据库进行操作呢?答案是肯定的,这就需要使用分布式关系数据库。分布式数据库管理是AS/400系统提供的一个重要功能之一,其功能比较强大,在本文里只能根据作者经验对分布式关系数据库的使用作简单介绍,根据这个简单介绍,你就可以很容易体验分布式关系数据库的 阅读全文
posted @ 2012-01-09 14:13 静海平心 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 七.如何在程序中获取系统ASP使用率等系统状态信息AS/400系统管理员都对系统ASP空间增长情况很关心,当系统ASP空间涨满了以后将会引起系统DOWN机等安全问题。系统ASP空间与硬盘空间并不完全等同,如果系统只配置了一个ASP分区,那么系统ASP空间与硬盘空间是等同的,如果系统配置了多个ASP分区,则系统ASP只是ASP 1的分区。用WRKSYSSTS命令查看到的% system ASP used就是表示系统ASP空间的使用率。与系统ASP空间使用率有关的系统值有两个:QSTGLOWLMT和QSTGLOWACN。QSTGLOWLMT系统值设定了最小硬盘空间警告线百分比,比如设定为5,即表示 阅读全文
posted @ 2012-01-09 14:13 静海平心 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 四.一个批量修改文件属性的工具AS/400上的每个文件都带有大量的属性,文件的属性是在创建文件的时候指定的。在实际应用过程中,可能会需要改变这些文件属性。以PF文件为例,我们可能需要修改文件的Member Size,Maximum Members,Maximum record wait time等等。修改物理文件(PF)属性命令是CHGPF,修改逻辑文件(LF)命令是 CHGLF,遗憾的是这些命令一次只能修改一个文件。如果假设有一个库,库下面有几千个物理文件需要一次性统一修改文件属性,那该怎么办?AS/400并没有提供这样的命令。我做了一个工具命令,可以实现对一个库下的所有文件属性进行批量修改 阅读全文
posted @ 2012-01-09 14:11 静海平心 阅读(418) 评论(0) 推荐(0) 编辑
摘要: AS/400系统开发工具及开发语言很多,有许多技术性的东西并不是我们能经常碰到的,但这些东西在一些实际应用中很有用处。本人在几年AS/400系统上的开发中,也有一些经验。有些东西如果不把其形成文字,过一段时间后,本人都会很快忘掉,比如我现在要写两年前的经验就很费劲。现把其中一些经验总结出来,与大家共享也行,自娱自乐也行。本文不是学术论文,仅仅是一些开发经验总结,有不严谨的地方必定在所难免。一 如何在CL程序自动回复询问类消息(Inquiry Message)在AS/400系统开发中,经常要与各种各样的消息打交道。有一类叫“Escape Message”的消息,是当程序出现错误后,会强迫程序异常 阅读全文
posted @ 2012-01-09 14:10 静海平心 阅读(811) 评论(0) 推荐(0) 编辑
摘要: QUOTE RCMD CL 阅读全文
posted @ 2012-01-09 14:01 静海平心 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 1、 两台400在同一LAN内,并可正常使用TCPIP。2、 两台400必须有一个同名的帐户,例如2台机器都有TEST这个用户。配置过程:1、 配置 host table,以使2台400可以通过主机名互相访问方法:ADDTCPHTE INTNETADR('3.210.132.222') HOSTNAME((PRDAPDT)) 2、创建APPC控制器方法:CRTCTLAPPC CTLD(PRDAPDT) -----控制器名 LINKTYPE(*LAN) SWTLINLST(ETH01) ----网卡的线描述 RMTCPNAME(PRDAPDT) ----远... 阅读全文
posted @ 2012-01-09 14:00 静海平心 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 1. 显示自己作业的QTEMP的内容:(1) 用DSPLIB显示所有外部对象(操作系统之上的可操作的对象):DSPLIB LIB(QTEMP);(2) 用DMPLIB显示所有内部对象:DMPOBJ OBJ(QTEMP) OBJTYPE(*LIB)结果位于假脱机文件QPSRVDMP中:(如图所示)2. 显示别人作业的QTEMP的内容:(1). 用WRKACTJOB找出所要查看的作业的名称,例如:123315/USERxxx/QPADEV0003(2). STRSRVJOB JOB(123315/USERxxx/QPADEV0003)DMPOBJ OBJ(QTEMP) OBJTYPE(*LIB)E 阅读全文
posted @ 2012-01-09 13:59 静海平心 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 1.root(根)文件系统:支持目录结构和访问流文件的命令。与QDLS相近,但支持长文件名并取消了对QDLS的限制。2.QSYS.LIB文件系统:400的数据库文件。FTP用户端可以存取物理文件(PF),逻辑文件(LF),原物理文件(STCPF)和存文件(SF).3.QDLS文件系统:通过它,可以访问“虚拟硬盘”,可以存放PC文件。4.QOPT文件系统:通过它的支持,可以访问400上的CD-ROM等。5.QOPENSYS文件系统:允许在400上存取UNIX类文件。6.QLANSRV文件系统:允许文件服务器输入/输出处理器(FSIOP)快速访问400的磁盘。 阅读全文
posted @ 2012-01-09 13:58 静海平心 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 命令RGZPFM做什么? 什么情况下运行? 影响命令RGZPFM执行时间的因素有哪些?解答 命令RGZPFM应该在文件中被删除的记录超过20%时执行. 该命令执行后,系统的性能会改善。 因为系统在检索时不必再去读那些已经被删除的记录索引, 并且被删除记录所占有的硬盘空间会被释放而变 为可用。影响命令RGZPFM执行时间的因素有很多, 最基本的有以下一些:o 在执行RGZPFM命令时, 系统会使用内部命令CPYF把数据部分拷贝到一个新的数据区, 如果文件 不是排序的(KEYFILE参数), 那么拷贝的频率是8K。由此可以估算出大致需要花费的时间。o 在执行RGZPFM命令时用KEYFILE参数, 阅读全文
posted @ 2012-01-09 13:57 静海平心 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 1)用authorization list控制数据库库内所有PF LF的权限。2)将你的用户归类为只读类(a member of the read-only group)3)将你的应用程序主菜单程序编译为 usrprf(*owner),在讲主菜单程序的owner改为更新类(a member of the update group).这样用户运行程序时就可以"adopt"到足够的权限来更新数据库了。 阅读全文
posted @ 2012-01-09 13:57 静海平心 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 解答 我们知道,在分布式数据处理的环境下,对远程系统上文件内容的操作可以有很多方式,但是如果想简单地在本地对远程系统进行文件管理方面的操作,则可以由一条命令实现:SBMRMTCMD。现在介绍该命令的用法:1. 首先确保双方系统上的分布式处理服务已启动:STRTCPSVR SERVER(*DDM)2. 为目标系统创建DDM文件:CRTDDMF FILE(Lib/TESTAAA) RMTFILE(Lib/AAA) RMTLOCNAME(s102rncm *IP)其中:TESTAAA是DDM文件名; AAA是远程系统s102rncm上要操作的文件的名称。3. 在本地系统上运行文件管理方面的命令,例如 阅读全文
posted @ 2012-01-09 13:56 静海平心 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 为了增强系统、应用的安全性,管理员经常需要了解有无用户删除特定的文件。下文将介绍通过系统审计的方法来实现管理员的目标。 通过系统安全审计功能,可以最小的系统开销来管理系统安全性,它仅仅记录object的改变事件,不会记录object中的详细数据。 下面是系统设置的方法: 1.运行命令GO SECTOOLS, 显示出* Display the Security Tools Menu* 菜单。 2.选择选项 10: Change Security Auditing 3.将系统值QAUDCTL 改为 *OBJAUD ,QAUDLVL改为*DELETE。 回车。 4.如果此时安全审计日志不存在与系统中 阅读全文
posted @ 2012-01-09 13:51 静海平心 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 1)OPMDSPOBJD DETAIL(*SERVICE)2)ILEDSPPGM DETAIL(*MODULE)3)RVTSRC代码 PGM PARM(&LIB &PGM &SRCLIB &SRCFILE &SRCMBR) /* PARM DECLARE */ DCL VAR(&LIB) TYPE(*CHAR) LEN(10) DCL VAR(&PGM) TYPE(*CHAR) LEN(10) DCL VAR(&SRCLIB) TYPE(*CHAR) LEN(10) DCL VAR(&SRCFILE) TYPE(*CHAR 阅读全文
posted @ 2012-01-09 13:38 静海平心 阅读(567) 评论(0) 推荐(0) 编辑
摘要: SAVOBJ OBJ(*ALL)LIB(USRLIB)DEV(*SAVF) SAVF(USRLIB/SAVF) OUTPUT(*OUTFILE)OUTFILE(USRLIB/RESULT)若SROSTA='0',表示未备份成功 阅读全文
posted @ 2012-01-09 13:31 静海平心 阅读(224) 评论(0) 推荐(0) 编辑
摘要: RPG/400中有两种数值型数据相对应,一种是ZONED DECIMAL, 另一种是PACKED DECIMAL。 它们虽然都可以存放数值型数据,但是它们所占用的存储空间是不一样大的。ZONED DECIMAL用一个BYTE存放一个数字,而PACKED DECIMAL用一个BYTE存放两个数字,这样可以看出用PACKED DECIMAL存放数据比ZONED DECIMAL节约一倍的空间. 另外还有一个原因,RPG/400的编译器会将所有的ZONED DECIMAL数据自动转换为PACKED DECIMAL类型,所以选用PACKED DECIMAL类型可以提高应用程序的运行效率。因此,最好选用P 阅读全文
posted @ 2012-01-09 13:21 静海平心 阅读(1172) 评论(0) 推荐(0) 编辑
摘要: 若ILE RPG的源程序中包含有结构化操作码(如DO...END,IF...ELSE...END),编译后不采用缩进格式显示,看起来非常不方便,本文主要描述如何在ILE RPG编译清单中加入结构化缩进格式。 如何在ILE RPG编译清单中实现结构化缩进格式呢?1.在ILE RPG的H表中加入INDENT缩进关键字,INDENT的主要作用是在编译清单中加入缩进格式,缺省情况下INDENT为*NONE,不进行缩进显示。要进行缩进显示可以用INDENT('字符值“),例如:INDENT('| '),它的含义是用一个竖线和一个空格进行结构化缩进,如下图所示:0001.00 H 阅读全文
posted @ 2012-01-09 13:13 静海平心 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 在SQL/400中,不能直接列出某一列的合计,但可以用UNION语句实现这一功能。UNION操作可将两个或更多不同的SQL语句的结果合并成一个结果集,唯一的限制是每个表或SQL语句必需有相同的列类型、数目和顺序。UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。1、在AS/400命令行执行命令:STRSQL2、在“Enter SQL Statements”画面输入下列SQL 阅读全文
posted @ 2012-01-09 13:09 静海平心 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 当您定义了一个查询并运行时,如果该查询出现错误,如何得到详细的调试信息,本篇文章介绍具体的操作过程。 1. 将系统查询属性文件复制到自己的库中:CRTDUPOBJ OBJ(QAQQINI) FROMLIB(QSYS) OBJTYPE(*FILE) TOLIB(userlibrary) DATA(*YES) 注意:不能用命令CPYF来操作,否则会引起数据丢失。2. 进入交互式SQL环境:STRSQL3. 更改系统查询属性文件的副本,将调试信息置为*YES:UPDATE userlibrary/QAQQINI SET QQPARM = 'MESSAGES_DEBUG', QQVAL 阅读全文
posted @ 2012-01-09 12:59 静海平心 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 在AS/400的SELECT语句中可以使用CASE表达式,它可根据表达式的内容返回不同的值,它可以简化原来需多条SQL语句实现的查询,以前用多个游标完成的统计可在一条语句中完成,以下举例加以说明。 1.语法规则:Case语句--当对不同条件产生不同的结果值时,可使用Case语句。--Case语句计算所有定义的条件,并按条件是否为真而返回结果。语法如下:CASE [<input_expression>]WHEN <when_expression> THEN <result_expression>[ELSE <else_expression>]END 阅读全文
posted @ 2012-01-09 12:42 静海平心 阅读(489) 评论(0) 推荐(0) 编辑