Для доступа к z/os использовался эмулятор терминала ibm 3270 x3270



Дата02.03.2019
Размер234 Kb.
#73504
ТипЛабораторная работа

1. Лабораторная работа № 1
Для доступа к z/OS использовался эмулятор терминала IBM 3270 x3270 (http://x3270.bgp.nu/). Эта программа связывается с мейнфреймом поверх протокола Telnet, осуществляя перекодирование символов в локальной и удалённой кодировке и отображая коды управляющих клавиш локального терминала на удалённый. Кроме того, можно подключаться напрямую, используя программу telnet, однако в таком случае можно столкнуться с проблемами ввода управляющих символов (например, Del, Backspace, функциональные клавиши) и перекодировки (для русской локали используется достаточно редкая кодировка IBM dkoi8). Консоль при этом выглядит следующим образом:


В процессе лабораторной работы создаются три набора данных, которые затем используются при написании и выполнении программы на языке С. Поскольку в методических материалах приведены пошаговые инструкции по созданию первого набора данных, CL0XXXX.TEST.C (где xxxx — номер ID в списке учётных записей), здесь мы рассмотрим процесс создания третьего набора с записями неопределённого размера CL0XXXX.TEST.LOAD.

Все дальнейшие операции выполняются в подсистеме ISPF (Interactive System Productivity Facility). Для входа в него нужно после приглашения набрать tso (Time Sharing Option) и ввести учётные данные.

Для манипуляции с наборами данных нужно зайти в меню утилит (3) и выбрать пункт Data Set (2).

На следующем экране нужно ввести составное имя набора и выбрать необходимое действие (A — Allocate):

Menu RefList Utilities Help

──────────────────────────────────────────────────────────────────────────────

Data Set Utility


A Allocate new data set C Catalog data set

R Rename entire data set U Uncatalog data set

D Delete entire data set S Short data set information

blank Data set information V VSAM Utilities


ISPF Library:

Project . . CL01119 Enter "/" to select option

Group . . . TEST / Confirm Data Set Delete

Type . . . . LOAD


Other Partitioned, Sequential or VSAM Data Set:

Name . . . . . . .

Volume Serial . . . (If not cataloged, required for option "C")
Data Set Password . . (If password protected)
Option ===>

F1=Help F2=Split F3=Exit F7=Backward F8=Forward F9=Swap

F10=Actions F12=Cancel
4B TCP00044 013/019
После этого необходимо задать параметры. Необязательно задавать все параметры — некоторые система установит сама по умолчанию:

Menu RefList Utilities Help

──────────────────────────────────────────────────────────────────────────────

Allocate New Data Set


Data Set Name . . . : CL01119.TEST.LOAD
Management class . . . (Blank for default management class)

Storage class . . . . (Blank for default storage class)

Volume serial . . . . (Blank for system default volume) **

Device type . . . . . (Generic unit or device address) **

Data class . . . . . . (Blank for default data class)

Space units . . . . . megabyte (BLKS, TRKS, CYLS, KB, MB, BYTES

or RECORDS)

Average record unit (M, K, or U)

Primary quantity . . 2 (In above units)

Secondary quantity (In above units)

Directory blocks . . 5 (Zero for sequential data set) *

Record format . . . . u

Record length . . . .

Block size . . . . . 11440

Data set name type pds (LIBRARY, HFS, PDS, LARGE, BASIC, *

EXTREQ, EXTPREF or blank)

Expiration date . . . (YY/MM/DD, YYYY/MM/DD

Enter "/" to select option YY.DDD, YYYY.DDD in Julian form

Allocate Multiple Volumes DDDD for retention period in days

or blank)


( * Specifying LIBRARY may override zero directory block)
( ** Only one of these fields may be specified)
Command ===>

F1=Help F2=Split F3=Exit F7=Backward F8=Forward F9=Swap

F10=Actions F12=Cancel
4B TCP00044 041/027
Проверить созданные записи можно утилитой Dslist (4):
Menu Options View Utilities Compilers Help

──────────────────────────────────────────────────────────────────────────────

DSLIST - Data Sets Matching CL01119 Row 1 of 6
Command - Enter "/" to select action Message Volume

-------------------------------------------------------------------------------

CL01119.HFS DMTP11

CL01119.ISPF.ISPPROF DMTP12

CL01119.SPFLOG1.LIST DMTP10

CL01119.TEST.C DMTP12

CL01119.TEST.CNTL DMTP06

CL01119.TEST.LOAD DMTP05

***************************** End of Data Set list ****************************
Command ===> Scroll ===> PAGE

F1=Help F2=Split F3=Exit F5=Rfind F7=Up F8=Down F9=Swap

F10=Left F11=Right F12=Cancel
4B TCP00044 041/015

Из листинга следует, что первые три записи были созданы заранее.


2. Лабораторная работа № 2
Цель второй работы — написать, собрать и запустить тестовую программу на языке C. Её исходники и исполняемый файл будут размещаться в уже созданных наборах данных.

Текст программы нужно поместить в раздел V1 набора CL0XXXX.TEST.C. Набрать его можно в редакторе oedit(2) ISPF:


File Edit Edit_Settings Menu Utilities Compilers Test Help

───────────────────────────────────────────────────────────────────────────────

EDIT CL01119.TEST.C(V1) - 01.01 Columns 00001 00072

****** ***************************** Top of Data ******************************

==MSG> -Warning- The UNDO command is not available until you change

==MSG> your edit profile using the command RECOVERY ON.

000100 include

000200 int main(int argc,char**argv)

000300 {

000400 printf("Ya mainframeko");

000500 return 0;

000600 }


****** **************************** Bottom of Data ****************************

Command ===> Scroll ===> PAGE

F1=Help F2=Split F3=Exit F5=Rfind F6=Rchange F7=Up

F8=Down F9=Swap F10=Left F11=Right F12=Cancel

. . . . . . . . . . . . . . . . . . . . . . . . . . .

Menu Utilities Compil ┌───────────────────────┐

Option ===> │ Command is not active │
4B TCP00045 038/015
Сохранение происходит автоматически при выходе по нажатию F3.

Для сборки необходимо написать сценарий и разместить его в разделе CL0XXXX.TEST.CNTL(V1):


File Edit Edit_Settings Menu Utilities Compilers Test Help

───────────────────────────────────────────────────────────────────────────────

EDIT CL01119.TEST.CNTL(V1) - 01.00 Columns 00001 00072

****** ***************************** Top of Data ******************************

==MSG> -Warning- The UNDO command is not available until you change

==MSG> your edit profile using the command RECOVERY ON.

000100 //CL01119C JOB (),CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),NOTIFY=&SYSUID,

000200 // TIME=1440

000300 //PROCLIB JCLLIB ORDER=CBC.SCCNPRC

000400 //CCL EXEC PROC=EDCCLG,

000500 // INFILE='CL01119.TEST.C(V1)',

000600 // OUTFILE='CL01119.TEST.LOAD(V1),DISP=SHR'

****** **************************** Bottom of Data ****************************


Command ===> Scroll ===> PAGE

F1=Help F2=Split F3=Exit F5=Rfind F6=Rchange F7=Up

F8=Down F9=Swap F10=Left F11=Right F12=Cancel

. . . . . . . . . . . . . . . . . . . . . . . . . . .

Menu Utilities Compil ┌───────────────────────┐

Option ===> │ Command is not active │


4B TCP00045 013/009

После сохранения сценария осталось только добавить его в очередь заданий z/OS. Это производится командой SUB (submit):


IKJ56250I JOB CL01119C(JOB02095) SUBMITTED

***


13.38.58 JOB02095 $HASP165 CL01119C ENDED AT TSTMVS01 MAXCC=12 CN(INTERNAL)

***
Как видно, сборка завершилась неудачей (значение MAXCC не равно 0). Лог можно посмотреть утилитой Outlist (развёртка нескольких экранов):


Menu Utilities Compilers Help

───────────────────────────────────────────────────────────────────────────────

BROWSE CL01119.SPF101.OUTLIST Line 00000000 Col 001 080

********************************* Top of Data **********************************

1 J E S 2 J O B L O G -- S Y S T E M M V S T -- N O D E

0

13.34.02 JOB02093 ---- FRIDAY, 17 OCT 2008 ----



13.34.02 JOB02093 IRR010I USERID CL01119 IS ASSIGNED TO THIS JOB.

13.34.03 JOB02093 ICH70001I CL01119 LAST ACCESS AT 13:33:48 ON FRIDAY, OCTOBE

13.34.03 JOB02093 $HASP373 CL01119C STARTED - INIT 1 - CLASS A - SYS MVST

13.34.04 JOB02093 - --TIMINGS (MINS.)-

13.34.04 JOB02093 -JOBNAME STEPNAME PROCSTEP RC EXCP CPU SRB CLOC

13.34.04 JOB02093 -CL01119C CCL COMPILE 12 3923 .00 .00 .0

13.34.04 JOB02093 -CL01119C CCL LKED FLUSH 0 .00 .00 .0

13.34.04 JOB02093 -CL01119C CCL GO FLUSH 0 .00 .00 .0

13.34.04 JOB02093 -CL01119C ENDED. NAME- TOTAL CPU TIME=

13.34.04 JOB02093 $HASP395 CL01119C ENDED

0------ JES2 JOB STATISTICS ------

- 17 OCT 2008 JOB EXECUTION DATE

- 6 CARDS READ

- 250 SYSOUT PRINT RECORDS

- 0 SYSOUT PUNCH RECORDS

- 16 SYSOUT SPOOL KBYTES

- 0.02 MINUTES EXECUTION TIME

1 //CL01119C JOB (),CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),NOTIFY=&SYSUID,

// TIME=1440

IEFC653I SUBSTITUTION JCL - (),CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),NOTIF

