Как перечислить базовые свойства GDG через REXX

Как узнать свойства базы GDG с помощью кода REXX; Конечно, мы можем просмотреть лимит GDG с помощью опции File-aid 3.2, но нам нужно перечислить свойства на лету, и их можно использовать в последовательной программе/модуле. Надежда разъяснила и ждет ответа! (Сообщите мне, если потребуется какая-либо другая информация?)


person Raja Reddy    schedule 07.03.2010    source источник
comment
Ах РЕКС! Это возвращает счастливые воспоминания об использовании VM/CMS на IBM 4381 еще в 80-х. Я написал целую распределенную систему печати на REXX. Извините, что я не могу ответить на ваш вопрос, хотя.   -  person    schedule 07.03.2010
comment
Это здорово, мистер Нил. Приятно, что мой запрос заглянул к вам!   -  person Raja Reddy    schedule 07.03.2010


Ответы (3)


Одно предостережение к приведенному выше предложению... Если вам нужны только записи GDG, вам может потребоваться рассмотреть возможность удаления ключевого слова ALL в строке LISTCAT ENTRY('XXX') ALL. Я считаю, что слово ВСЕ будет перечислять наборы данных GDG и не-GDG, которые совпадают с именем записи в каталоге.

person MikeC    schedule 28.08.2010

Из REXX вы можете настроить TSO, а затем использовать команду listcat:

ADDRESS TSO
"LISTCAT ENTRY('XXX') ALL"

где XXX — основание GDG.

Для захвата вывода TSO загляните в OUTTRAP, который может захватывать вывод большинства команд TSO — я специально не тестировал listcat, так как у меня дома нет z900 под столом :-) Я попробую на работе. завтра.

Call OutTrap "xyzzy."

должен дать вам вывод в переменную ствола xyzzy, и вы можете остановить захват с помощью:

Call OutTrap "off"
person paxdiablo    schedule 07.03.2010
comment
Для меня это похоже на использование файловой помощи 3.2. Но, Пакс, могу ли я сохранить информацию где-нибудь в буфере для дальнейшего использования? Я имею в виду, что я хочу использовать их в другом моде REXX exec/cobol и т. д. Ваш ответ очень ценен!! - person Raja Reddy; 07.03.2010
comment
Кажется будет работать! Обновлю, как только попробую завтра в офисе :) Спасибо!! - person Raja Reddy; 07.03.2010
comment
Вышеприведенное будет работать, но вам нужно проанализировать захваченный вывод. Вы также можете попробовать LISTDSI, который предоставляет большинство атрибутов DS непосредственно в виде переменных REXX. Единственная загвоздка в том, что LITDSI требуется абсолютный номер поколения GDG (например, G0000V00), а не относительный номер (например, 0, -1 и т. д.). - person NealB; 08.03.2010

Что-то вроде этого должно сделать это.

/* REXX */                                     

arg entry .                                    

call outtrap "listc."                          

"LISTCAT ENT("entry") GDG ALL"                 
if rc > 0 then exit 12                         

do i = 1 to listc.0                            
  if pos("LIMIT", listc.i) > 0 then do         
    limit = word(translate(listc.i,' ','-'),2) 
    say 'GDG limit is' limit                   
    leave                                      
  end                                          
end  
person David Crayford    schedule 22.07.2016