3

哪个是连接大型机和java的成熟解决方案?WebSphere MQ / IBM CICS Transaction Gateway 哪个最好?

哪个是连接到 java 和大型机 COBOL 的最佳解决方案?

4

3 回答 3

14

假设“Java”是指“Java 不在大型机上运行”,有多种方法可以做到这一点。

  1. CICS Web 服务 (SOAP)
  2. CICS Web 支持 (REST/POX)
  3. 具有触发队列的 MQSeries

“最好”在旁观者眼中,这取决于你想要什么。这些都不是新的,该功能已经可用好几年了。

对于选项 1,CICS Web 服务助手将从 COBOL 现有语言结构生成 WSDL。如果您决定不喜欢它生成的内容,您可以编写自己的 WSDL 并从中生成 COBOL 语言结构。Java 程序将使用您最喜欢的 SOAP(或 MQ)基础架构与 CICS/COBOL 程序进行通信。

对于选项 2,您的 CICS/COBOL 程序必须编码为“Web 感知”。CICS/COBOL 程序必须使用 WEB EXTRACT、WEB RECEIVE 和 WEB SEND API 来与 Java 程序通信。Java 程序将使用 HTTP(S) GET/POST 处理向 CICS/COBOL 程序发送/接收消息。

对于选项 3,您的 CICS/COBOL 程序必须被编码为使用 MQGET 和 MQPUT 来接收和发送消息到 Java 程序。您希望使用回退队列名称和回退阈值定义队列,并根据回退计数值检查后者。如果阈值大于计数,您希望将消息移动到回退队列而不尝试在 CICS/COBOL 程序中处理它(这是一条有害消息)。java 程序将使用 JMS 或任何您喜欢的消息传递包装程序包与 CICS/COBOL 程序进行通信。

于 2011-03-06T16:07:27.063 回答
1

从顶部看,您可以连接到 CICS

于 2014-02-18T12:41:24.633 回答
0

对于将来的搜索,您可以使用:

https://github.com/naskarlab/java-mainframe-tools

您创建一个 COMMAREA 以仅使用带有 PICTURE 注释的 POJO 来调用 CICS 程序。

public class Data {
 
    @PIC9(8)
    private Long id;
 
    @PIC9(5)
    private Integer code1;
 
    @PIC9(9)
    private Integer code2;

    ...
}



Configuration config = new Configuration("tcp://host", 35500, "CICS1", "CICS1", "CICS1"); // CTG Connection
CommArea comm = new CommArea();

Cics cics = new Cics(config, "PRG1", "PROG1"); // CICS transaction or program name
Data data = new Data(); // your POJO

byte[] commArea = comm.to(data); // transforms POJO to comm area
cics.runECIRequest(commArea);
comm.from(commArea, data); // injects the values from comm area to POJO
于 2021-10-18T08:27:38.063 回答