我们如何开发大型机上的应用程序访问DB2 / LUW没有DB2 / Z?(How do we dev

2019-10-20 05:13发布

我们已经开发出运行在大型机(z / OS)的应用程序,它使用CAF,呼叫连接设施,与DB2 / Z用于存储其数据。

其中已经有DB2 / Z(因此必须为此付出代价,无论)这些客户并不关心,但也有其他人谁需要使用我们的应用程序,而不会导致数据库的费用为好。

他们都表示有我们的产品不能使用DB2 / Z,由于费用的愿望。 在z / OS,DB2的许可证费用是相当高的,我们的应用程序并不真正需要的可靠性,它提供了疯狂的水平。

因此,他们希望我们做的是要么zLinux上(SLES / RHEL),或DB2 /从大型机完全独立的机器上LUW下运行DB2。 甚至,虽然这可能会更难,在非IBM数据库。

我们正在寻找一个希望 - 最小变化的解决方案为我们实现这一代码。 在DB2的所有联合的东西,这将使使用程序DB2 / Z无缝地访问其他地方运行的实例数据,但是这仍然需要DB2 / z和因此不会导致成本降低。

什么是转移掉主机的所有数据,并允许我们从我们的应用程序完全删除DB2 / Z的依赖最简单的方法?

Answer 1:

@ NealB的答案建立在,另辟蹊径,开创层将在你的应用层没有SQL,而是调用子程序来完成你的I / O。 你表明你愿不愿意来创建自定义版本,所以你可以创建一个经常被问道,对持久层一组例程。

调用“数据库连接”的模块,它在z / OS的DB2会做CAF呼叫,DB2在z / Linux上会(说)建立SSL连接到DBMS。 维持内存结构的指针,以必要的数据结构的联合与您所选择的数据库管理系统进行通信。

FWIW我见过的供应商代码,这样做,使业务逻辑独立于数据库管理系统的实施。 某些店使用VSAM,别人DB2,IMS等。 数据模型是凌乱的,但有时他们的休息时间。



Answer 2:

这不是一个答案,只是一对夫妇的想法和意见。

一种方法我能想到的将是一线您的应用程序转换成I / O层和应用层。 该应用程序将在z / OS和I / O层将在任何机器承载数据库运行运行。 然后,所有的数据访问是通过远程过程调用通过TCP / IP或UDP。 这将是大量的工作来建立和配置。 更糟糕的是,因为管理事务ACID(原子性,一致性,隔离性,持久性)特性成为更新操作的面对真正的噩梦可能只适合于只读型的操作。

作为cschneid指出的那样,你可以尝试“滚你自己的”使用开源数据库管理系统; 但也可能会导致更多的问题比它解决的。

我想你对“推一块大石头上山”观察总结道。



文章来源: How do we develop an application on the mainframe to access DB2/LUW without DB2/z?
标签: db2 mainframe