Как изменить свойства ps или pds

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

//TXXXXXSP JOB (MOD),'PRAMOD',CLASS=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 *
/*
//


jcl
person Pramod    schedule 26.03.2012    source источник
comment
Может помочь, если вы также сообщите нам номер ошибки ввода-вывода. Не могу не заметить, что ваш выходной DSN заканчивается на GDG. Вы пытаетесь изменить член GDG? Если да, то нужно указать номер поколения (относительный или абсолютный).   -  person NealB    schedule 26.03.2012
comment
Нет нет. этот dsn — это файл ps, в котором я написал jcl для создания gdg. Я не делаю ничего, связанного с gdg. И я получаю сообщение об ошибке «Ошибка ввода-вывода» при чтении, когда я пытался просмотреть, просмотреть, отредактировать файл, используя параметр 3.4 в ispf.   -  person Pramod    schedule 27.03.2012


Ответы (2)


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

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

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

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

Например. для ПС

//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             

Например. для ПДС

//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

person AOne    schedule 27.03.2012
comment
Большое спасибо за вашу ценную информацию. То, что вы сказали в начале, совершенно верно. Я попытался изменить только что созданный ps без каких-либо данных, и мне это удалось. Но всякий раз, когда я изменяю ps, который уже содержит некоторые данные. Файл поврежден - person Pramod; 27.03.2012

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

person wolfen244    schedule 20.07.2017