2011-09-12 167 views
2

我試圖使用Connect:Direct NDM到目標服務器(大型機)從本地服務器(具有Mainframe rehosting軟件的Solaris服務器)提交二進制文件,本例中爲Excel文件。如何通過Connect:Direct NDM傳輸二進制文件?

這裏是環境值我設置:

SODETFL "DetailedReport.xls" 
SODDETNDM "FIN.REPORT(+1)" 
TDCOPTS ":DATATYPE=BINARY:XLATE=NO:STRIP.BLANKS=NO" 

這裏是NDM配置使用:

ASSGNDD ddname='SYSIN' type='INSTREAM' << ! 
    SIGNON                00260005 
    SUBMIT PROC=COPYFILE     -       00270005 
       JOBNAME=JOB00001    -       00280005 
       PNODE=SERVER001    -       00290005 
       SNODE=NDMIDS     -       00300005 
       SNODEID=(xxxxxx,xxxxxx)  -       00310005 
       HOLD=NO      -       00320005 
       NOTIFY=CCACTD    -       00330005 
       NODE=,      -       00360005 
    DSN1=${SODDETFL}      -       00370005 
    DSN2=${SODDETNDM}      - 
    DCBINFO='dcb=(dsorg=ps, recfm=vb, lrecl=1504)'  -                            00385005 
       DISP1=NEW,     -       00390005 
       DISP2=CATLG,DELETE   -       00400005 
       UNIT=BATCH     -       00410005 
       SYSOPTS=${TDCOPTS}   -       00440005 
       AEFAJOB=PSIAPNB5 
    SEL PROC WHERE (QUEUE=A) TABLE          00450005 
    SIGNOFF                00460005 

我能夠通過NDM發送文本文件整天都沒有問題那裏。但是,二進制似乎更難一些。當我試着使用上面的配置,我得到以下錯誤:

Completion Code => 8 
Message Id  => XCPS009I 
Short Text  => Read buffer too small. Possibly src reclen > dest reclen. 
Ckpt=>Y Lkfl=>N Rstr=>N Xlat=>Y Scmp=>N Ecmp=>Y Ecpr=>0.00 CRC=>N Zlvl=>1 win=>13 Zmem=>4 

任何人都可以提供一些線索,我怎麼可以去通過NDM提交的二進制文件?

+0

根據該消息,問題可能是excel文件的記錄長度很長,但您試圖將其放入 的數據集具有較短的記錄長度(即1504)。嘗試增加 的記錄長度,使之變得非常大(例如32767),然後重試。 – NealB

+0

有趣。我的XLS文件大約3 MB。什麼是合適的尺寸而不是32767,或者是最好的選擇? – Carlos

+0

剛剛嘗試過,同樣的錯誤。 – Carlos

回答

3

即興... 嘗試改變RECFM = VB到RECFM = U,並指定一個BLKSIZE =代替LRECL =

這實在不是所有從負載如何可執行模塊存儲在不同的除了您不希望該文件成爲PDS數據集之外的大型機。我現在不在我的辦公室,我想我有一些NDM傳輸負載模塊的例子,如果這個建議不起作用,我可以查找,但我認爲它會。

給這個建議一槍,如果它仍然不讓我知道。

+0

我應該在大約3 MB大的文件上指定BLKSIZE? – Carlos

+0

最佳BLKSIZE取決於您使用的設備。 – MikeC

+0

我會接受這個答案,儘管我的項目中的這個特殊任務尚未解決。感謝您的輸入! – Carlos

相關問題