Подключение к СУБД MySQL через java

У меня есть требование подключить существующее приложение cobol в z/OS к удаленной базе данных MySQL с помощью java. Я читал о подходе к хранимым процедурам, но не получил четкого представления об архитектуре. Не могли бы вы поделиться своими идеями относительно подхода к соединению хранимых процедур cobol-java-MySQL?


person Sherly    schedule 25.09.2014    source источник
comment
возможный дубликат Как разработать приложение на мейнфрейме для доступа к DB2/LUW без DB2/z?   -  person cschneid    schedule 25.09.2014


Ответы (4)


Oracle, по крайней мере, предлагает поддержку DRDA через функциональность «прозрачных шлюзов (TG)».

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

Стоимость значительная, 5-значная, когда я смотрел на это.

В IBM i (он же AS/400) Oracle предлагал поддержку как клиента, так и сервера. TG сделал IBM i похожим на еще одну базу данных оракула, а базу данных оракула - на еще одну IBM i. MS SQL Server предлагает поддержку клиента DRDA, но не сервера. Таким образом, MS SQL Server может успешно подключиться к серверу DRDA, но сервер DRDA не может подключиться к MS SQL Server.

Цена, которую вы платите за использование открытого стандарта, когда ваши конкуренты этого не делают.

Решением IBM будет установка DB2 LUW «Federation Server». В основном это переводило бы DRDA в ODBC/OLEDB.

Последним вариантом будет установка и использование драйверов JDBC типа 4 на вашем z. Я предполагаю, что есть способ вызывать Java-программы из COBOL в z/OS. Я знаю, что есть на IBM i.

На самом деле, поскольку спецификация DRDA открыта, вы можете создать свой собственный запросчик приложений DRDA (AR), который использует JDBC для связи с удаленным сервером; предоставляя вам шлюз DRDA (мост). На самом деле для IBM i существует проект с открытым исходным кодом, который делает именно это. ARDGATE распространяется как часть проекта AppServer4rpg http://sourceforge.net/projects/appserver4rpg/?source=navbar

Компонент ARDGATE написан на Java, вероятно, его можно портировать на z/OS.

person Charles    schedule 25.09.2014

... другой возможностью было бы перенести ваше приложение cobol на as400 (это не должно быть слишком сложно на уровне исходного кода) и получить доступ к любой базе данных JDBC, которую вы хотите, используя ArdGate, универсальный мост от DB2/400 к любой базе данных с поддержкой JDBC.

Дитер

person Dieter Bender    schedule 23.10.2014

У вас есть 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
person Joe Zitzelberger    schedule 09.03.2015

ArdGate не использует DRDA, он использует выход для интеграции клиента SQL (также известный как ARDPGM), который является только AS400. Так что это не переносимо на z-Series.

Должна быть возможность написать мост от DRDA к JDBC (это будет работать на всех разновидностях DB2), но спецификации DRDA плохо документированы (по этой причине я использовал подход ArdPGM).

Продукт IBM снова переименован в InfoSphere Federation Server, требует дополнительного сервера и довольно дорог (это IBM). Используя это, вы можете получить доступ к MS SQL Server со встроенным SQL в COBOL, например, к таблицам DB2.

Подход с хранимой процедурой может работать следующим образом:

Чтобы получить набор результатов (открытый курсор), вы должны передать оператор выбора SQL хранимой процедуре (реализованной на Java), и внутри хранимой процедуры вам придется иметь дело с базой данных MSSQL внутри хранимой процедуры, чтобы получить ResultSet, вытащив его. массив (или временная таблица), возвращающий открытый курсор. Это может быть очень неуклюже с z-OS, и я не знаю, будет ли это хорошо масштабироваться. На AS400 этого не будет.

person Dieter Bender    schedule 23.10.2014