Mainframe Is Back 学习资料REXX分享 之二:运算符(REXX Operators)

Filed Under (REXX) by Raymond on 02-12-2008

Tagged Under :

REXX中基本的运算符包括以下几种:

1. ‘+’:

2. ‘-‘:

3. ‘*’:

4. ‘/’:

5. ‘%’: 取整运算

6. ‘//’: 取余运算

例子:

say (5 % 2)  /* Returns the integer part of division result. Displays: 2  */
say (5 // 2)   /* Returns the remainder from division.      Displays: 1     */
say (5 ** 2)  /* Raises the number to the whole power.     Displays: 25    */
 REXX中的比较运算符主要包括:

1. ‘=’ : 相等
2. ‘\=’: 不等
3. ‘>’ : 大于
4. ‘<’ : 小于
5. ‘>=’ : 大于或者等于,即不小于
6. ‘<=’ : 小于或者等于,即不大于
7. ‘<>,><’ : 大于或者小于,即不等于
 例子:

'37'  = '37'    /*  TRUE   - a numeric comparison */
'0037'= '37'    /*  TRUE   - numeric comparisons disregard leading zeroes */
'37'  = '37   ' /*  TRUE   - blanks disregarded   */
'ABC' = 'Abc'   /*  FALSE  - string comparisons are case-sensitive        */
'ABC' = '   ABC  ' /*  TRUE- preceding & trailing blanks are irrelevant   */
''    = '     '    /*  TRUE- null string is blank-padded for comparison   */
 REXX中的关系运算符主要包括:

1. ‘&’ : 
2. ‘|’ : 
3. ‘\’ : 
例子:
if ('A' = var1) & ('B' = var2) then
     say 'Displays only if BOTH comparisons are TRUE'
if ('A' = var1) | ('B' = var2) then
     say 'Displays if EITHER comparison is TRUE'
if \('A' = var1) then say 'Displays if A is NOT equal to var1'

一个简单的REXX小游戏(A Simple REXX Game)

Filed Under (REXX) by Raymond on 02-12-2008

Tagged Under : ,

最近发现了一个REXX写的简单猜数字游戏,其中有很多内容很适合初学者来掌握REXX,游戏的源代码如下:

/********************** REXX ****************************************/

/* The NUMBER GAME – User tries to guess a number between 1 and 10  */

/* Generate a random number between 1 and 10                        */

   the_number = random(1,10)                                          

   say “I’m thinking of number between 1 and 10. What is it?”         

   pull the_guess                                                     

   if the_number = the_guess then                                     

      say ‘You guessed it!’                                           

   else                                                               

      say ‘Sorry, my number was: ‘ the_number                         

   say ‘Bye!’                         

运行:

在ISPF的’6 COMMAND’下输入以下内容:

EXEC ‘MIB.REXX.EXEC(NUMGAME)’ 

解释:

1. REXX语言不区分大小写,所以在上述程序中出现了’say’关键字用来输出信息,功能同’SAY’

2. ‘random’是REXX中内置的函数,用于生成一个随机数。

3. 程序中通过一个if…else语句,来完成对随机生成数字和用户输入数字的判断。   

4. 变量’the_guess’和’the_number’无需提前定义类型,在第一次使用时,系统会自动创建,并且分配内存空间。

RACF中设置权限的意义(RACF Permission levels)

Filed Under (RACF) by Raymond on 01-12-2008

Tagged Under : ,

在用RACF对资源的访问权限进行操作的时候,经常需要设置用户访问资源的权限,具体参数对应的权限如下所示:

 None: 不能访问该资源

Execute: 如果是Data Set是二进制类型的,可以运行这个Data Set

Read: 可以读取资源

Update: 在可以读取的基础上,可以修改资源

Control: 在可以修改资源的基础上,还可以修改VSAM Data Set

Alter: 有权利改变这个资源的访问权限,如果该资源不存在,可以建立该资源。如果该资源已经存在,拥有删除的权利。

DASD Basic (DASD基础)

Filed Under (开发指南||Programming Guide) by Raymond on 28-11-2008

Tagged Under :

记得刚接触DASD的时候,想找些DASD的资料都很难,根本不知道如何才能找到DASD的资料。做了一段时间DASD的工作之后,我终于明白了为什么很难找到直接讲述DASD的资料,我认为原因就在于DASD所涉及到的资料太多,并不是一篇文章和一本书所能讲完的。在这里,就用一篇简单的文章,跟大家share一下我对DASD的理解。希望能对大家有所帮助。

 

DASDDirect Access Storage Device(直接访问存储设备)的缩写。简单的说,就是IBM mainframe系统中的磁盘。我们所有的Data Set,数据信息,系统配置信息,SPOOL信息等等,都保存在DASD中。现在IBM mainframe系统中普遍使用的是IBM 3390磁盘设备。每一台IBM mainframe中,包含有一个IBM 3990控制单元(IBM 3990 Control Unit)IBM mainframe系统(也就是控制器CPU)通过4个通道(channel),与IBM 3990控制单元进行通信。再由IBM 3990控制器对系统中所有的DASD进行管理。IBM mainframe系统中的3390 DASD大多数使用的就是服务器中常常出现的SCSI硬盘,RAID 5 磁盘序列。DASD主要有以下几种常用操作:

 

1. DASD是现在的状态如何,如何查询现在的状态

其实DASD对应着两种系统,也就是说有两种查询DASD状态的方式。

A z/OSOS390系统下查询DASD的状态。

举一个简单的例子,比如我知道有一块DASD已经Attach到了系统上(z/OS或者OS390系统),我想查询一下它现在的状态,那就在TSO SDSF LOG 下输入以下命令来查询:

COMMAND INPUT ===> /D U,,,1234,1

得到的结果是:

UNIT    TYPE    STATUS       VOLSER       VOLSTATE 

1234    3390     S                Z17RES       PRIV/RSDNT

以上命令中,’D,U’是一条用来查询DASD状态的命令,其中的’1234’,是指DASD的编号(DASD Address),后面的’1’是指我要求显示以’1234’起始的几块硬盘,这里我填写的是’1’也就表示我要显示一块硬盘。在得到的结果中,显示出来这块DASD的类型,当前的卷标和状态。

 

B: z/VM系统(这里如果不理解z/VM系统是什么,可以略过)下查询DASD的状态。

还是我刚刚查询的DASD Address: 1234这块硬盘,我想在z/VM系统下查看一下它的状态,那就登陆z/VM系统,执行以下命令:

COMMAND INPUT ===> Q 1234

得到的结果是:

      DASD 1234 ATTACHED TO ABCDE  1234 R/W Z17RES

我刚刚执行了一个’Q’的命令,来在z/VM系统下查询DASD的状态,在得到的结果中,提示我编号为1234的硬盘,连接到了ABCDE这个z/OS系统中,同时还给出了硬盘的卷标’Z17RES’

 

2. DASD另一个常用的操作,就是连接到一个系统(z/OS或者OS390)或者从一个系统(z/OS或者OS390)中断开 。这里对应的就是Attach操作和Detach操作。

实际上,一个DASD只有Attach到了一个z/OS或者OS390系统上,才能对DASD的内容进行操作。而一个DASD要是不想在一个系统上对其访问了,就要进行相应的DET操作才可以。还是举两个例子: AttachDetach的例子。

A: 还是刚刚的那块硬盘,DASD Address: 1234。如果我不想它在z/OS系统下访问了。那就要在z/VM系统下把它断开。就执行以下命令:

COMMAND INPUT ===> DET 1234 ABCD

 我以上执行的命令的意思就是把编号为1234DASDABCDz/OS系统中断开连接,也就是所谓的Detach操作。这样,在ABCD系统中,就无法访问1234这个DASD了。

 B: 如果刚刚断开的DASD,还需要在z/OS系统下访问,那就执行一个Attach操作。具体的命令是:

COMMAND INPUT ===> ATT 1234 ABCD

 这个命令的意思就是,把DASD编号为1234的硬盘连接到ABCD系统中。

 

 

3. 以上两个,都是对DASD最基本的操作,除了这两个之外,DASD还有很多其他操作,比如:

A: ATTDET的时候,会涉及到z/VMonlineoffline操作,z/OS onlineoffline操作。

B: DASD在使用的时候,一般都要对应初始化操作

C: DASD的格式化操作

D: 一块DASD连接到多个系统,在多个系统上同时访问,进行share的操作

这些操作相对来说比较复杂,如果真的有需要可以跟我和11联系。我们会尽量提供这方面的内容。希望这个DASD基础能对刚刚接触DASD的人有所帮助。

巴克莱银行Mainframe职位招聘信息

Filed Under (求职信息||Job Info) by Raymond on 25-11-2008

Tagged Under :

Job Title: 资深软件工程师(Mainframe)

Job Purpose:

Be responsible for systems design and analysis, coding, testing and implementation for supported mainframe applications

Main Accountabilities:

1.Consult with Product Development Managers on the proposed solutions for gaps/requirements

2.Develop detail systems specifications with reference to the users requirements, functional specifications and database design per appropriate

3.Write/Modify and/or review code (from vendors) to meet specifications 

4.Follow detailed project plans from Product Development  Manager and take actions to ensure the  achievement of   project delivery goals

5. Use productivity tools to develop and/or review applications Work on unit test and debug programs if applicable

6.Design database systems and programs Work with user community to understand data access and integration needs

7.Design effective and efficient interfaces to systems, applications and databases

Experience:

1.Bachelor degree in computer science or related major

2.Minimum 3 years of experience in application development,previous experience in working with international

3.banking applications preferred

4.Minimum 2 year working experience in mainframe MVS environment

Knowledge and Expertise:

1.Proficient in either COBOL, DB2, CICS, VSAM, JCL, OR COBOL, CICS, JCL, IMS

2.Previous experience in Vision Plus highly preferred

Personal Attributes:

1.Result-oriented with good coordination skills to get things done 

2.Excellent team player

Skills:

Excellent English skills both oral and written is strongly preferred

If you are intereted in this job position,please send your CV to: btcc.hr@barclays.com

诚聘大机开发人员/Mainframe Engineer(外派日企)2008.11.20

Filed Under (求职信息||Job Info) by Raymond on 20-11-2008

Tagged Under :

大机开发人员(Mainframe Engineer) 
工作地:西安 
职位要求: 
1、1年以上大型机开发经验,有IBM大型机经验者优先 
2、有COBOL项目开发经验 
3、至少3年以上工作经验,2个以上项目开发经验 
4、计算机相关专业,本科以上学历 
5、具有诚信、敬业,有良好的团队精神和协同能力,能够承受工作压力 
6、日语二级以上 
7、可长期在西安工作 
有意向者可以通过MSN向我了解情况, 
MSN:glowwarm0705@hotmail.com

IBM携手Sun发布大型机版本OpenSolaris

Filed Under (新品发布||New Product) by 11 on 07-11-2008

Tagged Under : ,

IBM和Sun本周宣布,运行在大型主机上的操作系统OpenSolaris已经可以下载使用了。

Forrester Research分析家Brad Day表示,Solaris和System z大型主机在商业服务领域都占据很大的市场,很多用户都希望能整合基于Solaris的应用和大型主机服务器。IBM和Sun表示,这项举措将允许Solaris系统上的自定义C/C++应用程序实现由Sun的硬件设备到System z的迁移。

早在2007年,IBM和Sun就号召开发主机端口模型并鼓励开源开发者参与该项目帮助完善软件。后来一家工程研发公司Sine Nomine Associates为接下了该项目,设计了服务器端口并实现了OpenSolaris到System z大型主机上的移植,在此期间IBM和Sun给予了技术和资金支持。Sine Nomine还为大型主机开发了一种Java软件端口,不过要到2009年年底或2010年年初才能完成。
在去年11月,IBM和Sun曾给出了最早版本的运行在大型主机上的OpenSolaris代码。除此之外,IBM和Sun的合作还包括在刀片和x86服务器上支持Solaris,而且为Sun的xVM虚拟化管理方案提供背书。

OpenSolaris运行在z/VM系统之上,采用OpenSolaris平台的z系列主机,可在同一台主机的不同虚拟机上,执行多个不同操作系统,并能控制数千个虚拟映象(virtual images)。

官方下载:http://www.opensolaris.org/os/project/systemz/

IBM Q3利润增长20% 大型计算机销售增长25%

Filed Under (IBM NEWS) by 11 on 19-10-2008

Tagged Under :

赛迪网讯10月17日消息,在克服硬件销售收入下降和签署大量新的服务合同的推动下,IBM财年第三季度的利润增长了将近20%,超过了分析师的预期。
在一项密切关注的指标中,IBM在第三季度签署了127亿美元的新的服务合同,减少了4%。这表明IBM在严峻的经济形势下仍然能够获得大量的新业务。短期合同的金额为61亿美元,增长了13%。

IBM在截止到9月30日的财年第三季度的利润为28.2亿美元,合每股收益2.05美元。去年同期IBM的利润为23.6亿美元,合每股收益1.68美元。

据Thomson Reuters的调查,分析师平均预测IBM第三季度的利润为每股收益2.03美元。

IBM第三季度的销售收入为253亿美元,增长了4.9%。扣除汇率波动的因素,IBM的销售收入增长了2%。分析师预测IBM第三季度的销售收入为259亿美元。

IBM第三季度的硬件销售收入减少了9.5%,影响了销售总收入。硬件销售包括大型计算机和服务器。虽然大型计算机的销售收入增长了25%,但是,IBM的一种服务器的销售收入减少了82%。

在IBM公布了财务报告之后,IBM股票在盘后交易中上涨了65美分,交易价格为92.17美元。在正常交易时段,IBM的股票价格上涨了3.23美元,涨幅为3.7%,收盘价为91.52美元。

IBM DB2,走过二十五年征程

Filed Under (DB2) by 11 on 27-09-2008

Tagged Under :

从1983年推出DB2 for MVS至今,IBM DB2已经走过了25年的发展历程。在这段漫长的岁月中,DB2拥有开创技术先河的辉煌,也曾经历独守大机系统的寂寥。回首这段由骄傲、失落、重生所贯穿的成长经历,面对未来,DB2的技术创新信念从未改变。

9月23日,“IBM DB2诞生25周年纪念大会”在京召开。在这样一个极具纪念意义的日子里,已经为大众所熟知的DB2在数据库领域的杰出贡献被反复提起。从1970年IBM研究员E.F.Codd首次提出关系模型的概念,到IBM院士 Don Chamberlin创建SQL语言;从IBM发明Aries 并发算法实现对数千用户操作的同时处理,到DB2在支持交易方面的实现。在数据库技术演进历程中,总有DB2的光荣印记闪耀其间。而美好的回忆并不是 DB2财富的全部,在因迷恋主机系统而失去开放系统数据库市场头把交椅后,DB2以技术领袖和市场追赶者的双重角色,用永不间断的技术创新实现“把数据转 化为信息,将智能转变为洞察力”的应用承诺。 Read the rest of this entry »

[JCL Return Code]返回码SE37

Filed Under (JCL) by Raymond on 26-09-2008

Tagged Under :

今天干活,跑一条JCL,遇到了一个SE37的返回码。觉得这个返回码大家应该经常能遇到,所以就拿到这里来跟大家share一下。

问题描述:

出现问题的step那部分JCL功能很简单,就是把一个PDS中的member复制到另一个PDS中去。所以就不附加JCL了。我执行JCL之后,系统给的提示是:
12.50.28 JOB00348 -JOB Name STEP2 *SE37 71 .00 .00 .0 7095 1 0 0 0 0

在JOB LOG中,除了这个信息外,没有其他的信息。于是在IBM Library中查找返回码的信息,得到的结果是:

E37
Explanation: The error occurred when an output operation was requested. The data set was on a direct access or magnetic tape device. This system completion code is accompanied by message IEC032I. Refer to the explanation of message IEC032I for complete information about the task that was ended and for an explanation of the return code (rc in the message text) in register 15.

根据上面的解释,问题是输出文件用的PDS空间不够所导致的。

问题解决:

可以考虑重新建立一个空间更大的PDS,但是更简单的方式是对现有的PDS进行压缩。具体操作在ISPF 3.4中,如下图所示:

ISPF compass

ISPF compass

选择compress。压缩后,再次执行JCL,操作正常。

IBM等11家科技公司上榜全球最佳品牌25强

Filed Under (大机动态||Latest Mainframe) by 11 on 20-09-2008

Tagged Under :

北京时间9月19日,据国外媒体报道,国际知名杂志《商业周刊》(BusinessWeek)和著名品牌评估机构 Interbrand周四公布了2008全球最具品牌价值的榜单,尽管可口可乐高居榜首,但是今年仍有11家科技公司挤入前25名。其中科技巨头 Google的品牌价值增长速度最快,由去年的第20名飙升至10名。

08年全球最具品牌价值25强 单位:十亿美元

BusinessWeek和Interbrand是按照品牌价值对公司营收贡献进行排名。今年IBM超过微软成为全球第二家品牌价值最高的公司。微软的座次略有下滑,由去年的第二名降至第三。

值得注意的是Google今年的品牌价值同比增长43%至256亿美元。而位于榜单第24名的苹果公司,其品牌价值同比增长24%至137亿美元。

科技公司仍然占据全球最具品牌价值榜单的重要位置,除IBM、微软、Google外,诺基亚(第5)、英特尔(第7)、惠普(第12)、思科(第17)、三星(第21)、甲骨文(第23)、苹果(第24)及索尼(第25)八家公司都跻身全球最具品牌价值25强。