Как передать бинарный файл через Connect:Direct NDM?

Я пытаюсь отправить двоичный файл, в данном случае файл Excel, с моего локального сервера (сервера Solaris с программным обеспечением для повторного хостинга мейнфреймов) с помощью 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?


person Carlos    schedule 12.09.2011    source источник
comment
Судя по сообщению, проблема может заключаться в том, что файл Excel имеет очень большую длину записи, но набор данных, в который вы пытаетесь его поместить, имеет более короткую длину записи (например, 1504). Попробуйте увеличить длину записи до чего-то действительно большого (например, 32767), а затем повторите попытку.   -  person NealB    schedule 12.09.2011
comment
Интересно. Мой файл XLS весит около 3 МБ. Какой размер подойдет вместо 32767 или это лучший вариант?   -  person Carlos    schedule 12.09.2011
comment
Я все еще просто предполагаю, но 3M больше, чем разрешенный размер блока, вам, возможно, придется прибегнуть к составные записи. Возможно, вам придется предварительно выделить файл с помощью IDCAMS, поскольку составные записи представляют собой наборы данных VSAM.   -  person NealB    schedule 12.09.2011


Ответы (1)


Немедленно... Попробуйте изменить RECFM=VB на RECFM=U и указать BLKSIZE= вместо LRECL=

На самом деле это не так уж сильно отличается от того, как исполняемые загрузочные модули хранятся на мейнфрейме, за исключением того, что вы не хотите, чтобы файл был набором данных PDS. Меня сейчас нет в офисе, и я думаю, что у меня есть несколько примеров NDM, которые передают загрузочные модули, которые я могу посмотреть, если это предложение не сработает, но я думаю, что оно сработает.

Дайте этому предложению шанс, и если он все еще не летает, дайте мне знать.

person MikeC    schedule 03.10.2011
comment
Какой BLKSIZE я должен указать для файла размером около 3 МБ? - person Carlos; 31.01.2012
comment
Оптимальный размер BLKSIZE зависит от используемого вами устройства. - person MikeC; 18.04.2012
comment
Я приму это как ответ, хотя эта конкретная задача в моем проекте не решалась. Спасибо за отзыв! - person Carlos; 03.08.2012