ILOVEMAINFRAME 的个人资料I love mainframe日志列表 工具 帮助

I love mainframe

Ideals are like the starts we never reach them, but like mariners, we chart our course by them.
6月11日

典型 MAINFRAME 工作流程

绝大部分的 MAINFRAME 的工作流都可以被划分为以下两类:批处理(Batch processing)和联机处理(Online transactional processing,包括基于网络的应用)。下面给这两种工作流做一个纵览。

workloads

批处理 - Batch processing
MAINFRAME 的最大的一个优势就是能够从高速存储设备中处理千兆海量数据,然后产生出有价值的结果。比方说,MAINFRAME 系统为银行和其他金融机构实现了季度报表功能,能够为客户产生必要的报表(季度资产报表和养老金报表),或者向政府提交财务成果报表。零售店也可以为其区域销售经理复查生成和整合夜间销售报表。

生成这些报表的应用程序就是批处理。他们在 MAINFRAME 中处理,并且不需要用户的干预。它们在计算机上提交,成批的读入和处理,然后产生结果输出。UNIX 的脚本文件和 WINDOWS 中的后缀名为 .cmd 文件也大都是这个概念,只不过一些 z/OS 的批处理作业能够持续非常长的一段时间。

虽然批处理能够在分布式计算机系统中运行,但是它却远没有在 MAINFRAME 中那么简单易行。因为分布式计算机系统相对于 MAINFRAME 而言缺乏一下这些东西:

  • 充足的资料存储空间
  • 处理器的有效功率和回路
  • 系统资源的系统联合管理和作业时序安排
MAINFRAME 的操作系统一般都配备有非常尖端的作业时序安排软件。通过它数据操作员能够提交、管理和追踪这些批处理作业的执行和输出。

批处理流程有以下几个特点

  • 访问和读入海量数据,并能够产生大量数据输出。
  • 虽然交互式反应时间并不是必备条件,但是批处理作业通常必须在一个由基于服务品质协议(Service Level Agreement)的批处理窗口中完成。
  • 产生的信息可能和众多的用户相关;
  • 一个预定的批处理流程能够由成百上千的由预先设定好的顺序的作业的执行过程组成。
在批处理的过程中,会产生很多种样式的结果。最为典型的例如投资收益性报表信息整理,定制数据库备份。每日订单处理和库存更新。

下图所列的就是一些典型的 MAINFRAME 环境中的批处理作业。

workloads

下面我们来说明一下图例中的几个步骤

  1. 晚上,许多批处理作业和应用程序都被执行。他们直接巩固了白天联机处理流程的顺利执行。
  2. 使用批处理作业来生成商业统计报表。
  3. 在批处理窗口之前和之后备份关键性的文件和数据库。
  4. 商业统计报表会被发送大指定的数据集中以便在接下来的几天进行分析和检查。
  5. 不同的报表会被送到不同的部门。
  6. 所生成的月度帐户收支报表会被送到每一个银行客户的手中。
  7. 帐户操作的概要报表会被提交到相关的信用卡公司。
  8. 从合作的信用卡公司得到相关卡片的交易报告。
  9. 在产品控制部门,操作台用爱监控系统控制台上的消息和作业的执行。
  10. 作业和事务读取或更新那些联机处理流程中一样要使用的数据库,并在这个过程中在磁带上写上大量文件。
联机事务处理 - Online transactional processing
MAINFRAME 中提供了大量的联机书屋处理系统。大多情况下,他们的核心功能都是为商业运作提供任务性的应用程序。一些行业所使用的就是联机系统。

  • 银行业 - ATM 自动柜员机
  • 保险业 - 策略管理和需求处理的代理系统
  • 旅游业和运输业 – 航线预订系统
  • 制造业 – 库存控制,生产调度
  • 政府 – 税收处理,许可证发放和管理
在这些行业中工作的人员是如何与 MAINFRAME 系统相联合的呢?许多因素影响着公司中事务流程的成型,这些因素包括:

  • 同时能够与系统联接的用户的数量
  • 每秒处理事务的数量
  • 应用程序的实用性需求(比方说,应用程序是否需要一天24小时,一周七天运行,或者是否需要每周有一晚停止运行)