2 //PROCLIB JCLLIB ORDER=CBC.SCCNPRC

3 //CCL EXEC PROC=EDCCLG,

// INFILE='CL01119.TEST.C(V1)',

// OUTFILE='CL01119.TEST.LOAD(V1),DISP=SHR'

XX********************************************************************

XX* LICENSED MATERIALS - PROPERTY OF IBM. *

XX* 5694-A01 *

XX* COPYRIGHT IBM CORP. 1988, 2005 *

XX* *

XX********************************************************************



XX* *

XX* COMPILE, LINK EDIT AND RUN A C PROGRAM *

XX* *

XX* NOTE: - CANNOT BE USED WITH THE GOFF, LONGNAME, RENT OR XPLINK *



XX* COMPILE OPTIONS *

XX* - THE RUNTIME OPTION TRAP(OFF) SHOULD NEVER BE SPECIFIED *

XX* ON THE CRUN VARIABLE. THE COMPILER IS NOT SUPPORTED *

XX* WHEN THIS RUNTIME OPTION IS USED. *

XX* *

XX* z/OS XL C/C++ *



XX* *

XX********************************************************************

XX*

4 XXEDCCLG PROC INFILE=, < INPUT ... REQUIRED



XX CREGSIZ='148M', < COMPILER REGION SIZE

