Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ibm midrange iSeries/AS400渐进式卷展栏_Ibm Midrange - Fatal编程技术网

Ibm midrange iSeries/AS400渐进式卷展栏

Ibm midrange iSeries/AS400渐进式卷展栏,ibm-midrange,Ibm Midrange,我们的任务是找到一个渐进的软件解决方案。 让我们以一个简单的应用程序为例,其中包含当前版本1上的数据和对象库。我们希望能够在只有某些用户使用版本2的情况下进行升级,但仍然保留一个集中的数据库 我现在有两个想法: 在示例1中,用户将从指向现有对象移动到升级的对象,最终现有对象将不再需要并可以删除。 在示例2中,用户将从指向现有对象/数据库移动到升级的对象/数据库,最终现有对象/数据库将不再需要并可以删除。 总体思路是,软件的推出是分阶段的,因此降低了推出的风险。如果需要,用户可以直接指向现有的对

我们的任务是找到一个渐进的软件解决方案。 让我们以一个简单的应用程序为例,其中包含当前版本1上的数据和对象库。我们希望能够在只有某些用户使用版本2的情况下进行升级,但仍然保留一个集中的数据库

我现在有两个想法:

在示例1中,用户将从指向现有对象移动到升级的对象,最终现有对象将不再需要并可以删除。 在示例2中,用户将从指向现有对象/数据库移动到升级的对象/数据库,最终现有对象/数据库将不再需要并可以删除。 总体思路是,软件的推出是分阶段的,因此降低了推出的风险。如果需要,用户可以直接指向现有的对象/数据库


外面的人会做这种事吗?是否有源代码管理/交付工具可以自动执行此操作?

在IBM i上,根据您用于数据访问的语言,程序与数据库表紧密相连。通常,当需要数据库更新时,有几种方法可以做到这一点(我假设使用RPG进行记录级访问是最常见的):

  • 首先升级数据库更新,然后升级程序
  • 在这种方法中,将不得不编译程序进行两次升级

  • 与程序更新一起升级数据库更新
  • 在这种方法中,您只需编译程序进行一次升级


    第一种方法

    如果你有很大的变化,这是一个很好的方法。在这种方法中,您将一次进行所有数据库更改,并重新编译所有与更改的文件相关的程序。此重新编译在不对程序进行任何更改的情况下完成。如果您只在文件中添加了新字段,这将非常容易做到。应用程序的工作方式应与以前相同,但数据库已准备好开始进行更改以填充和更新新字段

    下一步是对程序进行必要的更新。由于数据库已经进行了更改,所以现在可以将其分成更小的部分。通过为不同的用户集使用不同的库列表,您可能只能为特定用户激活这些更改,尽管这可能会使数据库有点不一致。如果分阶段是为了测试目的,那么最好使用第三个QA环境进行测试。如果您试图降低风险,只需做一些小的更改,但同时将每个更改都发布给所有人。如果你有一个CMS,它应该归档你的更改,这样你就可以撤销一个糟糕的更改

    第二种方法

    这对于可以快速完成的较小更改是最好的。只需一次性对数据库和程序进行更改,然后一起升级所有内容。如果你有一个CMS,这可能很容易,你仍然有回滚功能。如果您仍在手动管理促销,则由于必须更改的对象的数量,您只能以这种方式进行较小的更改

    注意


    无论哪种情况,CMS都会让你的生活更轻松。我曾在手动促销的地方工作过,也曾在有自动CMS软件的地方工作过。在有适当CMS的地方,推广更容易,风险更小。Rocket软件、Arcade、Soft Landing和其他为IBMi提供CMS软件。这是降低变更风险的关键。

    您好,这是一个非常详细的答案。抱歉,我应该指定我们使用RPG(以及PFs/表格),我们确实使用Arcade进行CMS和交付。它们不提供分阶段推出的解决方案。我以前用过营业额,他们也没有(而且真的很贵!)。正如你所说,某种CMS必须是最好的选择,它消除了痛苦和人为错误。我确信有一个使用CMS分阶段推出的解决方案,因为我无法想象一些大玩家(金融机构等)会接受大爆炸安装。我想我的搜索还在继续!按您的想法分阶段推出将不起作用。您可能会遇到数据问题,因为有些人会使用旧程序更新数据,而另一些人则使用新程序进行相同的更新。您的数据库将变得不一致,这更糟糕。我告诉你财富500强公司是如何做到这一点的。我的经验来自那里。他们将更改分解为可管理的块,并进行较小的更新。Arcade确实是这样处理事情的。要实现您的建议,需要额外的同步软件来处理两个数据库之间的不一致,否则两组用户将无法访问彼此的数据。这增加了很多复杂性和风险。谢谢马克。是的,我想小一点是个不错的方法。我们的一些客户没有或不愿意定期进行升级(我们说的是几个月,有一次是一整年),这使得事情变得棘手。也许我们需要“重新训练”他们!我确实理解同步的问题,这是问题的关键。如何或实际上可能实时同步两个数据库。不幸的是,从事物的声音来看,答案是否定的。感谢您的输入,我们对此表示感谢。不要说同步是不可能的,但它只与您编写的程序一样好。您可能可以使用数据集成工具。但是,即使没有转换,双向同步也是一种痛苦。无论您使用的是什么数据库。