在个人电脑和智能工作站流行起来之前,最普遍的和联机 MAINFRAME 应用程序通信的方法就是使用 3270 终端。虽然它被认为是“哑”终端,但是相对于响应键盘操作的电脑它在搜集和整屏显示数据上要更加智能化,而且非常节省处理器的资源。字符的显示是黑底绿字,所以 MAINFRAME 的应用程序又被昵称为“绿屏”程序。

基于这些因素,用户在不同的暗转设置过程中就会有很多种不同的交互作用。由于现在应用程序都可以自主设计,所以在安装设置中重写了现在既有的一些 MAINFRAME 应用程序,为方便用户加上了基于网络浏览的接口。这种改变往往需要开发一些新的应用程序,最常见的就是从第三方购买一些软件来加一个门面。这样用户就根本不会意识到在屏幕背后和他交流的是 MAINFRAME。

连接事务处理被大多数人所熟知,比方说:

  • 使用ATM 取款机,存款、取款、查询和转帐
  • 在超市中用借记卡或者信用卡付款
  • 网上购物
联机事务处理一般来说有以下几个特点

  • 少量的输入数据、访问和处理存贮的数据、输出数据;
  • 响应迅速,通常不会超过一秒;
  • 众多的用户能够处理大量的事务处理;
  • 用户操作界面全天候有效;
  • 确保事务处理和用户资料的绝对安全。
以一间银行的分行为例,用户使用联机服务来查询帐户收支或者作投资。

workloads

上图所示的就是一些使用 MAINFRAME 的联机事务处理

  1. 一个用户正在使用 ATM 柜员机。它有着友好的界面和多样的功能:取款、查询、存款、转帐和信用卡取现。
  2. 与此同时,该分行的职员正在办公室里做着日常的操作:投资咨询,资金应用和汇票处理等。
  3. 在银行的主办公室中,商业分析师们在调整着事务以便提高工作效率。其他员工则使用不同的专门的联机系统里处理客户的关系管理,分期付款和股票等等。
  4. 所有的请求都被直接送到 MAINFRAME 上去处理。
  5. MAINFRAME 上的程序对数据管理系统(比方说 DB2)中的数据进行更新和查询。
  6. 这些数据文件会被存放到指定的磁盘存贮系统中。
6月10日

Mainframe 的操作系统

随着 MAINFRAME 硬件的不断发展,其操作系统也不断发生变化。从最初的 MVS 到后来的 OS390 以及目前的 z/OS,IBM MAINFRAME 的操作系统不断在原有基础上融合当前的先进技术,也逐渐由封闭走向开放。虽然MAINFRAME 也可以支持其他操作系统,甚至是开放的LINUX,但目前主要的应用系统仍运行在z/OS上。除了z/OS外,其他四种 MAINFRAME 的操作系统是:z/VM,VSE,Linux for zSeries和z/TPF。由于 z/OS 会单独拿出来介绍,所以我们这里只介绍一下其它四种。

z/VM
z/VM有两个基本组件:控制程序CP和一个单用户的操作系统CMS。

z/VM是一个系统管理程序(Hypervisor),它支持在物理硬件资源的基础上创建多个虚拟机器,用来运行其他操作系统。对用户来说,就好像独占那些实际上是共享的物理资源——包括打印机、存储设备和CPU等。z/VM的控制程序负责确保虚拟机器上的数据和应用程序的安全。物理的硬件可以被多个虚拟机器共享,或者出于性能要求被独占。系统程序编辑人员负责给虚拟机器分配物理设备。对于大多数客户而言,虚拟系统的使用免除了他们必须配备高性能硬件的麻烦。

z/VM 的另一组件是对话管理系统 CMS(Conversational Monitor System)。该组件运行在虚拟机器上,为终端用户提供交互接口和一般的应用程序接口。

VM 操作系统在 IBM MAINFRAME 上有很长的历史,目前的最新版本是z/VM 5.2。其在中国并不多见,目前最主要的功能就是为其它操作系统提供一个平台。

