2

我有一个需要从 Web 服务获取数据的 COBOL 程序。如果不使用 CICS,我最好的选择是什么?我认为 C 程序可以读取 Web 服务并将其保存到文件中,然后 COBOL 可以读取该文件。COBOL 可以调用 Web 服务吗?数据大小约为 300mb。

4

5 回答 5

5

Use the IBM TCP/IP 'EZASOKET' modules

I work for a company with a z/OS system running mostly COBOL, batch (JCL) and CICS. To call webservices, we wrote a module to implement HTTP 1.0 using TCP/IP. With modules

  • EZASOKET
    • GETHOSTBYNAME
    • SOCKET
    • CONNECT
    • WRITE
    • FCNTL
    • READ
    • CLOSE
    • SELECTEX

supplementary modules:

  • EZACIC04 translates EBCDIC to ASCII
  • EZACIC05 translates ASCII to EBCDIC
  • EZACIC06 convert character to bit mask
  • EZACIC08 decode IP address

Since I wrote this for my company, I can't just give out the code. But for reference, it took me 3 days to write the module, and that was with an example to start with that did a partial hacky way of doing it.

You'll need to read through IBM's references to know how to use the EZA modules.

于 2012-04-06T14:09:10.700 回答
2

可以从 z/os 上的 COBOL 程序调用 java。
我们公司已经做到了。

  1. 您必须指定它是 RECURSIVE
  2. 你必须导入类

HelloJ 类是
“com.ibm.zos.batch.container.test.HelloJ”
JavaException 类是“java.lang.Exception”
BCDTranHelper 类是
“com.ibm.batch.spi.UserControlledTransactionHelper”。

  1. 你必须包括 JNI。链接部分。复制 JNI

* * *然后您可以在您的 PROCEDURE DIVISION 中从 COBOL 调用 java:
Invoke HelloJ "sayHello"

另请查看 Java Exception Check * 以了解如何处理异常。

如果您想从 z/os 上的 COBOL 程序调用 Web 服务,这将非常有用。

有关更多详细信息,请参阅此链接。

http://pic.dhe.ibm.com/infocenter/zos/v1r13/index.jsp?topic=%2Fcom.ibm.zos.r13.iean500%2Fcodeexm.htm

于 2014-01-30T16:33:15.503 回答
0

也许看看这篇文章。它建议为 Web 服务创建一个 C/C++ 包装器接口。虽然本文是针对 iSeries 的,但您可能能够在 zSeries 下使用 BPXBATCH 实现非常相似的东西

基本上,他们建议在您的 COBOL 代码和与 Web 服务接口的 C++ 代码之间使用 C 包装器。此解决方案允许 COBOL 以相对直接的方式调用 C 函数。C 函数通过使用 C++ 代理实现对 Web 服务的调用来模仿 C++ 行为。

于 2012-04-04T15:48:19.893 回答
0

如果您可以在您的站点使用 Java 从 cobol 程序调用 Java 来访问 Web 服务,则可能是一种选择。假设您使用 Enterprise cobol,请查看z/OS Volume II 上的 Java 独立应用程序的第 6.44 节

于 2012-04-05T17:15:05.537 回答
0

如果您使用的是 z/OS 2.1 或更高版本,请使用 z/OS 客户端 Web 支持工具包。

查看SYS1.SAMPLIB(HWTHXCB1)中的 Cobol 示例。

如果您的 Cobol 在 DB2 DSN 命令下运行,您还可以使用 SOAPHTTP* 标量函数。

于 2019-03-24T12:57:34.583 回答