XX CRUN=, < COMPILER RUNTIME OPTIONS

XX CPARM=, < COMPILER OPTIONS

XX CPARM2=, < COMPILER OPTIONS

XX CPARM3=, < COMPILER OPTIONS

XX SYSLBLK='3200', < BLOCKSIZE FOR &&LOADSET

XX LIBPRFX='CEE', < PREFIX FOR LIBRARY DSN

XX LNGPRFX='CBC', < PREFIX FOR LANGUAGE DSN

XX CLANG='EDCMSGE', < NOT USED IN THIS RELEASE. KEPT FOR COMPATIBILIT

XX LREGSIZ='1024K', < LINK EDIT REGION SIZE

XX LPARM='AMODE=31,MAP', < LINK EDIT OPTIONS

XX GREGSIZ='2048K', < EXECUTION REGION SIZE

XX GPARM=, < EXECUTION OPTIONS

XX DCB80='(RECFM=FB,LRECL=80,BLKSIZE=3200)',

XX DCB3200='(RECFM=FB,LRECL=3200,BLKSIZE=12800)',

XX OUTFILE='&&GSET(GO),DISP=(NEW,PASS),SPACE=(TRK,(7,7,1)),UNIT=SYSALL

XX A',

XX TUNIT='SYSALLDA', < UNIT FOR TEMPORARY FILES



