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

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

4 ответа

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

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.

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

Решением IBM будет установка DB2 LUW "Сервер федерации". Это в основном переведет DRDA в ODBC/OLEDB.

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

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

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

ArdGate не использует DRDA, он использует выход для интеграции с клиентом SQL (AKA 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 это не так.

Другие вопросы по тегам