如何使用REXX Stems变量进行层次型信息存取和报告生成

1. 背景

在z/OS SYSPLEX环境下,经常会有一批JCL jobs运行在不同的LPAR上,每一个job会在自己的job log中产生相应的输出。有一种场景,需要在不同的LPAR上运行同一类JCL jobs, 在这些jobs运行结束,分析在此SYSPLEX上所有此类jobs所产生的job logs,并给出summary报告。图1显示了一种以层次型输出job logs summary信息的方式。

如图:1-01

1-01 层次型信息summary

2. 解决方案

对于背景中描述的场景,很自然想到用多维数组来实现,但对于大多数语言来说,数组的长度是固定的,不能动态变化,而且,其每个层次中的Entity数量是未知的。REXX 中没有多维数组的概念,但有与数组概念相似的Compound Variables and Stems的定义。

通过对REXX stem变量使用方法的分析,我们决定采用多维stems来存取背景中所述的summary信息。具体如下:

Stem.X : 用于存储LPAR name (which system the job runs on)

Stem.X.Y : Job log name

Stem.X.Y.Z : Status blocks

2.1 构建层次型信息LPAR, JOB LOG, Status blocks

2.1.1 使用REXX分析Job log的一般步骤

使用isfcalls 激活SDSF 对REXX的支持

设置SDSF special variables 定制要获取的信息

比如:isfPREFIX, isfOWNER, isfFILTER

获取指定的Job log list

ADDRESS SDSF "ISFEXEC ST"   /* STatus command */

打开一个Job log

ADDRESS SDSF "ISFACT ST TOKEN('"SYSTSPRT.1"') PARM(NP SA)"

读取Job log的内容

"execio * diskr "isfddname.1" (stem spool.)"

2.1.2 存储LPAR name到Stem.X

通过上节III)中的命令可以获取指定job log list, 并得到SYSAFF., JNAME. 等stem变量。其中SYSAFF. 保存system/lpar name, JNAME.保存Job log name信息。

通过以下代码片段(循环执行)可以完成对LPAR name的存储:

lpar_name = SYSAFF.i
x_idx = x_idx + 1;
Stem.x_idx = lpar_name;
Stem.0 = x_idx;
curr_x_idx = x_idx      // 记录当前到LPAR name Stem.的index
 
时间: 2024-08-30 06:08:52

如何使用REXX Stems变量进行层次型信息存取和报告生成的相关文章

数据库名词解释之层次型 基因型 关系型

什么是层次型数据库? 层次型数据库管理系统是紧随网状数据库而出现的.现实世界中很多事物是按层次组织起来的.层次数据模型的提出,首先是为了模拟这种按层次组织起来的事物.层次数据库也是按记录来存取数据的.层次数据模型中最基本的数据关系是基本层次关系,它代表两个记录型之间一对多的关系,也叫做双亲子女关系(PCR).数据库中有且仅有一个记录型无双亲,称为根节点.其他记录型有且仅有一个双亲.在层次模型中从一个节点到其双亲的映射是惟一的,所以对每一个记录型(除根节点外)只需要指出它的双亲,就可以表示出层次模

plsql 中的记录型变量和引用型变量

/* plsql 中的记录型变量和引用型变量 查询某个员工的姓名和工资 练习记录型变量: 定义变量: emp_rec emp%rowtype; sql语句: select * into emp_rec from emp where empno=7839; 输出: dbms_output.put_line(emp_rec.ename); PLSQL大小写不敏感 */ --打开屏幕开关 set serveroutput on declare   --变量说明   pname emp.ename%ty

scalar-SQL @list临时变量 ,报错信息必须定义变量

问题描述 SQL @list临时变量 ,报错信息必须定义变量 declare @list table ( Id int, Name navarchar(12) ) insert into @list select * from tableA select * from @list --到这步都是OK的,能得到@list中的数据 --下面我想把@list与tableB表联接起来做查询 select * from @list,tableB where @list.id = tableB.id 结果报

树型结构在ASP中的简单解决

解决|树型结构 树型结构在我们应用程序中还是很常见的,比如文件目录,BBS,权限设置,部门设置等.这些数 据信息都采用层次型结构,而在我们现在的关系型数据库中很难清淅表达.那么要在程序中遇到树型 结构问题该如何处理呢? 最近笔者通过一个ASP权限管理的程序轻松解决了一这问题,现在将其整理出来以飨读者. 首先,要将层次型数据模型转化为关系型数据模型.也就是说如何在我们的ACCESS,SQL SERVER ,ORACLE等关系型数据库中设计这个数据结构. 拿个实例来讲吧,譬如下面一个数据: 文档管理

Java变量类型间的相互转换

变量|转换 ????我们知道,Java的数据类型分为三大类,即布尔型.字符型和数值型,而其中数值型又分为整型和浮点型:相对于数据类型,Java的变量类型为布尔型boolean:字符型char:整型byte.short.int.long:浮点型float.double.其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围.此外,我们还经常用到两种类变量,即String和Date.对于这些变量类型之间的相互转换在我们编程中经常要用到,在我们今天的这篇文章中,我们将来看看如何实现这些转换. ??

Java 语法介绍(三):变量

为了在Java中存储一个数据,必须将它容纳在一个变量之中.而数据类型决定了一个变量可以赋给什么值以及对变量进行什么样的操作.定义一个变量的两个基本要素是:类型和标识符,通常你可以用如下语法去说明变量: type identifer[,identifer]; 该语句告诉编译器用"type"的类型和以"identifer"为名字建立一个变量,这里的分号将告诉编译器这是一个说明语句的结束:方格中的逗号和标识符表示你可以把几个类型相同的变量放在同一语句进行说明,变量名中间用

PHP变量命名建议

PHP是一种弱类型语言,如果程序里有许多变量,加上PHP许多函数命名都十分混乱,乱上加乱,看得也就眼花缭乱了. 统一编码风格,甚至变量命名,在团队开发中非常重要. 本人从事多年PHP开发,为使所带领的团队更加效,渐渐形成了一种PHP的命名习惯(后面有朋友说是早已存在的匈牙利命名法),使自己的程序看起来十分明了. 下面我就把经验给大家,不一定适用于别人,但还是分享一下. string,字符串型,在变量前面加str 复制PHP内容到剪贴板 PHP代码: //下面一个变量为字串型 $strMessag

Linux shell编程基础 四、变量

变量 变量是暂时用来存储数据的地方,是一个内存空间.bash shell和其 他的编程语言,没有"数据形态",也就是说默认情况下不区分一个变量是整型 还是浮点型等,除非你使用declare语句申明变量类型.在bash shell中,默认 只有一种数据型,就是由字符组成的字符串.同时,设定的变量只在当前的 shell中存在,也就是,每一个shell都会维护一份他们自己的变量,彼此不会有 影响.可以把变量导出成环境变量,这样其他的shell就可以被子shell引用. 变量的命名规则: 1.

王码五笔字型输入法完全教程

  一.基本知识 1.汉字的构成 人们知道,物质是由分子组成的,成千上万种分子,又是由100多种原子构成,而原子,则是由更小的几种基本粒子如质子.电子.中子等构成.中国人常说: 木子──李 日月──明 立早──章 双木──林 可见,一个方块汉字是由较小的块拼合而成的.这些"小方块"如日.月.金.木.人.口等等,就是构成汉字的最基本,也就是最根本的单位,我们把这些"小方块"称做字根",意思是汉字之本."五笔字型"确定的字根有125种.字根