java - 如何使用 Java 中的 FTP 在大型机上创建数据集

标签 java ftp mainframe

我正在尝试使用 java 将文本文件通过 FTP 传输到大型机。我可以使用以下代码在 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();
}

用户、密码和主机名变量正在 appContext.xml 中设置。
但是,我想创建一个 PS 数据集。 有人可以建议一种方法吗?

最佳答案

根据您的问题,这是针对 MVS 文件空间而不是 USS。

使用 FTP 创建数据集时,您需要向主机提供一些有关文件大小、属性等的信息。

这个page on IBM's website概述了您可以执行以设置传输的命令列表。基本顺序如下:

站点周期
网站优先级=5
站点秒=5
网站recfm=fb

并且您可以在一行上组合多个命令:

站点 lrecl=80 blksize=3120

在传输之前执行这些命令,文件应该分配有您想要的特性。

根据您的编码示例,这里是一个应该有效的示例:

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

关于java - 如何使用 Java 中的 FTP 在大型机上创建数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52180538/

相关文章:

java - Spring JpaRepository - 分离和附加实体

java - Glassfish - 获取 session 中的所有队列

java - 了解更多关于 Java 集合的示例项目

wordpress - 如何使用 FTP 或 WP 仪表板安装 SSL 证书

mainframe - JCL : IF Statement with SET Statement

java - 使用 HttpURLConnection 在 Java Swing 中显示 "Loading"消息

apache - 仅允许外部承包商访问 apache web 文件夹。选项 : SFTP Jailing

ant - TeamCity:如何在 ANT 中启用 FTP?

cobol - 如何在cobol中打印小数点?

cobol - 确定加载模块的编译选项 - IBM Enterprise COBOL