VSE
VSE(Virtual Storage Extended)无论在小型机还是大型机用户中都相当流行。只有当客户的性能要求超过 VSE 负荷时才会转而使用 z/OS。相对 z/OS,VSE 操作系统为批处理和交易处理提供相对较小的、更简易的基础支撑。VSE 的设计和管理结构非常适合运行常规产品工作负荷,包括大量并行运行的批次作业和大范围、传统的交易处理。在实际操作中,大多数 VSE 用户同样使用 z/VM 操作系统,把它作为 VSE 应用发展和系统管理的一般终端接口。

该操作系统以早期硬盘操作系统(DOS)而闻名,是第一个引入360大型机系统的基于硬盘的操作系统。直到OS/360诞生,DOS 才被取代。但由于 DOS 操作简单且占用空间小,许多大型机用户在 OS/360 产生后仍然坚持使用它。DOS 曾经被叫做 DOS/VS(当时DOS开始启用虚拟存储),VSE/SP 和后来的 VSE/ESA。在谈到最新的版本时才被称之为VSE。

Linux for zSeries
Linux 的很多版本都可用于大型机。这些版本不是由 IBM 开发的,但是其使用得到 IBM 的支持。这些 Linux 的版本一般分为两类:

  • S/390 版 Linux(使用31位寻址和32位中央处理寄存器)
  • zSeries 版 Linux(使用64位寻址和中央处理寄存器)
Linux 在 zSeries 主机上有三种实施方式:Native 自举方式;LPAR 逻辑分区方式;借助 VM 操作系统或 IBM 模拟映象工具 VIF 的方式。它们各有利弊,但后者提供了较大的灵活性,并且能够支持更多的 Linux 系统并存。

  • Native 自举方式
相对之前的 UNIX Service 而言,这种方式的确是一个突破,标志着无需额外支持,一个完整独立的 Linux 操作系统可以正常顺利地在 zSeries 上运行。多数情况下,客户出于成本的考虑不会在一台 zSeries 上仅运行Linux for zSeries 操作系统。随着更多工具和产品的出现,客户可以采用这种方式访问越来越多传统的或最新的外部设备。这一方式对于那些不愿负担 zSeries 操作系统认证成本的用户,或是那些在 zSeries 模拟环境上进行尝试的 MainFrame 忠实的爱好者来说,的确是一种不错的选择。

  • LPAR逻辑分区方式
对于只有 z/OS 或 VSE 操作系统的情况,这是初次引入 Linux 时的一个非常好的选择。当前 zSeries 体系结构支持每个物理系统上同时运行15个逻辑分区。考虑到 zSeries 系统较高的初始投资,为了更加充分地利用已有资源,同时又不增加系统管理的负担,在一个或多个分区上实施 Linux,既可以满足中小规模的应用需求又能够为内部人员提供学习和培训环境。从企业实施 Linux 服务前的测试阶段,一直到对已有的 Linux 服务进行集中或扩充时,这都不失为一种方案。

  • 基于 VM 或 VIF 的客户方式
对于多数用户,这是最灵活和最符合需求的办法。VM 不仅具备了大规模实施所需的实际资源管理和系统管理的能力。同时,也提供了 Native 模式和 LPAR 模式下所缺少的或需要获得认证的简单的备份和恢复方案。这非常适合于应用规模由小到大逐步实现的客户。虚拟映象工具 VIF 为不熟悉虚拟系统环境的客户提供一种低成本的方式,以实现虚拟环境的管理。最典型的情况是,在需要比 LPAR 方式和 Native 方式更多映象而又无法负担一个 VM 的完整认证时,VIF 就提供了快速实施 Linux for zSeries 的方法。在 VM 或 VIF 之上运行 Linux 服务映象的数量,仅受物理上内存和 CPU 资源的限制。在多数情况下,如果采用内置 OSA 卡实现网络通讯,那么最明显的限制就只是网络带宽了,目前 zSeries 系统可支持多达16块内置 OSA 卡。

