2014-01-06 115 views
2

我正在與JCL合作,並且有所謂的ICEMAN當使用IBM SORT實用程序DFSORT時調用它。除其他外,DFSORT可用於SORT,COPY或MERGE文件。在下面的例子中,輸出來自SORT。我的問題是需要多少次排序(// SORTWK01 DD UNIT = SYSDA,SPACE =(CYL,30))文件。當我在JCL看到他們時,他們看起來總是不一樣。有沒有一個公式來計算需要多少SORTWKnns的大小?JCL ICEMAN需要多少個排序文件?

JCL代碼:

//STEP5 EXEC PGM=ICEMAN,COND=(4,LT)     
//SYSOUT DD SYSOUT=1        
//SYSIN  DD DSN=CDP.PARMLIB(cardnumberhere),DISP=SHR  
//SORTIN DD DSN=filename,DISP=SHR    
//SORTOUT DD DSN=filename,DISP=(OLD,KEEP), 
//   DCB=(LRECL=5000,RECFM=FB),     
//   SPACE=(CYL,30)        
//SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,30)    
//SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,30)    
//SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,30)    
//SORTWK04 DD UNIT=SYSDA,SPACE=(CYL,30)    

回答

2
EXEC PGM=ICEMAN 

EXEC PGM=SORT 

會給你同樣的結果。它們是彼此的ALIASES,並且無論哪個PGM =被指定,都執行相同的程序。

正如cschneid所表明的那樣,SORTWKnn是「分類工作數據集」,並且在不參考現有「標準」數據集的情況下複製JCL的趨勢會導致大量的工作數據集空間的過度分配。

SORT的工作區可以通過兩種方式指定,可以手動(放入SORTWKnn文件,最大數量遠遠超過15)或動態使用DYNALLOC。

DYNALLOC是推薦的方法,因爲工作空間將根據需要被SORT理解的內容分配。在OPTION語句中查找關聯的安裝選項/覆蓋。

通常,會有默認的DYNALLOC值處理大部分SORT步驟,然後將爲特殊大的SORT提供特定的OPTION參數。

手動定義作業步中的SORTWKnn數據集將「關閉」該步驟的任何動態分配。

SORTWKnn數據集的具體定義有時很方便,但並不經常。這些天所需的空間可能接近1.2倍的輸入文件。您可以從一個特定工作步驟的典型運行中檢查SYSOUT,並查看實際使用的空間有多少,如果存在過度/不足分配,則調整主要SORTWKnn空間或數據集的數量以更好地適應。

當DYNALLOC用於編程語言調用的SORT時,指定附加信息(平均記錄長度,估計記錄數)通常是一個好主意。這是因爲SORT可能無法「看見」輸入數據集,所以沒有太多的信息來估計所需的工作空間。

另外,最好將所有DCB信息保留爲關閉輸出文件。 SORT將從輸入數據集中提供正確的DCB信息,並考慮對SORT控制卡內數據的任何操作。如果您在JCL(LRECL,RECFM)中保留DCB信息,則只要文件發生更改,您就有兩個位置可以更改它,而不是一個位置。

在您的實際示例中,在步驟運行時,不必要地分配了超過100個柱面的空間。這種類型的應用程序在應用於許多作業時,可能導致其他作業失敗,甚至導致不需要的額外DASD(磁盤空間)的購買/計費。

5

是很常見的JCL從一個作業流至下一個,而接下來,下一個,從而導致複製褪色複製。

按照documentation ...

// SORTWKdd DD

定義中間存儲數據集。通常需要排序 應用程序,除非請求動態分配。 不適用於複製或合併應用程序。

Dynamic allocation通過DYNALLOC選項要求。一些商店將這一組作爲默認設置。

如果你願意,你可以manually calculate所需的工作空間。通常1.5到2倍的輸入文件的大小是足夠的。始終分配多於1個SORTWKdd DD語句以提高效率。避免分配大量的SORTWKdd DD語句。

+0

我們有一個工作,有15種。這可能是兩個很多。 –