Про передачу файлов с МФ и на МФ тут был большой отдельный топик, рекомендую почитать. Если в операционной системе поднят FTP-сервер, то проще всего отправлять/принимать файлы с его помощью. Так работает: 1. Создать последовательный набор (Пример: IBMJZOS.BIN) с RECFM=FB,LRECL=0124,BLKSIZE=27648. Достаточно 20 треков. 2. Зайти в OMVS (tso omvs), скопировать файл в набор cp /usr/lpp/java/J6.0/lib/ext/ibmjzos.jar "//IBMJZOS.BIN" 3. Принять набор в двоичном режиме через терминал.
IBM JDK любой нужной версии можно получить здесь: Java™ Standard Edition Products on z/OS Там есть как обновления для SMPE, так и независимые архивы, которые достаточно распаковать в z/OS и использовать.
Обновлять JDK желательно, как собственно и любой софт, но не обязательно. Если обновить системный JDK проблематично, то ИМХО проще скачать JDK в архиве, распаковать его в z/OS в подходящий каталог и пользоваться им.
Вопрос на засыпку : как из сервлета указать от какого пользователя пользуюсь методом Exec, иначе выдает следующее errorLines : [RACF authorization error. You must have READ authority to the IRR.RADMIN.command-name profile in the FACILITY class.] Вызываю программу rac с параметром lu - аналог комманды LISTUSER.
Так работает: 1. Создать последовательный набор (Пример: IBMJZOS.BIN) с RECFM=FB,LRECL=0124,BLKSIZE=27648. Достаточно 20 треков. 2. Зайти в OMVS (tso omvs), скопировать файл в набор cp /usr/lpp/java/J6.0/lib/ext/ibmjzos.jar "//IBMJZOS.BIN" 3. Принять набор в двоичном режиме через терминал.
Работать - работает, только зачем же так сложно? Примите файл: binary get /usr/lpp/java/J6.0/lib/ext/ibmjzos.jar ibmjzos.jar
Как "классическая" файловой системой z/OS (RFS) так и файловая система z/OS Unix (zFS/HFS) доступны для FTP (а так же описываются в JCL и т.д.). "Переключение" происходит при вводе абсолютного имени объекта - файла с путем, то есть первый символ "/" или имени набора данных в кавычках в команде cd: cd 'AAA.TEST' get M m.txt -- здесь подразумевается последовательный набор данных AA.TEST.M cd 'AAA.LIBRARY' get M m.txt -- здесь подразумевается AA.LIBRARY(M) если A.LIBRARY - PDS[E] cd /u/zzz get M m.txt -- здесь подразумевается файл /u/zzz/M
или без cd: get 'AAA.TEST.M' m1.txt get 'AAA.LIBRARY(M)' m2.txt get /u/zzz/M m3.txt
Сообщение отредактировал Gregory - Вторник, 21.09.2010, 14:04
Тут описывался вариант приема файла через терминал, т.е. при отсутствии FTP-сервера, или доступа к нему. Т.к. через TN3270 вытащить файл из OMVS напрямую нельзя (насколько мне помнится), поэтому первым шагом он копируется в MVS-набор. Понятно, что при наличии FTP-сервера получение файла происходит в одну операцию.
Тут описывался вариант приема файла через терминал, т.е. при отсутствии FTP-сервера, или доступа к нему.
Извиняюсь, виноват - невнимательно прочитал. конечно, при передаче в сеансе 3270 файлы не поддерживаются. IND$FILE можно было бы доработать, только кому и зачем это нужно??