Linux 在 IBM 大机上主要有以下两种使用方式:

  1. 将大量的分散在各种平台服务器上的应用集中到一台大机上,在多个 Linux 映像上运行集中上来的应用,从而增强整个系统的可管理性,降低管理成本和维护成本。
  2. 将核心应用(如数据库服务器)放在传统大机的操作系统 z/OS 上,将外围的应用(如应用服务器、Web服务器等)运行在 Linux 分区上,实现服务器的整合。
综上所述,Linux for zSeries 是把 Linux 的灵活性、开放性与 zSeries 主机的服务质量结合起来,它能满足当代电子商务的需求,适应于企业级 IT 的系统架构,克服了分布式服务器群的各项弊病。

z/TPF
z/TPF(Transaction Processing Facility)系统是一种在实时环境中运行交易处理应用程序的操作系统,主要用于面向交易量较大的业务,譬如信用卡公司和航空预定系统。

z/TPF 系统是为具有庞大的在线交易量和巨大网络覆盖面的业务模式而设计。由于其强大的处理能力和高度的可用性,比之其它操作系统,它能够更好地适应交易量瞬间峰值的冲击,以及业务范围可预见的或突发的快速扩充。它尤其能够满足那些需要强大处理能力和低廉的平均交易成本的应用领域。

6月8日

IKJEFT01

IKJEFT01是一个TMP程序. (terminal monitor program).

可以执行clist,rexx,tso.e command命令等.

例1
SB01 EXEC PGM=IKJEFT01,DYNAMNBR=50
STEPLIB DD DISP=SHR,DSN=DSN.DSNLOAD
SYSTSPRT DD SYSOUT=*
SYSPRINT DD DSN=XXXX.XX.XXXX,DISP=(,CATLG),
DCB=(RECFM=FBA,LRECL=133,BLKSIZE=133),
SPACE=(CYL,(5,5)),UNIT=SPLD
SYSIN DD DSN=&&CTL,DISP=(OLD,DELETE)
SYSTSIN DD DSN=XXXX.IOCS.SQLLIB(DSNTEP2),DISP=SHR

XXXX.IOCS.SQLLIB
********************************* Top of Data **********************************
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTEP2) PLAN(DSNTEP2) LIB(’DSN.RUNLIB.LOAD’)
******************************** Bottom of Data ********************************
SYSTSIN sysin控制参数 这里是一段CLIST程序

例2
在DB2使用中,DSN用来获取DB2在OS/390的Subsystem identifier,用来对DBRM进行BIND PLAN或者 BIND PACKAGE的,也能PLAN和PACKGAE进行RUN。

