Ошибка SB37 JCL для небольшого размера?

Следующее распределение пространства дает мне ошибку sB37 JCL. Размер кобола выходного файла составляет 100 байт, а размер lrecl — 100 байт. Как вы думаете, что вызывает эту ошибку? Я попытался увеличить размер до 500 100 и все равно получаю ту же ошибку.

Код:

//OUTPUT1   DD DSN=A.B.C,DISP=(NEW,CATLG,DELETE),   
//          DCB=(LRECL=100,BLKSIZE=,RECFM=FBM),               
//          SPACE=(CYL,(10,5),RLSE)                   

jcl
person Community    schedule 06.08.2014    source источник
comment
Из FBM, который выглядит как вывод на печать. Для любого файла вы должны попытаться оценить, насколько большими должны быть выходные файлы. Затем, если он заполняется, посмотрите, не зациклились ли вы. Возможно, вы захотите включить UNIT на случай, если ваши файлы будут размещены там, где они не должны быть, но выше может быть так, как это делает ваш сайт.   -  person Bill Woodger    schedule 10.08.2014
comment
Возможно, вы можете выложить файл 2 из спула для шага, который работал после использования UNIT=3? С шага, который не удалось, также было бы полезно.   -  person Bill Woodger    schedule 11.08.2014


Ответы (4)


Постарайтесь увеличить не только пространство, но и объем. Включите VOL=(,,,#) в свой DD. # - количество значений, которые вы хотите выделить

Пример: SPACE=(CYL,(10,5),RLSE),VOL=(,,,3) — включает 3 тома.

Дополнительно можно увеличить размер, но старайтесь оставаться в разумных пределах :)

person storyteller    schedule 06.08.2014
comment
Если пространство уже увеличено до 500 100, как, по-вашему, поможет добавление 10,5 на три тома? По-видимому, так оно и было, но я не могу понять, почему. 14 просмотров, дополнительный голос. Я никогда не указывал VOL=(,,,3) для DASD. Что я пропустил? - person Bill Woodger; 10.08.2014
comment
Кроме того, что с Additionally, you can increase the size, but try to stay within reasonable limits :)? Не могли бы вы объяснить это, пожалуйста, иначе это запутает будущих читателей. OP уже увеличил пространство в 50 раз. Каковы ваши разумные пределы и почему. Без объяснений это просто бессмысленные слухи. Объясни, потом посмотрим, встанет ли. - person Bill Woodger; 11.08.2014

документация для B37 говорит, что разработчик приложения должен реагировать так, как указано для сообщения IEC030I. документация для IEC030I частично говорит...

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

... как указано в другом ответе. Однако имейте в виду, что в документации по параметру VOL оператора DD говорится...

Если вы не укажете количество томов или укажете от 1 до 5, система позволит использовать до пяти томов; если указать от 6 до 20, система разрешает 20 томов; если вы укажете число больше 20, система разрешит 5 плюс число, кратное 15 томам. Вы можете переопределить максимальное количество томов в классе данных с помощью подпараметра Volume-Count. Максимальное число томов для набора данных на монтируемой ленте, управляемой с помощью SMS, или набора данных на неуправляемой ленте — 255.

... поэтому для распределения DASD вам лучше всего указать количество томов больше 5 (по крайней мере).

person cschneid    schedule 10.08.2014
comment
Или, по-другому, OP уже получает пять (то есть больше трех) по умолчанию, поэтому нет смысла указывать три. Если указать шесть, получится 20, что в четыре раза больше суммы по умолчанию. OP утверждает, что уже пробовал в 50 раз больше места, но это не сработало. Это зацикливание, или исходное распределение было рассчитано клоуном. ЮНИТ не исправил. - person Bill Woodger; 11.08.2014

//OUTPUT1   DD DSN=A.B.C,DISP=(NEW,CATLG,DELETE),   
//          DCB=(LRECL=100,BLKSIZE=,RECFM=FBM),               
//          SPACE=(CYL,(10,5),RLSE)                

Попробуйте это вместо этого. Обратите внимание, что вторичный объект будет использовать преимущества большого набора данных, в то время как без этого параметра наибольший вторичный параметр, который имеет какой-либо смысл, составляет ‹ 300. О, и если это действительно программа на языке COBOL, убедитесь, что в FD указано «БЛОК 0»!!! !! Если это не «БЛОК 0», вам может даже не понадобиться менять JCL, потому что это не фиксированная блочная машина. Он был просто исправлен и разблокирован, так что места почти всегда не хватало. И, наконец, вы можете пересмотреть, почему у вас есть М в RECFM с самого начала. Обратите также внимание, что я убрал LRECL, BLKSIZE и RECFM. Это потому, что FD в программе COBOL — это все, что вам нужно, и помещать его в JCL не только избыточно, но и опасно, потому что теперь любые изменения придется делать в нескольких местах.

//OUTPUT1   DD DSN=A.B.C,DISP=(NEW,CATLG,DELETE),   
//          DSNTYPE=LARGE,UNIT=(SYSALLDA,59),                
//          SPACE=(CYL,(10,1000),RLSE)               
person wolfen244    schedule 21.07.2017

Существует ограничение в 65 535 треков на один том. Поэтому, если вы укажете ПРОБЕЛ, превышающий этот предел, система просто проигнорирует его.

Вы можете увеличить это ограничение до 16 777 215 дорожек, добавив параметр DSNTYPE=LARGE. Или вы можете указать, что ваш набор данных является многотомным, добавив VOL=(,,,3)

Вы также можете использовать здесь параметр DATACLAS=xxxx, однако сначала вам нужно его найти. Самый простой способ — связаться с местной командой по хранению и попросить ее. Или, если вы знакомы с навигацией ISPF, вы можете ввести команду ISMF;4, чтобы открыть панель.

используйте следующие параметры, прежде чем нажать Enter.

CDS Name . . . . . . 'ACTIVE'
Data Class Name  . . *

Он должен создать список всех доступных классов данных. Найдите тот, который вам подходит (имеет достаточное количество количества томов, не ограничивает основное и дополнительное пространство).

person VadimKo    schedule 13.12.2019