Отправка файлов через соединение напрямую из UNIX в MAINFRAME - PullRequest
0 голосов
/ 28 октября 2011

Я отправляю файл из UNIX на сервер MAINFRAME через connect direct. Я могу успешно загрузить файл. На хосте назначения, когда файл получен, он не читается и не в том формате, в котором я отправил его с сервера UNIX.

Ниже приведено задание на передачу

Direct> Enter a ';' at the end of a command to submit it. Type 'quit;' to exit CLI.

        submit maxdelay=unlimited TINIRS   process    snode=b1ap005
                       TRANSMIT   copy from  (file=myFile.txt
                                              pnode
                                              sysopts=":datatype=text"
                                             )
                                             ckpt=1k
                                       to    (file=myFile.txt(+1)
                                              snode
                                              DCB=(DSORG=PS,RECFM=VB,LRECL=1500)
                                              disp=(new)
                                             )
         pend ; 

Пожалуйста, дайте мне знать, что значения DCB необходимо обновить. Файл, который я отправляю, содержит 3 записи переменной длины, максимальная длина записи 1500.

Ответы [ 2 ]

1 голос
/ 29 октября 2011

На самом деле, это выглядит почти правильно.Но если ваша максимальная длина записи составляет 1500 символов (исключая NL в конце строки), ваш LRECL должен быть не менее 1504. Но не экономьте на максимуме - нет затрат или штрафов для больших значений (до32767).И NealB правильно - если это текстовый файл, вам может потребоваться указать перевод набора символов - но я не знаю, как это сделать в CONNECT: Direct.

0 голосов
/ 28 января 2016

C: D автоматически преобразует ascii в EBCDIC, когда используется DATATYPE = TEXT.Чтобы быть уверенным, вы можете использовать ": datatype = text: xlate = yes:".

...