Как изменить свойства ps или pds - PullRequest
1 голос
/ 26 марта 2012

Я использовал приведенный ниже jcl, чтобы изменить существующий пс. Я был в состоянии изменить параметры. но я получаю ошибку ввода / вывода.

// TXXXXXSP JOB (MOD), 'PRAMOD', КЛАСС = A, MSGCLASS = X, MSGLEVEL = (1,1),

// NOTIFY = & SYSUID
// FIXPDS EXEC PGM = IEBGENER
// SYSPRINT DD SYSOUT = *
// SYSIN DD DUMMY
// SYSUT2 DD DSN = XXXXXX.CREATE.GDG,
// DISP = MOD, SPACE = (TRK, (10,10,0), RLSE), UNIT = SYSDA,
// DCB = (RECFM = FB, LRECL = 80, BLKSIZE = 800)
// SYSUT1 DD *
/ ** * 1013 //

Ответы [ 2 ]

8 голосов
/ 27 марта 2012

Похоже, что вы пытаетесь изменить атрибуты набора данных, указав DISP = MOD. Документированная цель MOD - указать, что набор данных существует и записи должны быть добавлены в его конец, или должен быть создан новый набор данных.

Однако его можно использовать для изменения атрибутов набора данных. Я бы посоветовал вам соблюдать осторожность, поскольку вы можете легко испортить свой набор данных. Например, может быть разумно изменить DCB для существующего PS, но если эти данные PS уже содержат данные, вы можете их испортить. Я не пробовал это, но я считаю, что вы можете увеличить пространство, если вы не пройдете 16 экстентов. Я полагаю, что вы даже можете снова изменить PS на PDS, не ожидайте, что сможете снова увидеть какие-либо данные.

Я думаю, что главное в том, что это не рекомендуется. Вместо того, чтобы рисковать, возможно, используйте свою работу, чтобы скопировать набор данных с помощью LIKE и переопределить то, что вы хотите изменить. Затем, когда вы счастливы, удалите старый набор данных и переименуйте новый в старое имя.

Следующие примеры были сделаны из памяти, поэтому с ними могут быть незначительные синтаксические ошибки. Вам нужно указать пробел, но удалить любой другой параметр, который вам не нужно «исправлять».

Например. для PS

//FIXPS    EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*                            
//SYSUT1   DD DSN=XXXXXX.CREATE.GDG,DISP=SHR     
//SYSUT2   DD DSN=XXXXXX.CREATE.GDG.NEW, 
//            DISP=(NEW,CATLG,DELETE), 
//            SPACE=(TRK,(10,10,0),RLSE),UNIT=SYSDA,
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),           
//            LIKE=XXXXXX.CREATE.GDG             

Например. для PDS

//FIXPDS    EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*                            
//SYSUT1   DD DSN=XXXXXX.CREATE.GDG,DISP=SHR     
//SYSUT2   DD DSN=XXXXXX.CREATE.GDG.NEW, 
//            DISP=(NEW,CATLG,DELETE), 
//            SPACE=(TRK,(10,10,0),RLSE),UNIT=SYSDA,
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),           
//            LIKE=XXXXXX.CREATE.GDG             
//SYSUT3   DD UNIT=SYSDA,SPACE=(TRK,(30,30),RLSE) 
//SYSUT4   DD UNIT=SYSDA,SPACE=(TRK,(30,30),RLSE) 
//SYSIN    DD *                                   
 C I=SYSUT1,O=SYSUT2                              
/*                                        

Для получения дополнительной информации см. Параметр DISP в главе 12 справочного руководства JCL http://publibz.boulder.ibm.com/epubs/pdf/iea2b6b0.pdf

0 голосов
/ 20 июля 2017

«Не стоит расстраивать вуки». Я настоятельно рекомендую, чтобы, если вы действительно хотите изменить атрибуты PDS, затем фактически выделить X-версию рассматриваемой библиотеки, затем скопировать в нее все элементы, а затем выполнить сравнение, чтобы убедиться, что биты или байты не были повреждены , затем удалите старую библиотеку и переименуйте новую в старое имя.

...