2

我正在尝试用 Java 连接到 z/OS 中的 VSAM 文件。我已经尝试使用具有以下代码的 VSE 重定向器连接器:

package test;

import java.sql.DriverManager;
import java.sql.ResultSetMetaData;

public class TestVSAM {

  public static void main(String[] args) {

    String vsamCatalog = "VSESP.USER.CATALOG";
    String flightsCluster = "USERNAME.TEST.KSDS1";
    String flightsMapName = "FLIGHTS_MAP";
    
    String ordersCluster = "FLIGHT.ORDERING.ORDERS";
    String ordersMapName = "ORDERS_MAP";

    String ipAddr = "XXX.XXX.XXX.XXX";
    String userID = "XXXXXX";
    String password = "XXXXXX";
    Integer port = 123;

    try {
      System.out.println("VSE IP address------------->" + ipAddr);

      System.out.println("Your VSE user ID----------->" + userID);

      System.out.println("Password------------->" + password);

      System.out.println("Port------------->" + port);

      java.sql.Connection jdbcCon;
      java.sql.Driver jdbcDriver =
          (java.sql.Driver) Class.forName("com.ibm.vse.jdbc.VsamJdbcDriver").newInstance();

      // Build the URL to use to connect
      String url = "jdbc:vsam:" + ipAddr;

      // Assign properties for the driver
      java.util.Properties prop = new java.util.Properties();
      prop.put("port", port);
      prop.put("user", userID);
      prop.put("password", password);

      // Connect to the driver
      jdbcCon = DriverManager.getConnection(url, prop);

      // Get a statement
      java.sql.Statement stmt = jdbcCon.createStatement();

      // Execute the query ...
      java.sql.ResultSet rs = stmt.executeQuery(
          "SELECT * FROM " + vsamCatalog + "\\" + flightsCluster + "\\" + flightsMapName);

      ResultSetMetaData rsmd = rs.getMetaData();
      int columnCount = rsmd.getColumnCount();

      for (int i = 1; i <= columnCount; i++) {
        System.out.println("Key------------>" + rsmd.getColumnLabel(i));

      }
      rs.close();
      stmt.close();

    } catch (Exception e) {
      System.out.println(e);
    }

我收到此错误:

连接被拒绝错误

我的问题:

  1. 我们可以使用 VSE 重定向器连接器来读取 VSAM 文件吗?如果是,那么我们如何解决上述错误并建立连接?
  2. 有没有其他方法可以通过 Java 访问 VSAM 文件?
4

1 回答 1

0

您是否考虑过类似的东西: https ://www.ibm.com/docs/en/sdk-java-technology/8?topic=jzos-zfile

于 2021-11-03T16:01:06.453 回答