通过java连接到MySQL RDBMS

通过java连接到MySQL RDBMS,java,mysql,stored-procedures,zos,java-stored-procedures,Java,Mysql,Stored Procedures,Zos,Java Stored Procedures,我需要使用java将z/OS上现有的cobol应用程序连接到远程MySQL数据库。 我阅读了有关存储过程方法的文章,但没有清楚地了解体系结构。 您能分享一下关于cobol-java-MySQL存储过程连接方法的想法吗?Oracle至少通过其透明网关TG功能提供了DRDA支持 成本很高,我看是5位数 在IBM i(也称为AS/400)上,Oracle提供了客户端和服务器支持。TG使ibmi看起来像另一个oracle数据库,并使oracle数据库看起来像另一个ibmi。MS SQL Server提

我需要使用java将z/OS上现有的cobol应用程序连接到远程MySQL数据库。 我阅读了有关存储过程方法的文章,但没有清楚地了解体系结构。
您能分享一下关于cobol-java-MySQL存储过程连接方法的想法吗?

Oracle至少通过其透明网关TG功能提供了DRDA支持

成本很高,我看是5位数

在IBM i(也称为AS/400)上,Oracle提供了客户端和服务器支持。TG使ibmi看起来像另一个oracle数据库,并使oracle数据库看起来像另一个ibmi。MS SQL Server提供DRDA客户端支持,但不支持服务器。因此,MS SQL Server可以愉快地连接到DRDA服务器,但DRDA服务器无法连接到MS SQL Server

当您的竞争对手不使用开放标准时,您使用开放标准所支付的价格

IBM的解决方案是安装DB2LUW联合服务器。它基本上将DRDA转换为ODBC/OLEDB

最后一个选项是在z上安装并使用类型4 JDBC驱动程序。我假设有某种方法可以在z/OS上从COBOL调用java程序。我知道在IBMi上有很多

实际上,由于DRDA规范是开放的,您可以想象创建自己的DRDA应用程序请求程序AR,它使用JDBC与远程服务器通信;给你一个DRDA网关桥。事实上,IBMi有一个开源项目就是这样做的。ARDGATE作为AppServer4rpg项目的一部分分发


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

ARDGATE不使用DRDA,它使用的是SQL客户端集成出口,也称为ARDPGM,仅限AS400。所以它不能移植到z系列

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

IBM产品再次被重命名为InfoSphere Federation Server,需要一个额外的服务器,而且比IBM更昂贵。使用这种方法,您可以使用类似于COBOL的DB2表中的嵌入式SQL访问MS SQL Server

存储过程方法的工作原理如下:


要获取resultset open cursor,您需要将SQL select语句传递给用Java实现的存储过程,并且在存储过程中,您必须处理存储过程中的MSSQL数据库以获取resultset,将其拉入数组或临时表中,并传回open cursor。使用z-OS可能会非常笨拙,我不知道它是否能很好地扩展。在AS400上它不会。。。另一种可能是,要将您的cobol应用程序移植到as400,在源代码级别并使用ArdGate(从DB2/400到任何支持JDBC的数据库的通用桥接器)访问您想要的任何JDBC数据库应该不太难


Dieter

您有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
可能重复的