Цитата
А нельзя ли обойтись без дампа диска при переносе томов с реальных 3390 на эмулируемые?
принципиально это возможно - одна программа (автономная или в среде
операционный системы) на реальном MF читает дорожку и передает образ
дорожки (TCP/IP) другой программе в Hercules, которая этот образ пишет...
z/OS FTP поддерживает named pipe (FIFO файл), может быть с этим можно что-то выкрутить и построить pipe для прямой передачи
данных? Никто не пробовал?
Прямая передача данных возможна, и более того, осуществляется почти одними только стандартными средствами - идея с named pipes реализуема. Общий принцип:
- в системе A создаем named pipe: mkfifo /u/ibmuser/pipe_A
- в системе B создаем named pipe: mkfifo /u/ibmuser/pipe_B
- в системе A выполняем выгрузку образа диска в /u/ubmuser/pipe_A
- в системе B выполняем загрузку образа диска из /u/ibmuser/pipe_B
- связываем pipe_A системы A с pipe_B системы B завершая построение канала передачи данных.
для практической реализации требуется
- программа dump/restore, которая использовала бы QSAM/BSAM для записи и чтения дампа, чтобы для размещения образа можно было использовать файл. К сожалению, ADRDSSU без модификаций (подробнее об этом ниже) не позволяет использовать файл для размещения образа диска. Я использовал программу OFFLINDR (
File # 719 Offline DASD Dump/Restore Program from Greg Smith)
- для передачи данных между системами A и B используем ftp.
Итак:
задание для выгрузки:
//DUMP JOB
//DUMP EXEC PGM=OFFLINDR,PARM='DUMP,cuuA'
//STEPLIB DD DISP=SHR,DSN=CPAC.LINKLIB
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD PATH='/u/ibmuser/pipe_A',
// PATHOPTS=(ORDWR),PATHDISP=(KEEP,KEEP),
// FILEDATA=(BINARY),BLKSIZE=32700,RECFM=U
//
задание для загрузки:
//RESTORE JOB
//RESTORE EXEC PGM=OFFLINDR,PARM='RESTORE,cuuB'
//STEPLIB DD DISP=SHR,DSN=CPAC.LINKLIB
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD PATH='/u/ibmuser/pipe_B',
// PATHOPTS=(ORDONLY),PATHDISP=(KEEP,KEEP),
// FILEDATA=(BINARY),BLKSIZE=32700,RECFM=U
//
задание для организации передачи данных между системами:
//TRANSMIT JOB
// EXEC PGM=FTP,PARM='ip_address'
//SYSPRINT DD SYSOUT=*
//NETRC DD *
machine ip_address login userid password password
//INPUT DD *
lcd /u/ibmuser
cd /u/ibmuser
quote site unixfiletype=fifo
locsite unixfiletype=fifo
get pipe_A pipe_B
//
RESTORE и TRANSMIT стартуем в системе B, DUMP - в системе A
По-видимому, можно использовать и ADRDSSU, если использовать user exit отсюда
File # 880 Extension of ADRDSSU to manage dumps in a network Схема применима для копирования из любого z/OS (OS/390) в z/OS (OS/390) где бы он не работал - под управлением любого эмулятора, в частности, Hercules, или на реальном MF.