JSR 352: Как записать набор данных MVS из пакетной программы Java?

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

Я запускаю пакетное задание Java в WebSphere Liberty на zOS. Как указать набор данных? Могу ли я напрямую дать DataSet такое имя?

dsnFile = new ZFile("X.Y.Z", "wb,type=record,noseek");

Я могу записать его в текстовый файл на самом сервере, используя средства записи файлов Java, но я не знаю, как получить доступ к набору данных mvs.

Я относительно новичок в мире zOS и мэйнфреймов.


person Fazil Hussain    schedule 28.06.2016    source источник


Ответы (1)


Похоже, вы задаетесь более общим вопросом, как использовать API ZFile в WebSphere Liberty на z/OS.

Вы пробовали что-то вроде:

    String pdsName = ZFile.getSlashSlashQuotedDSN("X.Y.Z");
    ZFile zfile = new ZFile(pdsName , ...options...)

Что касается случаев использования, специфичных для пакетов, вам, очевидно, придется различать запись в новый файл, который создается впервые при первоначальном выполнении, и добавление к уже существующему файлу при перезапуске.

Вы также можете найти несколько полезных фрагментов в этом репозиторииdoctorbatch.io вместе с исходной ссылкой, которую вы разместили. .

Для справки я скопирую/вставлю из ZFile Javadoc:

ZFile dd = new ZFile("//DD:MYDD", "r");

Opens the DD namee MYDD for reading

ZFile dsn = new ZFile("//'SYS1.HELP(ACCOUNT)'", "rt");

Opens the member ACCOUNT from the PDS SYS1.HELP for reading text records

ZFile dsn = new ZFile("//SEQ", "wb,type=record,recfm=fb,lrecl=80,noseek");

Opens the data set {MVS_USER}.SEQ for sequential binary writing. Note that ",noseek" should be specified with "type=record" if access is sequential, since performance is greatly improved. 

Последнее замечание. Еще пара полезных вспомогательных методов ZFile: bpxwdyn() и getFullyQualifiedDSN().

person Scott Kurz    schedule 28.06.2016