在IKJEFT01中输入执行语句应该写在 SYSTSIN里
BIND的时候:
//DBRMLIB DD DSN=XXX.XXX.XXX,DISP=SHR
//SYSTSIN DD*
DSN SYSTEM(Subsystem identifier)
BIND PLAN(PLAN-name) MEMBER(DBRM-name) ACT(REP) ISO(CS)
END
/*

RUN的时候 :
//SYSTSIN DD *
DSN SYSTEM(Subsystem identifier)
RUN PROGRAM(DB2PGM-name) PLAN(PLAN-name) -
LIBRARY(’DATASET-name of DB2PGM’)
END
/*

对于abend情况的处理,可以用IKJEFT1A,IKJEFT1B

6月6日

Mainframe 就在我们间

尽管 MAINFRAME 在商业发展中占尽优势,但是这种机器对于大众、学术界甚至一些有经验的 IT 专家们来说仍旧不过是一个隐形物。与此相反,其他一些类型的电脑却能够吸引更多人的眼球。事实如此也不用显得吃惊。毕竟,我们之中有谁需要访问 MAINFRAME 呢?如果我们想去访问,应该从哪里下手呢?事实上,我们都是 MAINFRAME 的用户,只不过我们可以自己都没有意识到这一点罢了。

我们绝大部分人都能够熟练使用个人电脑,都会买一台电脑,装上方便快捷的软件,浏览网页,或者给大学教授写毕业论文。如果拥有更高的技术知识,我们能够更详细的钻研那些带有Intel?标记的有着各种设备的工作站(个人电脑)。通过直接的或者间接的,有辅导的或者没有辅导的的方法从书本或者网页上找到相应的资料去研究其性能。

然而对于 MAINFRAME 我们并没有什么机会去研究它,因为它似乎在逃避大众的目光。它们仍旧非常可靠的完成的所有人物。并且几乎能够抵抗 所有那些令PC机备受折磨的攻击,例如邮件炸弹,邮件病毒,木马程序等等。正因为它运行的可靠性,几乎可以忽略不计的宕机时间, MAINFRAME 可以说是所有计算机的典范。

今天 MAINFRAME 在世界上绝大多数的公司的日常运作中扮演着中枢的角色。当其他的电脑在外部处理着各种各样的业务的时候,MAINFRAME 在当今的电子商务的大环境中早已占领了令人觊觎的位置。银行、金融、卫生保健、保险、事业单位、政府,还有各种国营和私营的企业,MAINFRAME 不无例外的在为它们的现代商务发挥着基础的作用。当你走到银行的 ATM 取款的时候,其实你已经在享受 MAINFRAME 为你提供的服务了,他正在你无法看到的地方发挥着巨大的作用,但是你身边的每一点小事也许都会受它的影响。MAINFRAME 就在我们中间。

6月5日

IEBUPDTE

IEBUPDATE 这个 UTILITY 最常见的用法是用来在分区数据集中创建多个 member,或者更新这些 member 中的数据。虽然 IEBUPDATE 能够用来处理给中类型的数据,但是主要用途还是创建或者维护JCL的过程库或者汇编语言的宏程序库。今天,这个 UTILITY 大多用来做程序产品的发布和维护了。很少被普通 TSO 用户使用。

这里有一个很基本的例子用来往 MY.PROCLIB 中添加两个 JCL 的过程的 MEMBER。运用 ISPF 也许能够很方便的完成这些事情,但是如果我们假设这个 JOB 已经在磁带上了,那么很显然就会比 ISPF 操作更加有效。

//OGDEN10 JOB 1,BILL,MSGCLASS=X
// EXEC PGM=IEBUPDTE
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DISP=OLD,DSN=MY.PROCLIB
//SYSUT2 DD DISP=OLD,DSN=MY.PROCLIB
//SYSIN DD DATA
./ ADD LIST=ALL,NAME=MYJOB1
//STEP1 EXEC=BILLX1
//PRINT DD SYSOUT=A
// (more JCL for MYJOB1)
//SYSUDUMP DD SYSOUT=* (last JCL for MYJOB1)
./ REPL LIST=ALL,NAME=LASTJOB
//LIST EXEC PGM=BILLLIST
// (more JCL for this procedure)
//* LAST JCL STATEMENT FOR LASTJOB
./ ENDUP
/*

对这个例子进行一下说明:

  • 这是一个更新数据集的过程,所以 SYSUT1 和 SYSUT2 都指向了同一个数据集。如果指向不同的话,那么就会是一个先复制然后再更新的过程。
  • 从SYSIN DD DATA 的格式来看,输入流的前两列会有 // 表示,它并不会被 JCL 语句打断。输入流的结尾会有 /* 的标识。IEBUPDATE 的 UTILITY 控制语句由 ./ 来引导。
  • 一个名为 MYJOB1 的 MEMBER 被加入到 MY.PROCLIB 中。而且这个 MEMEBER 并不需要已经存在。而已经存在的 MEMBER LASTJOB 就会被新的内容替换掉。
另外,IEBUPDATE 这个 UTILITY 还能够根据控制语句中的序列号来添加或者替换相应的 MEMBER。这也是针对 JCL 语句或者源语句中那些数字序列的所剩不多的用法。
最后我们需要再次重申 IEBUPDATE 最有代表性的用法是用作程序的发布和维护。比方说,如果需要给客户的程序库中添加25个 JCL 过程,我们只需要将这25个过程作为一个程序包用 IEBUPDATE 导入。这样做的一个好处是由于所有的产品都使用一种源程序格式,客户就可以很方便的在使用之前进行审核。

 

ILOVEMAINFRAME

地点