XX TSPACE='(32000,(30,30))' < SIZE FOR TEMPORARY FILES

XX*


XX*-------------------------------------------------------------------

XX* COMPILE STEP:

XX*-------------------------------------------------------------------

5 XXCOMPILE EXEC PGM=CCNDRVR,REGION=&CREGSIZ,

XX PARM=('&CRUN/&CPARM &CPARM2 &CPARM3')

IEFC653I SUBSTITUTION JCL - PGM=CCNDRVR,REGION=148M,PARM=('/ ')

6 XXSTEPLIB DD DSNAME=&LIBPRFX..SCEERUN2,DISP=SHR

IEFC653I SUBSTITUTION JCL - DSNAME=CEE.SCEERUN2,DISP=SHR

7 XX DD DSNAME=&LNGPRFX..SCCNCMP,DISP=SHR

IEFC653I SUBSTITUTION JCL - DSNAME=CBC.SCCNCMP,DISP=SHR

8 XX DD DSNAME=&LIBPRFX..SCEERUN,DISP=SHR

IEFC653I SUBSTITUTION JCL - DSNAME=CEE.SCEERUN,DISP=SHR

9 XXSYSMSGS DD DUMMY,DSN=&LNGPRFX..SCBC3MSG(&CLANG),DISP=SHR

IEFC653I SUBSTITUTION JCL - DUMMY,DSN=CBC.SCBC3MSG(EDCMSGE),DISP=SHR

10 XXSYSIN DD DSNAME=&INFILE,DISP=SHR

IEFC653I SUBSTITUTION JCL - DSNAME=CL01119.TEST.C(V1),DISP=SHR

11 XXSYSLIB DD DSNAME=&LIBPRFX..SCEEH.H,DISP=SHR

IEFC653I SUBSTITUTION JCL - DSNAME=CEE.SCEEH.H,DISP=SHR

12 XX DD DSNAME=&LIBPRFX..SCEEH.SYS.H,DISP=SHR

IEFC653I SUBSTITUTION JCL - DSNAME=CEE.SCEEH.SYS.H,DISP=SHR

13 XXSYSLIN DD DSNAME=&&LOADSET,UNIT=&TUNIT.,

XX DISP=(MOD,PASS),SPACE=(CYL,(3,3)),

XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=&SYSLBLK)

IEFC653I SUBSTITUTION JCL - DSNAME=&&LOADSET,UNIT=SYSALLDA,DISP=(MOD,P

LRECL=80,BLKSIZE=3200)

14 XXSYSPRINT DD SYSOUT=*

15 XXSYSOUT DD SYSOUT=*

16 XXSYSCPRT DD SYSOUT=*

17 XXSYSUT1 DD UNIT=&TUNIT.,SPACE=&TSPACE.,DCB=&DCB80

