2014-09-25 101 views
0

我需要使用java將z/OS上的現有cobol應用程序連接到遠程MySQL數據庫。 我讀了關於存儲過程的方法,但沒有清楚地瞭解這個架構。 您可以請分享您的想法關於cobol-java -MySQL存儲過程連接方法嗎?通過java連接到MySQL RDBMS

+0

[?我們如何開發大型機上的應用程序訪問DB2/LUW沒有DB2/Z](HTTP的可能重複://計算器。 COM /問題/ 23926490 /怎麼辦 - 我們 - 開發 - 一個應用程序 - 上的大型機到訪問DB2,LUW,而無需-DB2) – cschneid 2014-09-25 11:45:03

回答

0

Oracle至少通過「透明網關(TG)」功能提供DRDA支持。

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

成本顯著,5數字,當我看着它。

在IBM i(又名AS/400)上,Oracle提供了兩個客戶端&服務器支持。 TG使IBM看起來像另一個oracle數據庫,並使oracle數據庫看起來像另一個IBM i。 MS SQL Server提供DRDA客戶端支持,但不支持服務器。因此,MS SQL Server可以愉快地連接到DRDA服務器,但DRDA服務器無法連接到MS SQL Server。

當您的競爭對手不支付使用開放標準的價格時。

IBM的解決方案是安裝DB2 LUW「Federation Server」。它基本上將DRDA轉換爲ODBC/OLEDB。

最後一個選項是在您的z上安裝和使用第4類JDBC驅動程序。我假設有一些方法可以從z/OS上的COBOL調用Java程序。我知道IBM i上有。實際上,由於DRDA規範是開放的,所以您可以想象創建您自己的使用JDBC與遠程服務器交談的DRDA應用程序請求者(AR);因此,爲您提供DRDA網關(網橋)。事實上,IBM i有一個開源項目就是這樣做的。 ARDGATE作爲AppServer4rpg項目的一部分分發http://sourceforge.net/projects/appserver4rpg/?source=navbar

ARDGATE組件是用Java編寫的,似乎它可能會移植到z/OS。

-1

ArdGate不使用DRDA,它使用SQL客戶端集成Exit(AKA ARDPGM),它僅適用於AS400。所以它不適用於z系列。

應該可以從DRDA到JDBC(這可以在所有DB2風格上運行)編寫Bridge,但DRDA規範沒有很好的記錄(這是我使用ArdPGM方法的原因)。

IBM產品再次重命名爲InfoSphere Federation Server,並且需要額外的服務器,而且相當昂貴(它是IBM)。使用這種方法,您可以像DB2表一樣在COBOL中使用嵌入式SQL訪問MS SQL Server。

存儲過程的做法可以工作如下:

爲了得到一個結果(打開的遊標),你會傳遞一個SQL SELECT語句的存儲過程(用Java實現)和存儲過程中,你將不得不處理存儲過程中的MSSQL數據庫以獲取ResultSet,將其拖入數組(或臨時表)中,並傳回打開的遊標。這可能對z-OS來說非常笨拙,我不知道它是否能夠很好地擴展。在AS400上它不會。

0

...另一種可能性是,將您的cobol應用程序移植到as400(源代碼級別應該不會太難),並使用ArdGate(DB2/400中的通用橋接器)支持JDBC的數據庫。

迪特

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