z / OS如何调用Web服务?

时间:2012-04-04 13:17:20

标签: web-services cobol mainframe zos

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

5 个答案:

答案 0 :(得分:5)

使用IBM TCP / IP'EZASOKET'模块

我在一家运行z / OS系统的公司工作,主要运行COBOL,批处理(JCL)和CICS。为了调用webservices,我们编写了一个使用TCP / IP实现HTTP 1.0的模块。使用模块

  • EZASOKET
    • 的gethostbyname
    • 插座
    • CONNECT
    • WRITE
    • FCNTL
    • READ
    • CLOSE
    • SELECTEX

补充模块:

  • EZACIC04将EBCDIC转换为ASCII
  • EZACIC05将ASCII转换为EBCDIC
  • EZACIC06将字符转换为位掩码
  • EZACIC08解码IP地址

自从我为公司写这篇文章以来,我不能只是给出代码。但是作为参考,我花了3天的时间来编写模块,这是一个开始的例子,这是一种部分hacky方式。

您需要阅读IBM的参考资料,了解如何使用EZA模块。

答案 1 :(得分:2)

可以在z / os上从COBOL程序调用java 我们在公司做过。

  1. 您必须指定它是RECURSIVE
  2. 您必须导入类
  3. 班级HelloJ是
         “com.ibm.zos.batch.container.test.HelloJ”
         类JavaException是“java.lang.Exception”
         BCDTranHelper类是
         “com.ibm.batch.spi.UserControlledTransactionHelper”。

    1. 你必须包括JNI。 链接部分。  COPY JNI
    2. * * *然后您可以在PROCEDURE DIVISION中调用来自COBOL的java:  调用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

答案 2 :(得分:0)

也许看看this article。它建议为Web服务创建一个C / C ++包装器。虽然本文适用于iSeries,但您可以使用BPXBATCH在zSeries下实现非常相似的内容

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

答案 3 :(得分:0)

如果您可以在您的站点使用Java,则可以选择从cobol程序调用Java来访问Web服务。假设您使用Enterprise cobol,请查看Java Stand-alone Applications on z/OS Volume II

的第6.44节

答案 4 :(得分:0)

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

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

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