5

我在一家仍然使用 COBOL 进行所有组织工作的医院获得了一份工作,整个(现在 20 TB)数据库(这是一个自制软件,猜猜看,COBOL)充满了自过去 45 年以来每位患者的数据(左右)年。

这就是我的故事。现在我的问题:

目前,所有套接字(据我所见)都是由 COBOL 程序实现的,将它们的数据写入文件。然后这些文件由 C++ 程序(这是 1980 年代后期添加的一个附加模块)读取,并使用发送到数据库的 C++ 套接字。

现在这个解决方案已经停止工作,因为他们正在将数据库从 COBOL 移动到 COBOL,是的 - 他们没有使用 MySQL 左右 - 他们实现了一个新数据库 - 再次在 COBOL 中。我问在我之前在那里工作的那个人(他现在大约 70 岁)为什么会有人这样做,他告诉我他非常擅长 COBOL,以至于他不想用任何其他语言编写它。

到目前为止一切顺利,现在我的问题是:

  • 如何在 COBOL 中实现套接字连接?我需要创建一个到外部 COBOL 数据库的接口,例如,位于192.168.1.23:283.
4

4 回答 4

5

您需要提供有关您的操作系统和编译器的更多信息。

如果您使用的是带有语言环境支持的编译器的 IBM z/OS,那么您只需从 z/OS 通信服务调用 EZASOCK 函数。这些调用在他们的参考文献中有很好的记录,并且有很好的 Cobol 示例。

其他平台将有其他选择。

在大多数情况下,您可以只“调用”以您需要的任何语言编写的外部模块,但也可以是 DLL 或 sharedLib 或其他任何语言。

你能提供更多关于你的环境的细节吗?

为什么不直接从 Cobol 程序写入数据库?

于 2010-06-08T08:28:58.340 回答
1

IBM 大型机有两个可以从 COBOL 使用的套接字 API。一种用于 CICS 程序(其中有特殊的线程安全和环境注意事项),另一种用于普通 Batch 或 IMS 程序。

实现了完整的 TCP/IP 功能,其可靠性足以处理符合 MVA 标准的信用卡协议(我知道,因为我已经做到了)。

于 2010-06-08T06:47:03.333 回答
0

回想一下,谷歌是你的朋友。

答案在很大程度上取决于您的执行环境。

IBM 确实声称拥有可从 COBOL 调用的Sockets API,作为 CICS for z/OS 的一部分。

Micro Focus 似乎有一些东西。

于 2010-04-13T21:32:46.577 回答
0

大多数 COBOL 编译器将允许您在对象模块或 DLL 中链接和调用。正如卡蒂所说,我知道我可以提供帮助,但需要更多信息。我以前从 Windows 到 DEC 都做过这个,所以我知道它可以做到。

于 2010-04-13T19:35:57.837 回答