Могу ли я прочитать параметры распределения набора данных в zos с помощью Rexx?

Я хочу создать некоторый код Rexx, который позволяет мне распределять новые наборы данных в любом формате, таком как PDS, Sequential и т. д., путем чтения информации о наборе данных существующего набора данных, а затем применения этих параметров к новому распределению.

Например, когда я ввожу имя набора данных в 3.2 и нажимаю Enter, мне предоставляется следующая информация:

Data Set Name . . . . : HLQ.ETE.CNTL                                

General Data                          Current Allocation               
 Management class . . : MC000101       Allocated blocks  . : 6         
 Storage class  . . . : SC002020       Allocated extents . : 1         
  Volume serial . . . : VOL007         Maximum dir. blocks : 11        
  Device type . . . . : 3390                                           
 Data class . . . . . : None                                       
  Organization  . . . : PO            Current Utilization              
  Record format . . . : FB             Used blocks . . . . : 5         
  Record length . . . : 80             Used extents  . . . : 1         
  Block size  . . . . : 27920          Used dir. blocks  . : 6         
  1st extent blocks . : 6              Number of members . : 35        
  Secondary blocks  . : 2                                              
  Data set name type  : PDS           Dates                            
                                       Creation date . . . : 2014/04/02
                                       Referenced date . . : 2014/07/01
                                       Expiration date . . : ***None*** 

Итак, в моем Rexx я хотел бы сделать две вещи:

  1. Чтение существующих параметров распределения наборов данных, подобных показанным выше.

  2. Выделите новый набор данных, используя считанные параметры

Я бы запустил этот Rexx как часть пакетного задания JCL.

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


person deucalion0    schedule 02.07.2014    source источник
comment
Вопрос Кевина серьезный. Программа rexx, запускаемая в пакетном режиме для выполнения того, что уже можно сделать с помощью JCL, напрашивается на неприятности. JCL уже делает это правильно, вам нужно написать и заставить вашу программу работать, чтобы она делала то, что уже существует. Какую выгоду вы видите в этом?   -  person Bill Woodger    schedule 14.07.2014


Ответы (3)


При работе с ISPF команда SPF DSINFO проще в использовании, так как он настраивает переменные за вас.

Если вы используете TSO, ответ Кенни на ListDsi является правильным.

Для ISPF DSINFO вы должны сделать (где переменная содержит имя dsname):

Address ispexec 'DSINFO DATASET('dsname')'

say 'dsn=' dsname
say 'volume=' ZDSVOL
say 'recfm=' ZDSRF

.....

person Bruce Martin    schedule 02.07.2014
comment
Это ответ, который я выбрал, потому что он позволил мне успешно реализовать это в Rexx, как я и хотел, спасибо! - person deucalion0; 03.07.2014

Вам нужно посмотреть функцию TSO LISTDSI. Это даст вам все, что вам нужно. http://pic.dhe.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.ikjb800/listdsi.htm

person Community    schedule 02.07.2014

Однако, в зависимости от того, что вы делаете, я бы также указал вам на параметр DD LIKE (для наборов данных, управляемых с помощью SMS) или параметр DCB= для наборов данных, управляемых без SMS. См. http://pic.dhe.ibm.com/infocenter/zos/v1r11/topic/com.ibm.zos.r11.ieab600/xddlike.htm и http://pic.dhe.ibm.com/infocenter/zos/v1r11/topic/com.ibm.zos.r11.ieab600/iea2b690169.htm#dcbdsn для документации.

Вместо того, чтобы писать свой собственный REXX, почему бы не воспользоваться встроенными инструментами? Тем более, что вы говорите, что все равно будете запускать это в пакетном режиме?

person Kevin McKenzie    schedule 02.07.2014
comment
Отличная информация, и приятно знать, что я тоже могу это сделать, спасибо! - person deucalion0; 03.07.2014