IEFC653I SUBSTITUTION JCL - UNIT=SYSALLDA,SPACE=(32000,(30,30)),DCB=(R

18 XXSYSUT5 DD UNIT=&TUNIT.,SPACE=&TSPACE.,DCB=&DCB3200

IEFC653I SUBSTITUTION JCL - UNIT=SYSALLDA,SPACE=(32000,(30,30)),DCB=(R

19 XXSYSUT6 DD UNIT=&TUNIT.,SPACE=&TSPACE.,DCB=&DCB3200

IEFC653I SUBSTITUTION JCL - UNIT=SYSALLDA,SPACE=(32000,(30,30)),DCB=(R

20 XXSYSUT7 DD UNIT=&TUNIT.,SPACE=&TSPACE.,DCB=&DCB3200

IEFC653I SUBSTITUTION JCL - UNIT=SYSALLDA,SPACE=(32000,(30,30)),DCB=(R

21 XXSYSUT8 DD UNIT=&TUNIT.,SPACE=&TSPACE.,DCB=&DCB3200

IEFC653I SUBSTITUTION JCL - UNIT=SYSALLDA,SPACE=(32000,(30,30)),DCB=(R

22 XXSYSUT9 DD UNIT=&TUNIT.,SPACE=&TSPACE.,

XX DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)

IEFC653I SUBSTITUTION JCL - UNIT=SYSALLDA,SPACE=(32000,(30,30)),DCB=(R

23 XXSYSUT10 DD SYSOUT=*

24 XXSYSUT14 DD UNIT=&TUNIT.,SPACE=&TSPACE.,

...


IGD105I SYS08291.T133403.RA000.CL01119C.R0103953 DELETED, DDNAME=SYSUT1

IGD105I SYS08291.T133403.RA000.CL01119C.R0103954 DELETED, DDNAME=SYSUT5

IGD105I SYS08291.T133403.RA000.CL01119C.R0103955 DELETED, DDNAME=SYSUT6

IGD105I SYS08291.T133403.RA000.CL01119C.R0103956 DELETED, DDNAME=SYSUT7

IGD105I SYS08291.T133403.RA000.CL01119C.R0103957 DELETED, DDNAME=SYSUT8

IGD105I SYS08291.T133403.RA000.CL01119C.R0103958 DELETED, DDNAME=SYSUT9

IEF285I CL01119.CL01119C.JOB02093.D0000104.? SYSOUT

IGD105I SYS08291.T133403.RA000.CL01119C.R0103959 DELETED, DDNAME=SYSUT14

IGD105I SYS08291.T133403.RA000.CL01119C.R0103960 DELETED, DDNAME=SYSUT16

IGD105I SYS08291.T133403.RA000.CL01119C.R0103961 DELETED, DDNAME=SYSUT17

IEF373I STEP/COMPILE /START 2008291.1334

IEF374I STEP/COMPILE /STOP 2008291.1334 CPU 0MIN 00.33SEC SRB 0MIN 00.00

IEF202I CL01119C LKED CCL - STEP WAS NOT RUN BECAUSE OF CONDITION CODES

IEF272I CL01119C LKED CCL - STEP WAS NOT EXECUTED.

IEF373I STEP/LKED /START 2008291.1334

IEF374I STEP/LKED /STOP 2008291.1334 CPU 0MIN 00.00SEC SRB 0MIN 00.00

IEF202I CL01119C GO CCL - STEP WAS NOT RUN BECAUSE OF CONDITION CODES

IEF272I CL01119C GO CCL - STEP WAS NOT EXECUTED.

IEF373I STEP/GO /START 2008291.1334

IEF374I STEP/GO /STOP 2008291.1334 CPU 0MIN 00.00SEC SRB 0MIN 00.00

IEF237I 0225 ALLOCATED TO SYS00002

IEF285I SYS08291.T133404.RA000.CL01119C.R0103965 KEPT

IEF285I VOL SER NOS= DMTOS4.

IGD105I SYS08291.T133403.RA000.CL01119C.LOADSET.H01 DELETED, DDNAME=SYSLIN

IEF375I JOB/CL01119C/START 2008291.1334

IEF376I JOB/CL01119C/STOP 2008291.1334 CPU 0MIN 00.33SEC SRB 0MIN 00.00

ERROR CCN3166 CL01119.TEST.C(V1):1 Definition of function include requires

ERROR CCN3276 CL01119.TEST.C(V1):1 Syntax error: possible missing '{'?

CCN0793(I) Compilation failed for file //'CL01119.TEST.C(V1)'. Object file not

******************************** Bottom of Data ********************************


Command ===> Scroll ===> PAGE

F1=Help F2=Split F3=Exit F5=Rfind F7=Up F8=Down F9=Swap

F10=Left F11=Right F12=Cancel

4B TCP00045 041/015


Была допущена ошибка в исходниках, пропущен «#» перед include. После исправления и добавления обновлённого задания в очередь оно выполняется успешно и можно запускать исполняемый модуль. Вот его вывод:

Command ===> tso call 'cl01119.test.load(v1)' Scroll ===> PAGE

Ya mainframeko

***
Лабораторная работа № 3


В рамках z/OS можно получить доступ к z/OS UNIX, которая представляет собой привычную Unix-подобную среду. Однако работа в этой подсистеме осуществляется внутри адресного пространства MVS.

Для входа в оболочку USS необходимо на экране приветствия ввести команду omvs. Команды локального терминала передаются оболочке, которая передаёт их оболочке Unix. Вот некоторые сведения о подсистеме Unix, которые удалось выяснить:


CL01119:/: >uname -a

OS/390 TESTMVS 19.00 03 2096

CL01119:/usr/bin: >date

Fri Oct 17 14:53:34 CDT 2008


CL01119:/u/cl01119: >c89 ./test.c

CEE3608I The following messages pertain to the invocation command run-time optio

ns.

CEE3633W The total length of the combined ENVAR strings exceeded 250 characters.



CCN0008(S) Source file //DD:SYSIN cannot be opened.

CCN0703(I) An error was encountered in a call to fopen() while processing //DD:S

YSIN.

fopen(): EDC5037I The specified ddname was not found. (errno2=0xC00B05B1)



FSUM3065 The COMPILE step ended with return code 16.

FSUM3017 Could not compile ./test.c. Correct the errors and try again.

CL01119:/u/cl01119: >

===>


RUNNING

ESC=¢ 1=Help 2=SubCmd 3=HlpRetrn 4=Top 5=Bottom 6=TSO



7=BackScr 8=Scroll 9=NextSess 10=Refresh 11=FwdRetr 12=Retrieve
Работа с подсистемой на базовом уровне практически ничем не отличается от работы с любой оболочкой Unix, с немногими отличиями в существенно ограниченных правах и периодически «всплывающими» особенностями управления процессами встроенного ядра. Так, при попытке скомпилировать программу на листинге выше появилось сообщение об ошибке системного вызова fopen().
Заключение
Рассмотренные примеры демонстрируют основы взаимодействия с z/OS на более низком, при подключении по протоколу IBM 3270 и работе в среде утилит и редактора z/OS, и более высоком, при использовании оболочки подсистемы z/OS UNIX, уровнях. Уделено внимание особой логической структуре хранения данных с помощью наборов данных, и планированию процессов.
Каталог: ld
ld -> Перечень работ, входящих в плату за содержание жилья содержание общего имущества жилого дома
ld -> Водогрейка на газу для квартиры
ld -> Питание для спортсменов
ld -> Проблема независимости абхазии: история и политика cпециальность 07. 00. 03. Всеобщая история
ld -> Российская академия медицинских наук
ld -> Электрофизиологическая диагностика и интервенционное лечение аритмий после операций на открытом сердце сердечно-сосудистая хирургия 14. 01. 26


Поделитесь с Вашими друзьями:




База данных защищена авторским правом ©vossta.ru 2023
обратиться к администрации

    Главная страница