0

我需要使用 java 将 z/OS 上的现有 cobol 应用程序连接到远程 MySQL 数据库。我阅读了存储过程方法,但没有清楚地了解架构。您能否分享您对 cobol-java-MySQL 存储过程连接方法的想法?

4

4 回答 4

0

您拥有 Java,这意味着您可以使用 JDBC 驱动程序与 MySQL 通信。

而且你有 Cobol,它现在与大型机上的 Java 集成得很好。您可以编写一个 Cobol 对象,该对象将调用 JDBC 驱动程序中的各种方法。

您可以将其包装在一个过程(或一组过程)Cobol 程序中,以触发存储过程或准备好的查询并返回结果。

因此,可能的软件堆栈可能如下所示:

Existing Application (Cobol)
Procedureal Interface Module (Cobol)
Cobol-To-Java interace (OO-Cobol)
JDBC Driver for MySql (prepackaged JAR, Java)
MySQL database
于 2015-03-09T16:04:20.057 回答
0

...另一种可能性是将您的 cobol 应用程序移植到 as400(这在源代码级别应该不会太难)并使用 ArdGate 访问您想要的任何 JDBC 数据库,ArdGate 是从 DB2/400 到任何支持 JDBC 的数据库的通用桥。

迪特

于 2014-10-23T18:03:48.483 回答
0

Oracle 至少通过其“透明网关 (TG)”功能提供 DRDA 支持。

http://www.oracle.com/technetwork/database/enterprise-edition/tg4drda-097332.html

成本很高,当我查看它时,5 位数。

在 IBM i(又名 AS/400)上,Oracle 提供了客户端和服务器支持。TG 使 IBM i 看起来像另一个 oracle DB,并使 oracle DB 看起来像另一个 IBM i。MS SQL Server 提供 DRDA 客户端支持,但不提供服务器。所以 MS SQL Server 可以愉快地连接到 DRDA 服务器,但是 DRDA 服务器无法连接到 MS SQL Server。

当您的竞争对手不这样做时,您为使用开放标准支付的价格。

IBM 的解决方案是安装一个 DB2 LUW “Federation Server”。它基本上会将 DRDA 转换为 ODBC/OLEDB..

最后一个选项是在您的 z.js 上安装和使用类型 4 JDBC 驱动程序。我假设有一些方法可以在 z/OS 上从 COBOL 调用 java 程序。我知道 IBM i 上有。

实际上,由于 DRDA 规范是开放的,您可以想象创建自己的 DRDA Application Requester (AR),它使用 JDBC 与远程服务器通信;给你一个 DRDA 网关(桥)。事实上,IBM i 的一个开源项目就是这样做的。ARDGATE 作为 AppServer4rpg 项目的一部分分发 http://sourceforge.net/projects/appserver4rpg/?source=navbar

ARDGATE 组件是用 Java 编写的,似乎可以移植到 z/OS。

于 2014-09-25T13:46:01.287 回答
-1

ArdGate 不使用 DRDA,它使用 SQL 客户端集成出口 (AKA ARDPGM),它只是 AS400。所以它不能移植到 z 系列。

应该可以编写一个从 DRDA 到 JDBC 的桥(这将在所有 DB2 风格上运行),但是 DRDA 规范没有很好的文档记录(这就是我使用 ArdPGM 方法的原因)。

IBM 产品再次重命名为 InfoSphere Federation Server,并且需要一个额外的服务器并且相当昂贵(它是 IBM)。使用它,您可以使用 COBOL 中的嵌入式 SQL 访问 MS SQL Server,就像 DB2 表一样。

存储过程方法可以如下工作:

要获得结果集(打开游标),您需要将 SQL 选择语句传递给存储过程(用 Java 实现),并且在存储过程中,您必须处理存储过程中的 MSSQL 数据库以获取 ResultSet,并将其拉入一个数组(或一个临时表),传回一个打开的游标。这对于 z-OS 可能非常笨拙,我不知道它是否能很好地扩展。在 AS400 上不会。

于 2014-10-23T15:56:16.090 回答