Уважаемые системщики, под MVS и OS/390 прогоняем один и тот же пакет заданий, без изменений. Но в результате получаем:
Под MVS:
------------------------------------------------------------------------------- SDSF JOB DATA SET DISPLAY - JOB K0103055 (JOB03324) LINE 1-5 (5) NP DDNAME STEPNAME PROCSTEP DSID OWNER C DEST REC-CNT PAGE JESMSGLG JES2 2 K010305 X LOCAL 21 JESJCL JES2 3 K010305 X LOCAL 19 JESYSMSG JES2 4 K010305 X LOCAL 20 SYSPRINT J0102305 ST10 101 K010305 X LOCAL 20 PRINT J0102305 ST10 102 K010305 X LOCAL 1
на sysprint:
********************************* TOP OF DATA *********************************
IBM537I 'ONCODE'=8097 DATA EXCEPTION IN STATEMENT 187 AT OFFSET +00035E IN PROCEDURE WITH ENTRY K0102A0
************************************************ * ПРОТОКОЛ РАБОТЫ МОДУЛЯ K0102A0
Под OS/390:
------------------------------------------------------------------------------- SDSF JOB DATA SET DISPLAY - JOB K0103055 (JOB03324) LINE 1-5 (5) NP DDNAME STEPNAME PROCSTEP DSID OWNER C DEST REC-CNT PAGE JESMSGLG JES2 2 K010305 X LOCAL 21 JESJCL JES2 3 K010305 X LOCAL 19 JESYSMSG JES2 4 K010305 X LOCAL 20 SYSPRINT J0102305 ST10 101 K010305 X LOCAL 17 PRINT J0102305 ST10 102 K010305 X LOCAL 1
на sysprint:
********************************* TOP OF DATA *********************************
************************************************ * ПРОТОКОЛ РАБОТЫ МОДУЛЯ K0102A0
Вопрос: куда пропали 2 строки сообщений:
IBM537I 'ONCODE'=8097 DATA EXCEPTION IN STATEMENT 187 AT OFFSET +00035E IN PROCEDURE WITH ENTRY K0102A0
Мне кажется, что JES2 здесь абсолютно не причем. Сообщение IBM537I 'ONCODE'=8097 DATA EXCEPTION идет от среды исполнения PL/I. Скорее всего у вас разные версии среды. Если это так, то в общем случае ПЛ- программы требуют перекомпиляцию. Или тащить среду исполнения в каждую новую версию MVS/OS3890/zOS. Последнее проверено и работает для старого советского PL/I даже в последних версиях z/OS.
AKonev, спасибо за ответ. Но вопрос не по PL, а по sysprint. С ошибкой в PL все понятно. И ситуация создана специально. Сообщение об ошибке не выдается в SYSPRINT, почему? хотя в обоих случаях выполняется один и тот же пакет (версия PL один и тот же и программа перекомпилирована в каждой системе на момент запуска задания). Задача в обеих системах завершается с кодом 100, но под MVS сообщение с указанием номера оператора идет в SYSPRINT, а под OS/390 это сообщение где-то теряется.
Сообщение отредактировал mentor - Пт, 18.05.2012, 21:35
Хорошо бы увидеть полный вывод задания. А то может статься, что у вас какое-то DD отправляется в выходной класс, который в MVS и в OS настроен по-разному.
mentor, чота мне кажется, что, поскольку сообщение IBM537I идет от run-time среды, а конкретно - от LE, то дело не в JES, а в обработчике исключительных ситуаций. то есть в разных системах он настроен по разному. да и сама среда LE тоже разная.
akost, вполне возможно, что Вы правы. У меня тоже было подозрение на LE, но пока не изучила, с чем её "едят". :-)) LE в MVS у нас не установлен. А под OS/390 да. И где искать настройки?
Сообщение отредактировал mentor - Вс, 20.05.2012, 12:55
mentor, PL/I до версии 2.3 имел свою собственную среду исполнения и если ваша версия PL более старая, то настройки LE не имеет никакого отношения к исполняемому модулю. Далее его версия снова началась с 1 и он стал использовать LE и называться Enterprise. Какой все-таки у вас PL/I? Модуль транслировался в каждой ОС или нет?
исходник откомпилирован в каждой системе соответственно.
Одним и тем же компилятором? PLI v2r3 в обоих случаях? PLI v2r3 pre-LE, так что LE тут не при чем.
Quote
AKonev: Мне кажется, что JES2 здесь абсолютно не причем.
и мне так кажется... Эти подозрения можно проверить, указав SYSPRINT DD DSN=... Ситуация с "потерей" последнего буфера ввода-вывода QSAM при динамической буферизации в случае ABEND выглядит какой-то знакомой, если я ничего не напутал, ее обходили с помощью явного CLOSE SYSPRINT в ON
Полный листинг все же выложите...
Сообщение отредактировал Gregory - Пн, 21.05.2012, 14:50
Ситуация с "потерей" последнего буфера ввода-вывода QSAM при динамической буферизации в случае ABEND выглядит какой-то знакомой, если я ничего не напутал, ее обходили с помощью явного CLOSE SYSPRINT в ON
z/OS DFSMS Using Data Sets пишет, что это верно для ленты, а когда запись идет на диск то последний буфер сбрасывается, хотя кто теперь знает как это было раньше. Так что в любом случае вывод в файл стоит попробовать.
z/OS DFSMS Using Data Sets пишет, что это верно для ленты, а когда запись идет на диск то последний буфер сбрасывается, хотя кто теперь знает как это было раньше
ситуация, о которой я выше написал, представляла собой ошибку, а не feature. Ну конечно, содержимое буфера должно выводиться как при нормальном завершении, так и при аварийном. И насколько я смог припомнить, там ситуация возникала при работе PL/I программы под управлением IMS
Gregory, полный листинг от MVS выкладываю: 1 J E S 2 J O B L O G -- S Y S T E M S Y 1 -- N O D E Z 0 A 0 0 10.06.50 JOB03324 IRR010I USERID K010305 IS ASSIGNED TO THIS JOB. 10.06.51 JOB03324 ICH70001I K010305 LAST ACCESS AT 09:48:20 ON WEDNESDAY, MAY 15, 1912 10.06.51 JOB03324 $HASP373 K0103055 STARTED - INIT 1 - CLASS A - SYS SY1 10.06.51 JOB03324 IEF403I K0103055 - STARTED - TIME=10.06.51 10.06.51 JOB03324 @13 ENTER : 1, OR XXXXX-YYYYY, OR END 10.07.05 JOB03324 R 13,1 10.07.05 JOB03324 - --TIMINGS (MINS.)-- 10.07.05 JOB03324 -JOBNAME STEPNAME PGMNAME RC EXCP TCB SRB CLOCK 10.07.05 JOB03324 -J0102305 ST10 K0102A02 100 45 .00 .00 .2 10.07.05 JOB03324 IEF404I K0103055 - ENDED - TIME=10.07.05 10.07.05 JOB03324 -K0103055: TOTAL CPU TIME= .00 TOTAL ELAPSED TIME= .2 10.07.05 JOB03324 $HASP395 K0103055 ENDED 0------ JES2 JOB STATISTICS ------ - 15 MAY 2012 JOB EXECUTION DATE - 4 CARDS READ - 81 SYSOUT PRINT RECORDS - 0 SYSOUT PUNCH RECORDS - 5 SYSOUT SPOOL KBYTES - 0.22 MINUTES EXECUTION TIME 1 //K0103055 JOB KO030120,'OKR XXXXXXX ', *JOB03324 // NOTIFY=K010305, // MSGLEVEL=(1,1) 2 //J0102305 EXEC P0102305,A=X 3 XXP0102305 PROC A=A,PREF='K020000.', XX LIB='K020000.GVC.PGM' 4 XXST10 EXEC PGM=K0102A02,REGION=2048K XX* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * XX* ПEЧATЬ ФAЙЛA F010244P XX* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 XXSTEPLIB DD DSN=&LIB,DISP=SHR IEFC653I SUBSTITUTION JCL - DSN=K020000.GVC.PGM,DISP=SHR 6 XXSYSPRINT DD SYSOUT=&A IEFC653I SUBSTITUTION JCL - SYSOUT=X 7 XXF010244 DD DSN=&PREF.F010244P,DISP=SHR IEFC653I SUBSTITUTION JCL - DSN=K020000.F010244P,DISP=SHR 8 XXPRINT DD SYSOUT=&A IEFC653I SUBSTITUTION JCL - SYSOUT=X 9 XXDUMMY DD DUMMY STMT NO. MESSAGE 2 IEFC001I PROCEDURE P0102305 WAS EXPANDED USING SYSTEM LIBRARY K020000.GVC.PROC ICH70001I K010305 LAST ACCESS AT 09:48:20 ON WEDNESDAY, MAY 15, 1912 IEF236I ALLOC. FOR K0103055 ST10 J0102305 IEF237I 0413 ALLOCATED TO STEPLIB IEF237I JES2 ALLOCATED TO SYSPRINT IEF237I 041F ALLOCATED TO F010244 IEF237I JES2 ALLOCATED TO PRINT IEF237I DMY ALLOCATED TO DUMMY IEF142I K0103055 ST10 J0102305 - STEP WAS EXECUTED - COND CODE 0100 IEF285I K020000.GVC.PGM KEPT IEF285I VOL SER NOS= GVCLIB. IEF285I K010305.K0103055.JOB03324.D0000101.? SYSOUT IEF285I K020000.F010244P KEPT IEF285I VOL SER NOS= GVC16B. IEF285I K010305.K0103055.JOB03324.D0000102.? SYSOUT IEF373I STEP /ST10 / START 12136.1006 IEF374I STEP /ST10 / STOP 12136.1007 CPU 0MIN 00.02SEC SRB 0MIN 00.00SEC VIRT 2048K SYS 204K EXT 4K SYS 9900K IEF375I JOB /K0103055/ START 12136.1006 IEF376I JOB /K0103055/ STOP 12136.1007 CPU 0MIN 00.02SEC SRB 0MIN 00.00SEC 1 IBM537I 'ONCODE'=8097 DATA EXCEPTION IN STATEMENT 187 AT OFFSET +00035E IN PROCEDURE WITH ENTRY K0102A0
********************************************************** * ПPOTOKOЛ PAБOTЫ MOДУЛЯ K0102A0 * * ПEЧATЬ PEECTPA * ********************************************************** * * * A B T O P : XXXXXXXXXXXXXXXXXXX * * OTДEЛ PAЗPAБOTЧИK : O K P * * ДATA И BPEMЯ KOMПИЛЯЦИИ : 27 DEC 99 19.15.52 * * ДATA И BPEMЯ BЫПOЛHEHИЯ : 15 MAJ 12 10.06.51 * ********************************************************** * П E Ч A T Ь C Ч E T Ч И K O B * * * * CЧИTAHO ЗAПИCEЙ B F010244 : 2 * * KOЛИЧECTBO ЛИCTOB : 0 * **********************************************************
********************************************************** * ПPOTOKOЛ PAБOTЫ MOДУЛЯ K0102A0 * * ПEЧATЬ PEECTPA * ********************************************************** * * * A B T O P : XXXXXXXXXXXXXX * * OTДEЛ PAЗPAБOTЧИK : O K P * * ДATA И BPEMЯ KOMПИЛЯЦИИ : 23 MAY 12 13.17.20 * * ДATA И BPEMЯ BЫПOЛHEHИЯ : 23 MAJ 12 13.18.22 * ********************************************************** * П E Ч A T Ь C Ч E T Ч И K O B * * * * CЧИTAHO ЗAПИCEЙ B F010244 : 2 * * KOЛИЧECTBO ЛИCTOB : 0 * **********************************************************
Сообщение отредактировал mentor - Ср, 23.05.2012, 14:02
то есть, если я правильно понял, cообщения выводятся в //SYSOUT DD ?
Quote
Run-time messages are directed to a common Language Environment message file. You can use the MSGFILE run-time option to specify the ddname of this file. If a message file ddname is not declared, messages are written to the IBM-supplied default ddname SYSOUT.
значит, run-time у Вас все же LE, а не v2r3, видимо, нужно PLI.V2R3M0.SIBMBASE в STEPLIB добавить?
Quote
Akonev: Или тащить среду исполнения в каждую новую версию MVS/OS3890/zOS.