Как создать набор данных на мэйнфрейме, используя FTP из Java - PullRequest
0 голосов
/ 05 сентября 2018

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

//Function to FTP the report
public void sendReport() throws IOException

{
        FTPSClient ftp = null;
        InputStream in = null;
        String protocol="TLS";

        //Connecting to mainframe server for ftp transfer    
        ftp = new FTPSClient(protocol); 
        ftp.connect(hostname);
        ftp.login(user,password);
        ftp.execPBSZ(0);
        ftp.execPROT("P");
        ftp.enterLocalPassiveMode();
        ftp.setFileType(FTP.ASCII_FILE_TYPE);

        int reply = ftp.getReplyCode();
        System.out.println("Received Reply from FTP Connection:" + reply);
        if (FTPReply.isPositiveCompletion(reply)) 
            System.out.println("Connected To Mainframe");
        else
            System.out.println("Not connected to Mainframe..Check ID or Password");

        //Setting mainframe PDS for reports
        boolean success = ftp.changeWorkingDirectory("***Mainframe Directory***");
        if (success) 
            System.out.println("Successfully changed PDS.");
        else 
            System.out.println("Failed to change PDS. See Mainframe's reply.");

        //Sending Report to mainframe PDS
        File f1 = new File(dkReportName);
        in = new FileInputStream(f1);
        boolean done = ftp.storeFile("DKI"+dkReportName.substring(14,18), in);
        in.close();
        if (done) 
            System.out.println("FILE FTP SUCCESSFUL"); 
        else 
            System.out.println("FILE FTP NOT SUCCESSFUL");

        ftp.logout();
        ftp.disconnect();
}

переменные user, password и hostname задаются в appContext.xml.
Тем не менее, я хочу создать набор данных PS. Может ли кто-нибудь, пожалуйста, предложить способ сделать это.

1 Ответ

0 голосов
/ 05 сентября 2018

Исходя из вашего вопроса, это для файлового пространства MVS, а не USS.

При создании набора данных с FTP вам необходимо предоставить хосту некоторую информацию о размере файлов, атрибутах и ​​т. Д.

Эта страница на веб-сайте IBM содержит список команд, которые вы можете выполнить для настройки передачи. Базовая последовательность будет выглядеть примерно так:

site cyl
site pri=5
site sec=5
site recfm=fb

и вы можете объединить несколько команд в строке:

site lrecl=80 blksize=3120

Выполните эти команды перед передачей, и файл должен быть назначен с желаемыми характеристиками.

На основе вашего примера кодирования приведен пример, который должен работать:

ftp.sendCommand("site",
                "cyl pri=5 sec=5 recfm=fb filetype=seq lrecl=80 blksize=3120");
...