CN101185076A - 用于使第二数据库与第一数据库同步的计算机网络系统及相应过程 - Google Patents
用于使第二数据库与第一数据库同步的计算机网络系统及相应过程 Download PDFInfo
- Publication number
- CN101185076A CN101185076A CNA2006800189604A CN200680018960A CN101185076A CN 101185076 A CN101185076 A CN 101185076A CN A2006800189604 A CNA2006800189604 A CN A2006800189604A CN 200680018960 A CN200680018960 A CN 200680018960A CN 101185076 A CN101185076 A CN 101185076A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- message
- program
- ssp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 59
- 230000008859 change Effects 0.000 claims description 157
- 238000012545 processing Methods 0.000 claims description 93
- 230000001360 synchronised effect Effects 0.000 claims description 49
- 239000002775 capsule Substances 0.000 claims description 44
- 238000012937 correction Methods 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 28
- 238000004458 analytical method Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 238000012384 transportation and delivery Methods 0.000 claims description 4
- 230000000712 assembly Effects 0.000 claims description 3
- 238000000429 assembly Methods 0.000 claims description 3
- 238000004088 simulation Methods 0.000 claims description 3
- 230000006378 damage Effects 0.000 claims 2
- 230000008034 disappearance Effects 0.000 claims 2
- 238000001514 detection method Methods 0.000 abstract description 3
- 238000011084 recovery Methods 0.000 abstract description 3
- 230000002950 deficient Effects 0.000 abstract 2
- 230000006870 function Effects 0.000 description 92
- 238000012546 transfer Methods 0.000 description 31
- 230000005540 biological transmission Effects 0.000 description 26
- 238000013508 migration Methods 0.000 description 22
- 230000005012 migration Effects 0.000 description 22
- 230000006399 behavior Effects 0.000 description 12
- 238000012217 deletion Methods 0.000 description 12
- 230000037430 deletion Effects 0.000 description 12
- 238000003860 storage Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 238000005538 encapsulation Methods 0.000 description 9
- 201000004059 subependymal giant cell astrocytoma Diseases 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 8
- 230000008676 import Effects 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008672 reprogramming Effects 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- PRPINYUDVPFIRX-UHFFFAOYSA-N 1-naphthaleneacetic acid Chemical compound C1=CC=C2C(CC(=O)O)=CC=CC2=C1 PRPINYUDVPFIRX-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99948—Application of database or data structure, e.g. distributed, multimedia, or image
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Abstract
一种计算机网络系统,用于根据/利用第一数据库来对第二数据库进行构建和/或同步,所述计算机网络系统通过至少在第一数据库上执行的工作单元,从至少一个应用程序工作站中进行访问,以生成、改变或删除数据库的内容,其中,至少一个第一服务器,用于指导并保持第一数据库,所述服务器与至少一个应用程序工作站连接;至少一个第二服务器,用于指导并保持第二数据库;至少一个数据连接,用于将两个服务器连接;提供了软件程序模块,以及建立该软件程序模块并对该软件程序模块进行编程,以执行第一数据库与第二数据库之间的比较、获得与两个数据库的信息内容的质量有关的状态,以及从数据比较开始,产生与错误的和/或缺少的记录、以及修正错误的和/或缺少的记录的错误检测和处理功能有关的错误日志文件。
Description
技术领域
本发明涉及用于根据/利用第一数据库构建和/或使第二数据库同步的计算机网络系统和过程。具体地,本发明涉及要将第一、已有的数据库转移至要新近构造的第二数据库的那些计算机网络系统。
背景技术
在具有一个或多个前端站/应用程序和后端的复杂系统中,传统地,以首先迁移前端,然后再迁移后端的方式发生迁移。实际中,出于各种原因(高复杂度,系统的长故障时间),通常不指示前端和后端的同步迁移。首先,在消除了从现有数据库平台至新数据库平台的单步迁移(所谓“大爆炸”)的大DP工程的情况下,出于多种原因(例如,由于还没有完成访问新数据库的所有应用程序,由于仍必须详细研究新数据库的操作行为等),需要一种允许从现有数据库到新数据库的受控、逐渐的转换的系统方式。
此外,通常存在使两个数据库在特定定义的时间点处(例如,在一天的结束处)处于实际一致的状态中的操作需求。换言之,应当在两个数据库系统中连续地保持数据同步,以及用户也应当能够例如使用应用程序软件程序来保持数据。
由于甚至在数据最初从第一数据库传输至第二数据库(初始加载)之后,由于连续保持第一数据库,可以在短时间内出现保存在该数据库中的数据的非常大量的改变,所以需要对于计算时间和转移成本有效的方式。如果在第一数据库中在线保持改变,以及改变尽可能同时(至少接近于实时)在第二数据库中可用,则也增加了系统需求。在一些情况下,对于集体或群体的改变,还需要离线保持(在低操作时),并且必须可以离线保持。
由于通常执行从第一数据库平台至第二数据库平台的迁移,以及出于大多数来自技术或IT观点(快速访问、更加复杂的询问选项、硬件系统平台的改变等)的应用的原因(企业流优化、企业重组等),存在对于第一和第二数据库之间的物理实施方式、结构和组织形式的大部分显著的差别。在第一和第二数据库之间存在对于系统构造(硬件、操作系统、数据库设计和数据库实现)的结构上的显著差别时,尤其加强了这一方面。在这种情况下,不能以相同的方式对要在第一数据库中作出的改变(=现有条目的改变、检测,创建和填充新条目)进行映射,即,在第二数据库中不同(1∶1)。此外,通常改变是复杂的,即,改变影响了第一数据库中的第一多个条目,但是由于不同的结构和组织形式,第二数据库中的不同多个条目,或者输入第二数据库中的不同地改变和/或附加字段。该环境也以与出现在第一数据库中的相同的方式排除了对第二数据库中改变的立即保持。
最后,必须考虑在大DP工程的情况下的通常多个计算机程序应用对数据库进行访问和改变。尤其在类似的在线系统的情况下,该环境(同时访问)对于保持第二数据库的更新的策略具有显著的影响。
由于在包括两个数据库和/或将两个数据库平台彼此连接的网络中消息/数据流的经过次数(times),以及实时或在线环境或甚至混合环境(实时和批处理系统)的其它影响(文件长度、优先级等),不可能直接确保改变对于应用软件程序可用,其中,该应用软件程序以确切地与在第一数据库中所执行的相同的序列来访问第二数据库。换言之,当将数据从一个数据库转移至另一数据库时,该数据可以被早先传输的数据超越。这具有以下不期望的结果:“较旧”改变可以将“较新”改变的数据重设为“旧”值。此外,由于这些影响,可能会出现还未在第二数据库中完全保持记录,从而不完全改变的问题,因而在最后,误差数据对于访问第二数据库的应用软件程序可用。
不是最少地,必须产生作用,从而迁移过程并不显著地(理论上根本不)限制原始数据库的质量、可操作性、性能等。
US 6,223,187 B1(Boothby等)公开了一种计算机实现的方法,用于使位于第一计算机中的第一数据库和位于第二计算机中的第二数据库同步。为此,使用位于第一计算机上的第一历史数据文件,并包含了在终止前一同步时再现第一数据库的记录的记录。在从上次同步起不改变或添加第一数据库的记录的情况下,第一计算机发送第二计算机所使用的第二计算机信息以标识要重新改变的第一数据库的记录。
在该方法中,历史数据文件包含两个数据库的先前同步结果的拷贝。该历史数据文件用于确定数据库中从前一同步起的改变,并重新存储不再发送的记录。如果不存在历史数据文件,则将来自两个数据库的所有记录加载到工作存储器中并进行比较。在这种情况下,同步是如下过程:将两个数据库的记录与历史数据文件进行比较以识别从前一同步起的两个数据库中的每个中的改变、添加或去除,并确定必须对数据库做出哪些添加、去除或更新,以使两个数据库的记录同步。
发明内容
本发明的目的是提供一种计算机网络,它可以有效地使两个数据库平台同步,同时避免了如上所述的先前方法的缺点和问题。
为了实现该目的,本发明提供了具有权利要求1特征的计算机网络系统。
本发明还提供了执行第一和第二数据库之间的比较,以获得与两数据库的信息内容相等有关的状态。从数据比较开始,根据本发明,产生与错误和/或丢失记录有关的报告(错误日志文件)。最后,还提供了对错误和/或丢失记录进行修正的功能。
为此,根据本发明,提供了具有控制表和数据表的数据容器。它用于模拟在第一数据库环境和第二数据库环境中的交易同类(bracket)。还将根据数据比较的错误记录写入该容器。
该错误检测和处理是两数据库之间同步的子功能。它基于错误日志文件和数据容器的结构。在同步期间,将所有消息写入数据容器并从中进行处理。如果在同步期间出现错误,则同样识别数据。然后创建从数据容器至错误日志文件的链接,然后显示/示出错误。
为此,根据本发明,将软件程序组件错误日志文件、数据容器、同步、重新传递和数据相等期间的错误处理组合为一个逻辑单元。允许同步、初始加载和数据相等成分的合并后报告的GUI对于用户可用。还提供了由于条目而手动发起用于数据修正的重新传递的选项。
可以提供重复功能,用于执行对第一和第二数据库之间所识别差异的立即修正。另一功能,重新传递功能包括一组功能:在表中选择第二数据库环境下的错误或丢失记录;生成相应的改变,并经由返回第二数据库环境的同步过程传播该改变。重新传递功能修正以下三种可能错误:
·记录在第一数据库中消失,但是出现在第二数据库中。
·记录在第一数据库中出现,但是在第二数据库中消失。
·记录在第一数据库中出现,但是以错误的内容出现在第二数据库中。
数据比较系统将两个数据库的数据仓彼此比较,并发现尽可能多的差异。如果两个系统上的数据结构几乎完全相同,则可以容易地执行比较。关键问题是在特定关键点(时间上)必须彼此比较地大量数据。
数据比较系统实质上具有三个组件:错误检测,错误分析和错误修正。
一方面,错误检测包括对来自两个数据库的数据进行撤出和处理。为此,计算散列值并彼此比较。如果存在差异,则从适合的数据库中取得数据。错误检测的另一部分是比较程序,该比较程序将来自第一和第二数据库的讹误数据与同步的错误日志文件中的文档差异(以及在数据容器中用于同步的数据)进行详细比较。在数据容器中,存在通过执行重复功能,对将新数据应用于相应数据库的立即尝试。
错误分析包括错误处理的处理功能,用于分析来自错误日志文件和数据容器的数据并将它们彼此链接。然后,由GUI(图形用户界面)显示该数据。然后,如果必要,可以手动执行对包括什么错误的分析。此外,从该GUI中,可以发起所谓批重新传递功能和重复功能(重试)。
在错误修正的情况下,存在3个版本:
·单独记录的重新传递和/或重复功能(重试)。
错误修正将错误数据写入数据容器,从数据容器中启动修正功能。
·部分初始加载或海量更新与初始加载相同。
·在初始加载的情况下,首先删除受到影响的表格。
在错误修正的情况下,尤其对以下数据结构进行读写:
·数据容器
·错误日志
·卸载文件
·散列文件
·转换文件
·比较文件
·重新传递文件
·Q1数据库
对于卸载文件,使用与初始加载-卸载文件的数据结构相同的数据结构。
共存控制器程序定义了为特定记录类型调用的程序或程序组件。需要共存控制器程序将要修正的数据从第一数据库加载至第二数据库环境。
在成功的重新传递的情况下,共存控制器程序将数据容器中的错误条目设置为“完成”。
可以对错误消息和错误数据进行显示(如果需要,则进行分类)。
在数据容器中,可以将从第二数据库的重新调解得到的错误与从两个数据库之间的同步中得到的错误进行区分。附加地提供用于数据的显示、修正和重新传递或重试的功能。
通过根据本发明的功能,减小了数量和错误类型,对两个数据库环境的系统进行并行操作的时间越久。在处理结束(日、周等)之后以及根据记录类型,可以进行重新调解。还可以仅对已经在第二数据库侧要求(询问)的记录进行检查,该记录还没有在第二数据库中被要求(询问)。例如,可以每月一次来检查还未使用的记录。
重新调解发现了两个数据库的系统之间的不同,并对它们进行修正。以这种方式,在第一位置中,检测到还未被同步发现的错误。这些错误可以是:
·第一数据库的系统上的批/在线程序的未封装
·传输路径上的消息和/或文件丢失
·第二数据库系统环境中的程序错误
·两个系统之一的恢复
·不能应用于第二数据库环境中的消息记录。
必须假设可以通过重新传递功能对大多数错误进行修正。可选地,还可以通过另一初始加载或部分初始加载(海量更新)来对第二数据库进行重新加载。
根据要比较的数据库条目和它们的属性,在第一步骤中,确定散列值,并将它们彼此比较。如果它们不同,则在第二步骤中将原始数据项目彼此比较。为此,通过封装模块,首先将散列值,如果需要,在第二步骤中将原始数据项目发送至第二数据库并在那里进行比较。
根据本发明的方式提出了在迁移(阶段)期间的一系列预料不到的优点,以及在操作中:
与容量(volume)和时间需求有关的数据业务量小于使用其它方式的数据业务量,其中,例如,应用软件程序在迁移阶段直接写入两个数据库。调整应用软件程序的成本也很低。最后,由于清楚的分配(根据该分配,仅有封装模块可以访问第一数据库以写入或改变,并根据所定义的规则来将工作单元转换/分解为消息,然后将消息发送至第二数据库),所以用于搜索数据库和/或应用软件程序中误差的费用比较清楚。
此外,建立封装模块,并在访问第一数据库时,对其进行编程以测试是否将原始工作单元(内容不变,但是如果必要,分解或划分为单独的消息)发送至第二数据库,或者将工作单元中产生的改变的条目(如果必要,分解或划分为单独的消息)从第一数据库发送至第二数据库是更加有效的。依据该测试的结果,然后可以发送相应的内容。专门通过封装模块来进行改变第一数据库的所有访问。为此,应用软件程序以及其它(例如,实用)程序并不直接访问第一数据库。作为替代,这些程序向封装模块提出它们对于第一数据库的改变命令,封装模块协调并执行对第一数据库的访问。此外,封装模块将改变(按照以下详细描述的方式)发送至第二数据库。这确保了第二数据库不会“丢失”第一数据库的改变。该过程具有将两个数据库平台统一的作用。
此外,根据本发明的方式允许两个应用程序世界(即,两个不同的复杂的DP系统环境)之间的共存和交互,每个DP系统环境基于自己的数据库核心(即,第一和第二数据库)。在共存和迁移阶段期间,来自应用程序世界的分散工作站和在工作站上运行的应用软件程序没有任何问题地从两个数据库之一实时获取所需数据,并对数据进行处理,以及如果需要,将改变的数据写回(至少第一数据库)。对于数据库的用户来说,甚至可以很明显地,他或她正在与两个数据库进行通信。换言之,由于甚至在用户界面上提供给他或她的内容可以可选地或有指导地访问这两个数据库中的一个或两个,而在单独的情况下用户不可检测到对哪个数据库进行访问,所以用户根本不会注意到两个数据库存在。第一数据库可以是分级数据库(hierarchical database),其中的数据被迁移至相关(第二)数据库、或面向对象(第二)数据库。同样,第一数据库可以是相关数据库,其中的数据被迁移至面向对象(第二)数据库。
由于应用软件程序仅可以在外部访问两个数据库之一(即,第一数据库)以做出改变,而根据第一数据库的改变来跟踪第二数据库,所以两个数据库实际上至少在特定关键时间(例如,一天的结束)处具有相同的内容。
至少在来自至少一个应用程序工作站的第一数据库上执行工作单元所进行的访问,以产生、改变或删除数据库的内容,其中至少一个第一服务器指导并保持第一数据库,所述服务器与至少一个应用程序工作站连接,至少一个第二服务器指导并保持第二数据库,至少一个数据连接将两个服务器连接,通过封装模块发生工作单元对第一数据库的访问,建立封装模块并编程以使得工作单元被传递至此,所接受的工作单元被分解为一个或更多个消息,将该消息输入第一数据库,并将该消息发送至第二数据库。
在迁移阶段期间,由于所有应用软件程序仅访问第一数据库并进行改变,所以仅需要将同步从第一(主)数据库转发至第二(从)数据库。利用封装模块,在另一地点实现也对第一数据库的每个改变执行访问的目标。该地点可以是消息列表(用于实时传输)或批传输文件(用于在批模式中进行处理)。
通过将工作单元(这些工作单元可以是参照应用软件程序处理的事实由应用软件程序(即,用于改变数据库的命令)发起的复杂处理)分解为一个或多个单独的或自身封装的消息,可以在两方面(可以是不同的)均考虑数据库结构。以这种方式,在处理两个工作单元和/或在两个数据库中均保持改变时,不会丢失信息内容。此外,依据与第二数据库相关的第一数据库的结构,可以进行更加有效的访问,它需要较少的通信带宽和计算机/存储器资源。
将“自身封装消息”理解为逻辑上共同属于或来自处理流的数据。可以分级构造该数据:
报头部分1 (例如,创建新客户)
M个分组(1-m) (姓,名,账户管理器等)
报头部分2 (例如,创建新客户的地址)
N个分组(1-n) (街道,城市,国家等)
报头部分3 (例如,创建附加数据)
O个分组(1-o) (爱好,生日等)
项目3
P个分组
项目2
Q个分组
项目1
还可以在第二数据库中生成或使用新的或与第一数据库不同的组织结构或标准(搜索或分类标准)。这也简化了第二数据库的操作,并提高了对第二数据库进行访问的效率,同时可以基于实际相同的数据来同步地操作第一数据库。
根据本发明方式的另一优点在于,由于直至现在仅访问了第一数据库的应用软件程序需要新的数据切换协议来访问第二数据库,所以可以逐渐地执行迁移。因此,可以连续地、不可由应用软件程序的用户检测到地执行迁移。应用软件程序的用户可见的用户界面可以保持不改变。
使用根据本发明的方式的特定适合区域是与事务数据(即,账户移动、排序、传递、产品处理数据等)对照的主数据,即,客户数据、伙伴数据、产品数据、处理数据等。
本发明的有利发展和可选项
在本发明的优选实施例中,建立封装模块,并在由封装模块将具有标识每个消息的第一标识符的消息发送至第二数据库之前,对其进行编程以提供该消息。在这种情况下,建立封装模块并对其进行编程以从优选中央单元中获取第一标识符,该中央单元形成了第一标识符作为时间戳或序列号。这确保了可以以正确的序列来处理单独的消息,并将所述消息以正确的方式(与工作单元)关联。
封装模块利用与第二数据库相关的每个改变或消息来发送标识符。如果改变的起点在第一数据库中,则以第二数据库的每个改变来跟踪该标识符(通常是时间戳)。
每个消息包含第一数据库的要改变或生成的内容,和/或第一数据库的改变或生成的内容,并存储于第一和/或第二数据库中。封装模块生成的每个消息共同具有技术报头部分、应用程序报头和内容部分(旧和新)。内容部分(旧和新)由包括多达若干千字节的字符序列构成。内容取决于封装类型、更新类型(存储、修改、删除)和所传输的内容类型。
换言之,依据要执行的动作,消息包含用于要执行的动作的代码、第一数据库的要改变或生成的内容、和/或第一数据库的改变的或生成的内容。
由封装模块来填充消息结构如下,并且优选地,同样应用于批模式中:
更新类型 | 应用程序报头部分 | 旧内容 | 新内容 |
存储(S) | X | x! | |
修改(M) | X | X | X |
删除(D) | X | X |
以确保必须在消息中经由基础结构来物理地转发尽可能少的“空”数据项目或初始化结构的方式,在消息中提供数据。这与数据安全相关。
利用所有三个更新类型“存储”、“修改”和“删除”来填充报头部分和旧内容,改变之前的数据是旧内容,以及改变之后的数据是新内容。在“删除”的情况下,旧内容填充了物理删除之前的最后数据。在“删除”更新类型的情况下,仅填充旧内容,而在“存储”更新类型的情况下,仅填充新内容。
界面的描述:
名称 | 内容 |
COEX-MUTPRG | 改变程序的程序名称 |
COEX-AGENTC | 代理代码 |
COEX-APCDE | 应用程序代码 |
COEX-NL | 处理分支 |
COEX-UFCC-E | 程序功能代码 |
COEX-UPTYP | 更新类型S=存储M=修改D=删除(擦除) |
COEX-USERID | 责任人的USERID |
COEX-PAKET-TIME-STAMP | 消息的日期和时间(YYYYMMDDhhmmssuuuuuu) |
COEX-REC-TIME-STAMP | 改变的日期和时间(YYYYMMDDhhmmssuuuuuu) |
COEX-NL-KD | 分支 |
COEX-KDST | 客户代码号 |
COEX-OBJID | 对象标识/DB1关键字段 |
COEX-RECTYP | 记录类型(来自DB1或TERM的记录类型,TERM记录不包括数据部分) |
COEX-REC-SEQUENCE | (在TERM=每个分组的最高序列号的情况下,分组内的)记录序列号 |
COEX-ORIGIN | 记录起点0=初始加载1=重新传递(来自DB1)2=同步3=重新调解4=功能性(DB1)5=在线同型(DB2) |
COEX-REQUEST-TYPE | O=在线处理B=批处理 |
COEX-RESYNC-ID | 来自TAPCONLINEPACKAGE(或TAPCONLINEDATA)或来自TAPCBATCHPACKAGE(或TAPCBATCHDATA)的用于重新传递的原始关键字 |
COEX-RESYNC-STATUS | 包含DB1重新传递功能的返回代码 |
COEX-RESERVED | 保留 |
COEX-DATA | 记录,旧和新 |
报头部分中的COEX-RECTYP描述了包括在旧内容和新内容中的数据类型。在功能性封装(以下描述)的情况下,该属性包含特定的事务代码;即所谓项目消息。
因此,尤其,每个消息包括以下标识数据:消息时间戳(标识了数据库1处理)和序列号(定义了处理内的正确处理序列)。可以理解,本发明的实施方式并不绝对需要在上述表格中列出的所有参数。
如前所述,建立封装模块,并编程以将分解工作单元所得到的多个消息、以及第一标识符存储于项目消息中,然后封装模块将该项目消息发送至第二数据库。这确保了不对属于与第二数据库相关的一个工作单元的所有消息进行处理,直至将这些消息一起发送至第二数据库并到达第二数据库。这有效地防止了由于并行或几乎同时发起的批处理过程、由于不同文件长度导致的DP网络中的不同通过时间等,而引起与数据库字段相关的较旧数据“超越”与相同数据库字段相关的较新数据,从而最终在第二数据库中产生误差的条目。以相同的方式,防止了以不正确的顺序在第二数据库中处理或输入彼此功能相关的数据项目,从而保持了所谓的引用完整性。以这种方式,考虑了第二数据库侧上一系列相互无关的更新。
因此,建立封装模块,并对其进行编程以将要发送的消息和项目消息放入输出等待队列,可以将这些消息从该队列中发送至第二数据库的控制器的输入等待队列。
至少只要设计以上述方式从第一数据库发送数据,根据本发明的方式就在第二数据库侧提供了控制器(优选地,建立该控制器,并编程以读取从输入等待队列发送至该控制器的消息),用于检查属于一个工作单元的所有消息是否到达了输入等待队列,用于在属于一个工作单元的所有消息已经到达了输入等待队列时,在第二数据库中执行适合的改变,以及如果需要依据特定条件来分发相应的改变或包含这些改变并属于一个工作单元的消息,则至少部分地分发至其它数据库或应用程序。
换言之,输入等待队列用作存储箱,其中将属于一个工作单元的消息添加作为单独的部分,以及控制器仅在接收到属于该工作单元的所有消息时,才开始改变具有消息内容的第二数据库。这确保了在改变第二数据库时,输入内容不超越彼此,因而不会误差地改变。尤其在触发了结果改变的改变情况下,这是避免误差改变的机制。
每个消息的报头部分在到达第二数据库的控制器时被转发至第二数据库或优选未改变的控制器,同样数据部分旧/新也如此,在报头部分与数据部分之间,可以插入第二数据库的特定部分。这可以是相关数据库条目的单独的属性(即,第二数据库特定的例如16个数字的代码)。依据消息类型,这可以是账户ID、商务联系ID或地址ID等。控制器将相同的界面(即,相同格式的相同信息)转发至在单独的情况下起作用的所有共存程序元件。
对于(部分地)管理数据的自动保持,所谓批处理程序在第一数据库中可用。与第一数据库的实时保持无关地管理(监视并控制)这些批处理程序。批处理程序主要用于处理大量数据。尤其,这些程序为第三方准备文件,产生列表并执行内部处理,如所有的说明对象类型xyz的海量改变(mass change)。
由于这些集中改变必须经由封装模块来访问第一数据库,所以与应用软件程序的单独访问类似地,本发明提供了:根据本发明,优选建立封装模块,并依据到达预定参数进行编程,以将来自批处理运行的工作单元分解为相应的消息,并将它们写入转移数据库,从而在到达了预定参数之后,转移数据库的内容被传输至第二数据库。
最后,还存在集中改变与单独改变之间的中间解决方案,其中,以批处理运行来执行集中改变,并通常通过应用软件程序来执行单独改变。在这种中间解决方案中,经由宏例程来提出乘性改变了第一数据库的应用软件程序。以这种方式,可以以批处理运行的方式,经由来自工作站的应用软件程序,在没有建立并处理实际批处理运行的情况下,执行相对少量(例如,100的数量级)的改变。
还建立封装模块,并依据到达预定参数进行编程,以将来自批处理运行的工作单元分解为相应的消息,并将它们写入转移数据库。还提供了监视器软件模块,在达到了预定参数之后,建立该监视器软件模块,并进行编程以将转移数据库的内容传输至第二数据库。为此,在达到了预定参数之后,监视器软件模块开始将转移数据库的内容发送至第二数据库。预定参数可以是预定时间,例如,每10-30分钟,或一天的特定时间(例如,在几乎没有数据业务量的夜晚),数据的预定数量或类似。
优选地,然后将转移数据库的内容作为一个或多个封闭的批传输文件传输至第二数据库。可以总是将共同属于的消息群输入封闭的批传输文件中,并不分发至两个独立的批传输文件。由于具有适合的代码,所以可以识别出单独的批传输文件序列。为此,每个批传输文件具有文件报头,从文件报头中可以看出在什么上下文中、具有什么命令需求、在什么日期、在一天中的什么时间等创建了批传输文件。此外,在误差的情况下,监视器可以再次按需发送特定的批传输文件。
与在第一数据库侧,封装模块如何防止或执行对第一数据库的所有访问的方式类似,在第二数据库侧,根据本发明的控制器优选地确保了以控制器进行控制的方式专门地改变第二数据库。因此,优选地,也将包含转移数据库内容的批传输文件传输至第二数据库的控制器用于进一步处理。
对于从第一数据库接收数据的每个数据库或应用程序,优选地,第二数据库的控制器具有共存元件程序模块,建立该模块并进行编程,以使相关数据库或应用程序的数据同步,并执行与属于在第二数据库或应用程序中、或与相关应用程序关联的数据库中的输入等待队列中的一个工作单元的消息相对应的改变。与此相关,为了寻求统一的接口设计,必须以与从第一数据库接收数据的数据库或应用程序相同的方式来处理第二数据库。仅有的重要差别在于,在所有其它数据库或应用程序之前更新第二数据库。
对于第二数据库和/或其它数据库或应用程序的控制器,要向共存元件程序的与此相关的信息提供在表格中优选保存哪些内容。为此,对于存在共存元件程序模块的每个数据库或应用程序,在二维表中保存通过名称来标识数据库或应用程序的行。因而可以容易地添加新数据库或应用程序。对于每个改变或消息,即,对于数据库的每个属性,使用列。在这些列中,可以输入三个不同的值:{0,1,2}。“0”表示相应的数据库或应用程序不需要该属性或不能对它进行处理;“1”表示相应的数据库或应用程序可以对该属性进行处理,但是仅在值发生改变时提供该处理;以及 “2”表示相应的数据库或应用程序可以对该属性进行处理,并在任何情况下提供该处理。
在第二个三维表格中,优选地,保存“消息类型”、“数据库或应用程序”和 “数据库属性”。对于每个消息类型,根据本发明,优选存在二维子表格。对于存在共存元件程序模块的每个数据库或应用程序,在二维子表格中保存列。通过其名称来标识数据库或应用程序。因而可以容易地添加新数据库或应用程序。对于每个属性,在二维子表格中可以存在行。在此可以输入两个不同的值:{0,1}。“0”表示消息的该属性不影响数据库或应用程序。“1”表示消息的该属性会影响数据库或应用程序。本发明还提供了在表格中交换行和列的选项。
以下也在本发明的范围内:保存并保持用于第二数据库或其它数据库或应用程序的控制器的信息,而不是在表格中、在链状、可能多维组织的数据对象结构中。
根据本发明,还建立第二数据库的控制器并进行编程,从而可以将属于一个工作单元的消息传输至适合的共存元件程序模块,通过该模块对这些消息进行进一步处理。优选地,建立适合的共存元件程序模块,并编程以在通过适合的共存元件程序成功地进行了进一步处理之后,在表格中设置OK标记,和/或与误差处理表格中的适合共存元件程序的名称一起输入NOK标记(不OK标记),从而它们对于显示器和/或重新处理或误差修正是可用的。
根据本发明,提供了优选地,通过还未被共存原始程序成功地进一步处理的消息(其中,由第二数据库的控制器再次发送至用于重新开始后的进一步处理的适合共存元件程序还未成功地进一步处理该消息)、通过将消息(其中,通过第二数据库的控制器,来自第一数据库的共存元件程序还未成功地进一步处理该消息)重新传递至用于重新开始后的进一步处理的适合的共存元件程序、或者通过从第二数据库中删除还未被共存元件程序成功地进一步处理的消息,来对还未被共存元件程序成功地进一步处理的消息进行重新处理或误差修正。
根据本发明,优选地,消息分组包含应用于第一数据库的交易的1至n个消息。消息可以与多个共存程序元件相关。还可以在第二数据库环境中的一个交易中,对第一数据库的一个交易的所有消息(所谓分组)进行处理。重新传递可以将第一数据库分组的所有消息重新传递至第二数据库。可以将这种分组识别为意欲重新传递。定期的批处理运行可以选择所有识别后的分组,将要重新传递的消息写入文件,并将该文件传输至第一数据库。在第一数据库中,可以读取文件,以及可以经由同步结构,将相应的消息传输至第二数据库。在第二数据库的环境中,可以对重新传递后的分组进行处理,以及可以给予识别后的和重新传递后的分组以错误状态“重新传递的”。
根据本发明,重复功能可以通过共存程序元件再次处理不能通过控制器被成功地处理的分组。在序列和/或结构问题的情况下存在该功能的使用。
根据本发明,终止功能可以将分组的错误状态设置为“完成”错误状态。可以将用于共存程序元件中的每一个的分组设置为“完成”。
根据本发明,重新处理或误差修正可以将第二数据库的控制器的输入数据(实时提供的数据和批处理提供的数据)与错误数据库中记录的错误事件链接,并且可以将它们存储于错误报告数据库中。在第二数据库的控制器的数据库中结合了重新处理或误差修正的数据。如果来自从第一至第二数据库的交易的消息不能应用于第二数据库,则优选地,它们保持在第二数据库的控制器的数据库中,其中,通过重新处理或错误修正对它们进行处理。
当记录错误事件时,优选地,将出现错误事件的消息存储为初级关键字。因而在错误分析中,可以将错误事件条目分配给该消息。由于或如果在重新处理或错误修正中,错误事件条目不参阅消息而参阅分组,因而这是必要的。
根据本发明,在错误的情况下,外部应用软件程序将尽可能有差异和有意义的错误消息写入错误事件条目,从而错误分析并不占用过量的时间。这简化了在程序中的错误搜索。
根据本发明,对控制器的两个肯定应答对于共存元件程序可用。依据传递回哪个肯定应答,第二数据库的控制器具有不同的行为。
错误 | 支持功能 |
1.错误检测 | ·可能的错误状态的有差异的识别·用于记录错误的错误记录功能的接口 |
2.错误记录 | ·错误记录功能·记录错误事件·存储不能被处理的输入消息;确保不能被处理的消息与所有关联错误条目的链接 |
3.错误分析 | ·显示错误概况显示错误表的所有输入消息的列表·根据错误状态、起始日期和时间、截止日期和时间、分支、顾客代码号、对象ID、消息类型、改变程序来设置滤波器·显示错误改变的细节显示输入消息和/或它的内容 |
·所生成的错误消息显示属于输入消息的所有错误条目·调用重复功能·调用重新传递 | |
4.错误修正 | ·重复功能重复功能可以对第二数据库的控制器不能成功处理的分组进行再次处理·重新传递重新传递可以从第一数据库重新传递第二数据库的控制器不能成功处理的分组·终止终止功能可以将第二数据库的控制器不能成功处理的分组手动设置为“完成”错误状态 |
在序列问题的情况下,重新处理或错误修正使重复功能可用。如果共存元件程序识别出序列问题,则可以通过肯定应答来重复自动尝试。以下对肯定应答、它的允许值及其意义进行描述。
根据本发明,在所有“警告”和“例外”错误事件的情况下,用户第二数据库环境中的软件程序组件使用错误报告数据库来输入错误或传递操作监视。以下表格描述了如何对错误事件进行分类。
状态 | 肯定应答 | 描述 |
OK | 00 | 成功处理。不包括错误处理/重新处理。 |
警告 | 04 | 执行处理,但是应当再次检查。 |
例外 | 08 | 可以执行并终止所期望的处理。将所有资源重新设置为原始状态。在输入生效的情况下,可以在终止处理之前记录多个错误。 |
强制终止(例外) | 12 | 提供批处理的状态。如果发生,则应当终止整个处理(程序停止)。 |
为了实现封装模块对不同需求的可用性,通过参考数据建立并编程以控制功能。参考数据可以控制封装模块,从而改变第一数据库,和/或将一个或多个消息发送至第二数据库。
在本发明的优选实施例中,建立封装模块并对其进行编程,以依据逻辑开关将消息发送至第二数据库,优选地,在外部和/或由程序来控制逻辑开关。
封装模块提供功能,从而可以将在第一数据库的环境中由应用软件程序发起的在线或批处理改变发送至第二数据库。由参考数据表来控制封装模块的功能。参考数据控制消息是否要发送至第二数据库。根据本发明,通过两个(或多个)开关来控制对第二数据库的跟踪。例如,对于每个商业单元,第一开关定义了是否要跟踪第二数据库。对于每个应用软件程序,第二开关控制是否要在第二数据库中跟踪由该应用软件程序发起的改变。因此,仅在两个开关都“开”,即,对于该商业单元,要跟踪第二数据库(第一开关),以及当前应用软件程序包含要跟踪第二数据库的条目(第二开关)时,才跟踪第二数据库。通过这些功能,确保了对数据库平台的精确控制的迁移。
这里,将“功能封装”理解为表示将单独属性的所有改变传输至第一和/或第二数据库。这可以以受控制的方式并以较低传输成本来将所有改变转发至其它软件程序组件。然后,这些软件程序组件在第二数据库环境中执行功能(修改、删除、插入)。通过从第一数据库至第二数据库的各个功能,由工作单元的应用程序产生至第一数据库的改变后的条目。可选地,通过从第一数据库至第二数据库的各个消息,由工作单元的应用程序产生至第一数据库的改变后的条目。在最后提及的基于记录的同步或封装的情况下,如果出现第一数据库的改变,则对所有改变后的记录(=数据库条目)进行第一至第二数据库的同步。在功能同步或封装的情况下,如果出现第一数据库的改变,所有改变后的记录不但从第一数据库同步至第二数据库,而且对发送至交易的原始消息进行转发。同样,还应用于从第二数据库返回第一数据库的同步。
根据本发明的方式确保了日处理的不同结束(或其它时间处的最终处理)的持续时间并不改变太多,从而不能在所提供的时间段内推断出有关的处理。在第二数据库中,在几秒内,成功地推断出根据本发明方式的对在线改变的跟踪。对于跟踪第二数据库中的批处理改变,几十分钟(20-40分钟)是足够的。
通过本发明,可以确保由封装模块检测到用于第一数据库的每个改变,并将它发送至第二数据库,其中,
·在转移至第二数据库期间,不可能伪造改变,
·改变也到达第二数据库,
·以正确的序列将改变应用于第二数据库中,
·如果在第二数据库中异常地结束处理,则可以重新启动,或者进行错误处理;由处理单元控制的引用是可能的;确保了数据的一致性,以及
·可以通过调解来修正两个数据库之间不可预见的不一致性(例如,应用程序错误)。
尤其对于搜索误差和理解过程,有利地,如果对在第一数据库和/或第二数据库中执行的改变的改变证明进行记录,则优选地,在适合的数据库或在工作数据库中。它的典型情况是顾客住所的改变。
使用功能封装的本质原因在于,改变后的记录个数是不可预见的,以及在单独改变的情况下,会导致大量的必然改变。交易一旦记下相对大量(近似100或更大的数量级)的改变呼叫,整个系统的性能便显著恶化。这表示,响应时间延长至几秒,因而由于超时而终止交易。如果第一数据库的结构可以每秒处理不多于20-30个持续的消息,则交易的跟踪冗余数据导致了这种超时。
第一数据库特定属性的改变一触发第一数据库其它属性的非特定改变数,功能从属性便存在。
根据本发明,还可以提供至少一个软件程序组件,通过该软件程序组件,在从第一数据库的一个应用程序工作站发起的交易的情况下,可以在第二数据库上调用同型交易,反之亦然,在这种情况下,从应用程序工作站的角度,第二数据库侧的同型交易的行为与第一数据库侧的对应交易类似。
根据本发明,结合第一和第二数据库的共存,同型交易的方式具有以下优点:对于客户机和分散的应用程序,(后端)数据库平台的迁移是透明的,即,不可见。该方式还允许例如通过比较两侧的数据库内容,来测试第二数据库平台的新组件。不一致性指示第二数据库侧的错误。另一优点在于,可以逐步地进行迁移(例如,一个分支接着另一个分支)。
将交易从第一数据库平台移植(port)至第二数据库平台的环境中作为所谓的同型交易的目标和目的在于,在第二数据库平台的环境中,在第一数据库平台处存在的功能、服务和数据应当尽可能迅速地可用。根据本发明,使用相同的源程序(所谓单源概念)。这可以在迁移阶段中保持(以及如果必要,修改)仅一个源代码,即第一数据库平台的源代码。但在第二数据库平台的环境中激活同型交易时,不改变应用软件程序的接口/至应用软件程序的接口。因此,应用程序不受到该移植和激活的影响。
此外,通过第一数据库数据的移植/迁移及至第二数据库平台的功能,由于可以修正交叉系统(cross-system)替换的任何技术问题,所以显著地简化了多个软件程序组件对第一数据库的替换。
同型交易由一个或更多个软件程序模块组成。例如,软件应用程序模块是Cobol程序,它包含处理逻辑指令,并经由基元(primitive)访问系统。基元由宏组成,例如,以德尔塔计算机语言写宏。宏在第二数据库环境(与第一数据库环境中的接口相同)中可用,但是访问后台中的新Cobol模块。Cobol模块使用第二数据库的结构来确保在根据旧功能的新环境中进行处理。
因此,移植第二数据库环境中的同型交易基于与第一数据库环境中的“原始”交易相同的Cobol程序代码。换言之,第二数据库环境中的同型交易是第一数据库环境中适合的交易的相同副本,具有在第二数据库侧模拟的系统环境的实质差异。
结合(例如)Cobol编程语言的应用软件程序和交易程序的上述移植,可以继续执行针对第一数据库环境中的软件的保持工作,然后继续将转移代码(甚至自动地)更新为第二数据库的环境。
由于第二数据库环境中的同型交易的接口精确地与第一数据库环境中的原始交易相对应,所以可以精确地配置是否及应当如何使用第一数据库环境中的原始交易或第二数据库环境中的同型交易。只要第一数据库环境是主,便经由第一数据库环境中的原始交易来执行数据仓(data stock)的所有改变。然而,在第二数据库环境侧会可选地已经激活一些只读同型交易。在该时间段内,在第二数据库环境和第一数据库环境之间进行记录定向和功能的同步。对于功能同步,在第二数据库作为主的时刻之前,可以使用一些修改或写入同型交易。为此,对已经在第一数据库环境中进行了处理的相同消息进行传输。然而,不再必须使同型交易侧的输入重新生效。
在第一数据库侧实时(在线)执行的改变已经使用了第一数据库的封装模块。该封装模块可以使所有改变后的记录从第一数据库同步至第二数据库(记录同步)。在第二数据库侧,将记录发送至主共存控制器,该主共存控制器在第二数据库平台的环境中跟踪共存元件程序和相应的应用程序元件(软件组件)。移植一次封装模块,然后使它适于第二数据库的环境。这样,可以经由主共存控制器,将数据库内容的改变发送至第二数据库平台环境中的共存元件程序和相应的应用程序元件(软件组件)。
修改同型交易使用与记录同步相同的机制,以写入第二数据库和第二数据库平台环境中相应的应用程序元件(软件组件)。
在所有同型交易对于第二数据库环境可用之后,可以将第二数据库定义为主。此时起,经由同型交易进行所有实时(但也是批处理)改变,这在第二数据库的成功改变之后触发了与第一数据库的同步。在该阶段独占地、功能性地发生该同步,即,将所有输入消息或交易未改变地传递至第一数据库并在那里进行跟踪。一旦推断出该阶段,便可以替换同型交易。
然而,由于以这种方式,相同的数据和功能在第一和第二数据库侧均可用,所以同型交易还可以用于第一数据库至第二数据库的功能同步。如以上所述,甚至对于从第二数据库至第一数据库的任何相反的同步,因而可以同样地使用所有信息以保持两个系统的同步。
根据本发明,结合第一和第二数据库的存在,同型交易的方式具有以下优点:对于客户机和分散的应用程序,(后端)数据库平台的迁移是透明的,即,不可见。该方式还允许例如通过比较两侧的数据库内容,来测试第二数据库平台的新组件。不一致性指示第二数据库侧的错误。另一优点在于,可以逐步地进行迁移(例如,一个分支接着另一个分支)。
总之,必须陈述的是:同型交易的方式可以用于确保两个数据库的功能同步。同型交易还可以用于将第二数据库保持为主,并同样用于第一数据库,以及不会对接口产生实时影响。同型交易可以用于逐步实现单独的软件程序组件的构造。如果在第二数据库的环境中,一些软件程序组件还不可用作主(master),则可以将这些单独的软件程序组件用作备份。
只要在第一数据库中发生改变,以及仅在之后在第二数据库中发生改变,第一数据库便是主数据库。在这段时间内,将第二数据库作为第一数据库的从属进行管理。
一旦在第二数据库上发生改变,以及仅在之后在第一数据库中发生改变(如果需要),第二数据库便是主数据库。在这段时间内,将第一数据库作为第二数据库的从属进行管理(如果需要)。为了能够执行该步骤,所有同型交易必须出现。此外,在实时或批处理操作中,不再允许应用软件程序访问第一数据库进行写入。
一旦首先在软件程序组件中执行在第二数据库环境中相关的所有改变,以及仅在之后在第二数据库中(如果需要,在第一数据库中)对所述改变进行跟踪,软件程序组件便可以是主组件。在这种情况下,将第二数据库和第一数据库均作为从属进行管理。为了实现这种状态,第二和第一数据库的所有数据必须出现于软件程序组件中,并由这些软件程序组件进行管理。
当第一数据库环境中的应用软件程序不需要来自第一数据库的更多的数据时,可以仅结束第一数据库中的保持。
从第一数据库环境或从第二数据库环境中,依据改变的起点来区分两个同步方向。因此,改变的起点定义了:对于特定交易和特定处理单元或分支,第一还是第二数据库是主数据库。在迁移期间,对于一个交易,第一数据库是特定处理单元的主数据库,以及同时第二数据库是其它处理单元的主数据库。
在沿从第一至第二数据库方向的同步情况下,同步是记录定向或功能性的。将交易分为三类。这可以对要移植的应用软件程序进行次序区分。
第一类型的交易触发了记录定向(即,数据库条目定向)的同步。具体地,如果在第一数据库中仅有一些条目受到这种改变的影响,则必须使用这些交易。
第二类型的交易触发了功能同步。具体地,如果在第一数据库中有相对较大数量的条目受到这种改变的影响,则必须使用这些交易。
在记录定向同步的情况下,封装模块将通过第一数据库的交易改变的所有条目传输至主共存控制器。首先,主共存控制器调用第二数据库环境的共存元件的共存效用程序,以将第一数据库的条目和/或改变带入第二数据库环境。在第二数据库条目成功改变之后,主共存控制器调用应用软件程序的共存元件和/或共存效用程序(例如,伙伴),它们包含从第一至第二数据库和/或至第二数据库环境中的应用软件程序的自适应规则(映射逻辑)。
在这种情况下,不需要第一数据库环境的同型交易将数据成功地带入第二数据库环境。
在功能同步的情况下,不是将通过一个或多个交易改变的第一数据库的那些条目实时地经由封装模块传输至主共存控制器,而是将发送至第一数据库交易的原始输入消息实时地经由封装模块传输至主共存控制器。由于消息标识符,主共存控制器识别出包括输入消息而不是记录消息,并将处理直接转发至执行相同处理的第一数据库的同型交易的那一个。当也移植第一数据库的封装模块时,也经由第一数据库的同型封装模块进行第二数据库的所有改变。该同型封装模块将改变作为记录消息发送至主共存控制器,如在记录同步调用应用软件程序的共存元件和/或共存效用程序(伙伴)的情况下,包含从第一至第二数据库和/或至第二数据库环境中的应用软件程序的自适应规则(映射逻辑)。
在这种情况下,同型交易用于以正确的格式(例如,作为从属记录)将数据带入第二数据库,并用于触发与应用软件程序的同步。然而,由于在第一数据库的环境下,内容已经生效,所以不在第二数据库的环境下执行在线生效。仅在第二数据库为主数据库时才激活第二数据库环境中的内容的生效。这也使之后从第二至第一数据库的功能(相反)同步成为可能。尽管以记录定向的形式继续发生从第二数据库环境下和/或从第二数据库至应用软件程序中“流下”的改变,但是在该同步方向的情况下,独占地、功能性地进行从第二至第一数据库的同步。
由于两侧(第一和第二数据库平台)的交易是相同的,所以经由第一数据库环境中的同型封装模块,独占地发生所有改变。封装模块使用数据库宏来同步地修改第二数据库。然后,封装模块也将相同的记录发送至主共存控制器(如同在记录同步的情况下,将相同的记录发送至应用软件程序的共存元件和/或共存效用程序),从而使它们可以同步。
不同于传统方式,现在本发明的方式有利地提供了以后端开始的迁移。这具有以下优点:在前端侧,即应用工作站、GUI、用户软件等侧,不需要改变(或者仅需要改变一点),从而迁移并不对用户产生影响。
通过根据本发明的功能封装,同样地或至少尽可能与它在第一数据库中那样类似地实现了包括在后续处理中、考虑第二数据库的新数据库结构和数据结构的逻辑。根据本发明,优选地,使用同型交易来实现。主共存控制器可以在线或作为批文件来获得改变消息。由于特定的记录类型或消息类型,可以检测包括由于功能封装的消息。然后,主控制器可以调用根程序并移交消息。根程序可以调用相应的同型交易。与迁移和调整后的封装程序合作,现在,由于主控制器通常接收自第一数据库,所以同型交易可以创建第一数据库的记录旧/新(具有数据库条目旧/新和/或改变任务)。然后,可以将这些记录放入输出等待队列,以及然后主控制器可以将它们当作来自第一数据库来进行处理。仅在报头部分中才设置特定代码(COX ORIGIN),从而可以根据记录来自何处进行检测。这对错误分析十分重要。
附图说明
图1示出了在第一和第二数据库各自的环境中的第一和第二数据库的示意表达,以及两个数据库之间的通信机制。
图2示出了控制器表格的概念性、标准化模型,它指示改变与第二数据库平台的哪个应用程序元件(软件组件)相关。
图3-7基于流程图解释了存储并插入数据的情况下的行为、在修改数据情况下的行为、在改变案例的情况下的行为、以及在删除案例的情况下的行为。
图8基于流程图,对单独记录的错误修正进行解释。
图9基于流程图,对文件的错误修正进行解释。
具体实施方式
在图1中,左侧示出了第一数据库DB1的数据库结构,以及右侧示出了第二数据库DB2的数据库结构。在工作站WS1...WSn上,通过在上面运行的应用软件程序,在工作单元UOW的框架中发起第一数据库DB 1的改变。将这些改变转发至所谓封装模块KM(经由公司范围或全世界的数据网络,未示出)。建立封装模块KM,并进行编程以将传输至封装模块KM的工作单元UOW分解为一个或多个消息M1...Mn,以在第一数据库DB1中制作相应的条目并将消息M1...Mn发送至第二数据库DB2。由于封装模块KM来自工作站W1...Wn以访问第一数据库,所以优选地,建立封装模块KM,并进行编程以测试它是否对于不改变内容地(但是如果需要,将内容分解或划分为单独的消息)将原始工作单元UoW发送至第二数据库DB2,或者将从工作单元UoW的应用程序中得到的改变后条目发送至第一数据库DB1(如果需要,将内容分解或划分为单独的消息)更加有效(关于在第二数据库DB2环境中的传输持续时间和传输质量和/或处理成本)。依据该测试的结果,然后发送相应的内容。
对于实际上在相应的工作站UoW的到达和处理之后立即发生封装模块KM将消息M1..Mn发送至第二数据库DB2,软件模块nrt Xfer(接近于实时转移)用于越平台的消息传输。这用于数据库同步,以将发生于在线处理的对时间临界的(time-critical)改变几乎实时地传输至第二数据库DB2,从而也可以在第二数据库平台上对从第一数据库平台发送的消息进行处理。
以与输入在线改变任务的上述转移相类似的方式,还存在从批处理任务中得到的、以及批处理代理Batch传递至封装模块KM的工作站UoW。
以与在线情况相同的方式,建立封装模块KM,并进行编程以将由批处理代理Batch传输至封装模块KM的工作站UoW分解为一个或多个消息M1...Mn,从而在第一数据库DB1中制作相应的条目,并将消息M1...Mn发送至第二数据库DB2。为此,由于由批处理代理Batch移交原始工作站UoW以访问第一数据库,所以封装模块KM还测试从第一数据库DB1至第二数据库DB2,它是否对于不改变内容地(但是如果需要,将内容分解或划分为单独的消息)将原始工作单元UoW发送至第二数据库DB1,或者将从工作单元UoW的应用程序中得到的改变后条目发送至第一数据库DB1(如果需要,将内容分解或划分为单独的消息)更加有效(关于在第二数据库DB2环境中的传输持续时间和传输质量和/或处理成本)。依据该测试的结果,然后发送相应的内容。并不将该内容直接发送至第二数据库DB2,而是写入转移数据库Q1,从该转移数据库Q1中,发生越平台文件转移。为此,使用了用于访问转移数据库Q1的监视器和用于以文件定向方式与第二数据库平台同步地传输转换为消息的来自批处理的改变的文件转移程序。
在第二数据库平台DB2侧,使用主共存控制器COEX来获得改变消息(在线或作为批处理文件)。主共存控制器COEX包含彼此相互作用的多个程序模块:ONL-IN模块、ONL-OUT模块、BAT-OUT模块和VERTEIL-REGELWERK(分布控制器)模块。
通过来自第一数据库平台的在线软件模块nrt Xfer,利用消息来调用ONL-IN模块,并将来自第一数据库的移交消息放入共存数据库COEX-DB。由于交易的数据和项目详细可以以任何序列到达,所以在共存数据库COEX-DB中收集消息,直至已经传输了交易的所有消息。为了确定交易消息的完整性,对于每个交易,管理DB2表中的分组消息,DB2表接收并保持到目前为止的来自第一数据库的当前传输的消息数,以及来自第一数据库DB1的消息总数。
通过主共存控制器COEX进行寻址的第二DB2表用于存储来自第一数据库的消息以进行进一步处理。
在对来自第一数据库DB1的消息进行临时存储之前,以所传输的来自第一数据库DB1的消息作为参数来调用VERTEIL-REGELWERK模块。以下详细描述的VERTEIL-REGELWERK模块返回OK或必须退回条件。在OK的情况下,首先利用用于COEX软件组件的提供的标志,在COEX数据库DB中更新指针的当前行。在错误的情况下,在不对在线代理软件模块nrt Xfer进行进一步处理的情况下,返回必须退回条件。
一旦已将来自交易的第一数据库DB1的消息完全地传输至第二数据库平台,便由ONL-IN发起对ONL-OUT模块的调用。
在这种情况下,调用作为具有发送新请求的异步调用来发生。在调用时,从第一数据库移交交易的关键字。这包括来自第一数据库的交易的“分支”和/或“分组时间戳”字段。
ONL-OUT模块读取技术上正确的序列中的程序循环中的数据,即,来自第一数据库DB1的交易、并临时存储于共存数据库(在线)的消息,并将该数据依次传输。这通过消息的报头部分中的序列号进行支持。因而在从共存数据库(在线)读取之后,分为两个或多个行或列的消息可以放回到一起。
在对来自第一数据库的交易的所有消息进行成功的处理之后,最终,将用于相关交易的控制消息标记为完成。以这种方式,释放该交易的数据以用于之后的逻辑重组。
BAT-OUT模块是批处理代理,它包含在第一数据库平台的环境中用于顺序读取由批处理代理所提供文件的读取例程,并控制工作单元UoW。在消息(由报头部分、数据库条目旧、数据库条目新组成)的每个读取之后,调用VERTEIL-REGELWERK模块,以及将消息作为参数传输。该模块不被TERM记录调用。
为了将访问和网络负载最小化,在每一情况下,不将消息或包含于其中的数据库条目写入共存数据库(批处理)。作为替代,将整个分组读入BAT-OUT模块,并在程序存储器中保存,要求分组不超过预定大小。在分组过大时,仅将分组写入共存数据库(批处理)。然后,进行与在ONL-OUT中相同的处理,并提供了相应的共存应用程序元件(软件组件)。根据位置,从程序存储器或共存数据库(批处理)中获取数据。如果不能对分组进行处理,则必须将分组写入共存数据库(批处理)。
VERTEIL-REGELWERK模块接收来自第一数据库平台的消息旧(改变前状态)和来自第一数据库平台的消息新(改变后状态)作为输入数据。将每个“旧”属性与“新”比较,以确定属性是否改变了。如果已经发生了改变,则经由表格(见图2)建立与该改变相关的应用程序元件(软件组件)。对于每个软件组件,消息获得了识别是否与组件相关的标志。图2示出了用于控制器表格的概念上的标准化模型。依据性能需求,这些可以以不同的方式来实现。
以下关键字表格可以有效地设置实际控制器数据的参数:REFERENCE_REC
意义:在该关键字表格中,为记录类型来保存以下字段:
·REC_ID (PK)
·RECTYPE 记录类型,例如,D201
·DB2_ID 是否必须确定DB2关键字的标识符
REFERENCE_SWCOMP
意义:在该关键字表格中,为COEX应用程序元件(软件组件)保存以下字段(例如,CCA):
·SWCOMP_ID,(PK)
·SWCOMP,软件组件的名称,例如,CCA
·ACTIVE,标志(值范围Y/N),软件组件的(去)激活
REFERENCE_COLS
意义:在该关键字表格中,为记录类型保存以下字段:
·REC_ID,PK,与REFERENCE_REC.REC_ID相对应
·COL_NO,PK,序列号
·COL_NAME,记录类型中的字段名称
为了控制处理,提供以下表格:
ACTIVE_NL
意义:数据的(去)激活转移至每个分支的软件组件。这控制了是否将分支的数据(不考虑数据类型)转发至软件组件。
字段:
NL,PK,分支,例如0221
·SWCOMP_ID,PK,与REFERENCE_SWCOMP.SWCOMP_ID相
对应
·ACTIVE,标志(值范围Y/N),
·分支和SWCOMP_ID的组合的(去)激活
DELIVERY
意义:定义了将记录类型转发至软件组件的条件。通过字段来定义该条件,例如:如果在记录类型01(=D201)中改变了字段02或04或05,则必须将记录转发至软件组件01(=CCA)。
字段:
·REC_ID,PK,与REFERENCE_REC.REC_ID相对应
·SWCOMP_ID,PK,与REFERENCE_SWCOMP.SWCOMP_ID相
对应
·COLNO_CHG PK,与REFERENCE_COLS.COL_NO相对应
·DELIVERY标志(值范围Y/N)
·REC_ID,SWCOMP_ID,COL_NO组合的(去)激活
在本发明的优选实施例中,由第一数据库的封装模块创建的消息具有以下属性。作为这里的属性,保存允许对第一和第二数据库的处理控制的字段。
05 COEX-IDENT. * **消息识别
10 COEX-MUTPRG PIC X(06). * **改变程序的名称
10 COEX-AGENTC PIC X(02). * **代理代码
10 COEX-APCDE PIC X(02). * **应用程序代码
10 COEX-NL PIC X(04). * **处理分支
10 COEX-UFCC-E PIC X(03). * **程序功能代码
10 COEX-UPTYP PIC X(01). * **更新类型
* S=存储
* M=修改
* D=删除(擦除)
10 COEX-USERID PIC X(06). * **负责人的USERID
10 COEX-PAKET-DATUM-ZEIT. * **分组的时间戳
15 COEX-PAKET-DATUM PIC 9(08). * **分组的日期
(YYYYMMDD)
15 COEX-PAKET-ZEIT PIC 9(12). * **分组的时间
(HHMMSSuuuuuu)
10 COEX-RECORD-DATUM-ZEIT. * **改变的时间戳
15 COEX-RECORD-DATUM PIC 9(08). * **改变的日期
(YYYYMMDD)
15 COEX-RECORD-ZEIT PIC 9(12). * **改变的时间
(HHMMSSuuuuuu)
10 COEX-ID. * **数据识别
15 COEX-KDID. * **顾客识别
20 COEX-NL-KD PIC X(04). * **分支
20 COEX-KDST PIC X(08). * **顾客代码号
15 COEX-OBJID PIC X(20). * **对象识别
10 COEX-RECTYP PIC X(04). * **记录类型
10 COEX-REC-SEQUENZ PIC 9(08). * **记录序列号
(没有分组)
10 COEX-ORIGIN PIC X(01). * **记录的起点
* 0=初始加载
* 1=重新同步
* 2=同步
* 3=重新调解
* 4=RIPEROS
10 COEX-REQUEST-TYPE PIC X(01). * **处理代码
* O=在线处理
* ′B′=批处理
10 COEX-RESYNC-ID PIC X(32). * **初级关键字
TAPCONLINEPACKA
GE
10 COEX-RESYNC-STATUS PIC X(02). * **DB1的返回代码
重新传递功能
10 COEX-RESERVED PIC X(06). * **相反,从而报头保
持150字节长
COEX-DATEN PIC X(10600). * **第一数据库数据
的空间
在字段COEX-PAKET-ZEIT中,在交易同类的开始处引入时间戳。在字段COEX-REC-ZEIT中,引入改变的时间戳。必须确保每个记录类型和每个记录的唯一性。字段COEX-OBJID初始化为空格。在字段COEX-REC-SEQUENCE中,输入记录序列号(分组内的记录序列号,例如,TERM=每个分组的最高序列号)。在字段COEX-REQUEST-TYPE中,在输入经由批处理的输出的情况下,输入“B”=批处理,或者输入“O”=在线处理。
在初始加载时,将以空格填充字段COEX-RESYNC-OF,在重新同步时决不能改变,以及在重新调解时以错误代码填充该字段。字段COEX-USERID包含触发了改变的用户ID。甚至对于批处理传输,也必须由封装模块再次进行填充。字段COEX-PAKET-ZEIT包含分组、或者交易同类(transaction bracket)开始的日期和时间(YYYYMMDDhhmmssuuuuuu)。交易同类的所有记录具有相同的时间戳。字段COEX-REC-ZEIT包含改变的日期和时间(YYYYMMDDhhmmssuuuuuu)。必须确保每个记录类型和每个记录的唯一性。该时间戳用于双时间(bitemporal)数据保持的检测时间。这表示在BiTemp字段BTMP_UOW_START中输入该值。字段COEX-REC-TYPE包含在封装模块情况下最新的“TERM”记录。这标记了交易同类的结束。字段COEX-REC-SEQUENCE包含记录序列号(分组内的记录序列号,如TERM=每个分组的最高序列号)。利用分组中的记录序列号,可以恢复交易同类内的改变序列。依据用于初始加载的记录的起点{0,1,...,4},字段COEX-ORIGIN包含来自第一数据库的重新同步、同步、重新调解和应用程序软件。这是共存服务、应用程序软件和错误处理所需要的。
依据在第二数据库环境中的处理类型,字段COEX-REQUEST-TYPE包含{O,B}:O=在线处理,B=批处理。以这种方式,可以对与(批)处理有关的第二数据库环境中的服务进行优化。在重新同步的情况下,字段COEX-RESYNC-OF包含错误ID,并识别重新同步所参考的错误表格条目。以这种方式,在接收到重新同步时,可以对错误表格中的条目状态进行更新。字段COEX-BTX-ID对用于初始加载的重新同步进行标记,并识别重新同步所参考的表格条目。以这种方式,在接收到重新同步时,可以对错误表格中的条目状态进行更新。封装模块描述了COEX-PAKET-ZEIT,COEX-REC-ZEIT,COEX-REC-SEQUENCE字段,它们映射了来自第一数据库的交易同类。
对于第一数据库的数据旧一新,在报头部分中提及的作为‘空格’的10600个字节是可用的。记录旧和记录新之间的物理边界是可移动的,这取决于使用什么结构。在每种情况下,长度不固定但是指定的。作为示例,以下列出了CIF主记录D201的记录或副本。该副本与第一数据库的数据库记录的数据描述相对应。
*************************************************************************
* *
* 记录:D201SSP NON-DMS COB85 长度:1644字节 REL:0.1 *
* *
* 生成:14.08.2001 最后改变:30.08.2001 *
* 描述:迁移接口 *
* *
*************************************************************************
05 D201-FILLER-0-SSP PIC X(12).
05 D201-DATA-SSP.
10 D201-DATMUT-SSP PIC 9(08). ***顾客改变日期
10 D201-HATIKD-SSP PIC X(36). ***顾客具有指示符
10 D201-HATIKDR-SSP 重新定义D201-HATIKD-SSP PIC X(01)
出现36次
***顾客具有指示符
10 D201-STATREC-SSP PIC X(01). ***顾客状态
10 D201-FLAGKD-SSP PIC X(72). ***顾客评论
10 D201-FLAGKDR-SSP 重新定义D201-FLAGKD-SSP PIC X(01)
出现72次.
***顾客评论
10 D201-FLAGKD2-SSP PIC X(72). ***顾客评论
10 D201-FLAGKD2R-SSP 重新定义D201-FLAGKD2-SSP PIC X(01)
出现72次.
***顾客评论
10 D201-FLAGKD3-SSP PIC X(72). ***顾客评论
10 D201-FLAGKD3R-SSP 重新定义D201-FLAGKD3-SSP PIC X(01)
出现72次.
***顾客评论
10 D201-FLAGKD4-SSP PIC X(72). ***顾客评论
10 D201-FLAGKD4R-SSP 重新定义D201-FLAGKD4-SSP PIC X(01)
出现72次.
***顾客评论
10 D201-FLAGKD9-SSP PIC X(72). ***顾客评论
10 D201-FLAGKD9R-SSP 重新定义D201-FLAGKD9-SSP PIC X(01)
出现72次.
***顾客评论
10 D201-NLFLAG-SSP. ***分支应用程序指示符
15 D201-NLFLAGKD-SSP PIC X(01)出现18次.
***分支应用程序指示符
10 D201-ADID-SSP. ***地址ID;
15 D201-KDID-SSP. ***顾客ID;
20 D201-NL-SSP PIC X(04). ***分支
20 D201-KDST-SSP PIC X(08). ***顾客代码号
15 D201-ADRLNR-KD-SSP PIC 9(04). ***顾客地址序列号
10 D201-AGENTC-SSP PIC X(02). ***代理代码
10 D201-C1D201-CC-SSP. ***以下属性:D201的技术组
15 D201-B1D201-CC-SSP. ***D201-DOMZIL,D201-NAT的技术组
20 D201-DOMZIL-SSP PIC X(05). ***住所
20 D201-NAT-SSP PIC X(03). ***国籍
20 D201-AWIRTCf-SSP PIC 9(01). ***所在地公司
15 D201-B3D201-CC-SSP. ***D201-BRANC,D201-BRA的技术组
20 D201-BRANC-SSP. ***D201-BRANC1和D201的技术组
25 D201-BRANC1-SSP PIC X(01). ***UBS部门代码
25 D201-BRANC2-SSP PIC X(03). ***UBS部门代码
20 D201-BRANCHE-SSP PIC X(05). ***NACE代码(部门代码)
20 D201-FILLER-1-SSP PIC X(03).
15 D201-B2D201-CC-SSP. ***D201-SPRACH的技术组
20 D201-SPRACH-SSP PIC 9(01). ***语言代码对应
10 D201-C2D201-CC-SSP. ***不同地址信息的技术组
15 D201-U1D311-CC-SSP. ***具有各种地址属性的D201-C2D201-CC的子组
20 D201-ADRLNR-SSP PIC 9(04). ***地址序列号
20 D201-VERSART-SSP PIC 9(01). ***派发类型
20 D201-VERSFC-SSP PIC 9(01). ***派发能力代码
20 D201-LEITWG-SSP. ***路由
25 D201-BETREU-SSP PIC X(08). ***路由负责人
25 D201-DATLWGAB-SSP PIC 9(08). ***有效起始日期
25 D201-DATLWGBI-SSP PIC 9(08). ***有效截止日期
20 D201-ADRESSE-SSP. ***地址;D201-AD4M24较高等级组
20 D201-AD4M24-SSP PIC X(24)出现4次 ***4×24形成地址
20 D201-AD2M24-SSP PIC 9(01)出现2次. ***短地址
20 D201-NAMEI2-SSP PIC 9(05)出现2次. ***姓
20 D201-VORNAMI2-SSP PIC 9(05)出现2次. ***名
20 D201-ORTI2-SSP PIC 9(05)出现2次 ***地点
20 D201-VERSRT-SSP. **派发类型
25 D201-LANDC-SSP. ***传递国家
30 D201-LANDC1-SSP PIC X(03). ***传递国家
30 D201-LANDC2-SSP PIC X(02). ***传递国家的州
25 D201-TARIFC-SSP PIC X(01). ***关税代码
25 D201-PLZ-SSP PIC X(10). ***邮编
25 D201-PLZ-PF-SSP PIC X(10). ***邮编邮局邮箱地址
15 D201-U2D201-CC-SSP. ***D201-KUART和D201-D的技术组
20 D201-KUART-SSP. ***顾客类型
25 D201-KDGR-SSP PIC X(01). ***顾客群
25 D201-REKUART-SSP PIC X(02). ***当地顾客类型
20 D201-DATGR-SSP PIC 9(08). ***生日或成立日期
10 D201-BETREU-B1-SSP PIC X(08). ***顾客负责人(数字1-4=
组织单元)
10 D201-BETREU-B2-SSP PIC X(08). ***专家负责人
10 D201-PERS-SSP PIC X(02). ***员工代码
10 D201-BCNR-SSP PIC X(06). ***银行清除号
10 D201-DATGAB-SSP PIC 9(08). ***自某日起的顾客
10 D201-DATGBI-SSP PIC 9(08). ***顾客去激活日期
10 D201-DATKON-SSP PIC 9(08). ***死亡或银行破产日期
10 D201-DATUM-MIG-SSP PIC 9(08). ***迁移日期合并SBC->UBS
10 D201-INTCODE-SSP. ***感兴趣的字段
15 D201-IGC-SSP OCCURS 10 TIMES. ***感兴趣的字段
20 D201-IGI-SSP PIC X(02). ***感兴趣的字段-识别
20 D201-IGN-SSP PIC X(02). ***感兴趣的字段-内容
10 D201-FLAGFAP-SSP PIC X(72). ***外部应用程序的应用程序指示符
10 D201-FLAGFAPR-SSP 重新定义D201-FLAGFAP-SSP PIC X(01)出
现72次.
***外部应用程序的应用程序指示符
10 D201-VIANZ-SSP PIC 9(05). ***派发指令数
10 D201-BOKUOC-SSP PIC 9(01). ***交换顾客条件(BOKUKO)
出现
10 D201-BOKUKO-SSP 依据D201-BOKUOC-SSP出现0至1
***交换顾客的特定条件;
15 D201-KUKO-SSP PIC 9(01). ***特定顾客条件
15 D201-STEKA-SSP PIC 9(01). ***州邮编
15 D201-BROKCA-SSP PIC 9(03)V9(04). ***CA的以%表示的计算基础
15 D201-DEPAUT-SSP PIC 9(01). ***安全账户指令(自动)
15 D201-GENLI-SSP PIC 9(01). ***一般传递系统的代码
15 D201-DPSTELLE-SSP PIC X(04). ***安全账户位置
15 D201-ABWKU-SSP PIC 9(01). ***特定处理条件
15 D201-SEGA-SSP PIC 9(01). ***与SEGA连接的顾客
15 D201-KUTYPS-SSP PIC 9(02). ***交换相关顾客类型定义
15 D201-STATI-SSP PIC 9(01). ***统计分析
15 D201-COUKON-SSP PIC 9(01). ***回扣惯例
15 D201-STEAD-SSP PIC 9(01). ***收件人邮编
15 D201-INTKTO-SSP PIC 9(01). ***内部账户
15 D201-ABSCHB-SSP PIC 9(01). ***推断银行为证券账户位置
的代码
15 D201-TRAX-SYM-SSP OCCURS 2 TIMES. ***订单传输的符号
20 D201-TRAX1-SSP PIC X(05). ***---no dsc---
20 D201-TRAX2-SSP PIC X(03). ***---no dsc---
15 D201-CEDEL-SSP PIC X(01). ***Cedel参考代码
15 D201-FILLER-2-SSP PIC X(03).
15 D201-TITELTYP-SSP PIC X(02)出现9次. ***标题类型
15 D201-SOFSPEZ-SSP PIC X(02). ***Soffex特定账户
15 D201-LFZHCH-SEG-SSP. ***向瑞士传递支持SEGA标题
20 D201-LFZH-CSA-SSP PIC X(08). ***向瑞士传递支持SEGA标题
20 D201-LFZH-CSO-SSP PIC X(08). ***向瑞士传递支持SEGA标题
15 D201-LFZHCH-BC-SSP. ***向瑞士传递不支持SEGA标题
20 D201-LFZH-CBA-SSP PIC X(08). ***向瑞士传递不支持SEGA标题
20 D201-LFZH-CBO-SSP PIC X(08). ***向瑞士传递不支持SEGA标题
15 D201-LFZHUEB-SSP 出现7次. ***向国家传递并共享
20 D201-LFZHLAND-SSP PIC X(03). ***向国家传递并共享
20 D201-LFZH-AKT-SSP PIC X(08). ***向国家传递并共享
20 D201-LFZH-OBL-SSP PIC X(08). ***向国家传递并共享
15 D201-CALAND-SSP 出现9次. ***用于国家和安全类型的CA计算
20 D201-CA-LAN-SSP PIC X(03). ***用于国家和安全类型的CA计算
20 D201-CAVORCD-SSP PIC X(01). ***用于国家和安全类型的CA计算
20 D201-CABROKCA-SSP PIC 9(03)V9(04). ***用于国家和安全类型的CA
计算
10 D201-U3D201-CC-SSP. ***技术组
15 D201-KONTRANR-SSP PIC X(06). ***缩小的参与方数
10 D201-SEGANR-SSP PIC X(06). ***SEGA订户号
10 D201-U4D201-CC-SSP. ***D201-ZUGRIFFB和D20的技术组
15 D201-ZUGRIFFB-SSP PIC X(02). ***具有受限访问权的对象
15 D201-ZUGRIFFB-ALT-SSP PIC X(02). ***前一职员的最后的
′ZUGRIFFB值′
10 D201-KDGR-DH-SSP PIC X(01). ***缩小用于余度计算的参与方
顾客组
10 D201-KUTYPS-EM-SSP PIC 9(02). ***用于发行的顾客类型
10 D201-FLAGMKG-SSP PIC X(36). ***将整个银行的选择者推向市场
10 D201-FLAGMKGR-SSP 重新定义D201-FLAGMKG-SSP PIC X(01)
出现36次
***将整个银行的选择者推向市场
10 D201-FLAGMKN-SSP PIC X(18). ***将分行的选择者推向市场
10 D201-FLAGMKNR-SSP 重新定义D201-FLAGMKN-SSP PIC X(01)
出现18次
***将分行的选择者推向市场
10 D201-GRUPPANL-KD-SSP PIC X(02).
10 D201-FILLER-3-SSP PIC X(01).
10 D201-M2000-SSP.
15 D201-BETREU-1-SSP PIC X(08). ***EBS顾客结论(关系)
15 D201-TELNO-1-SSP PIC X(15). ***未保持
15 D201-BETREU-KD-SSP PIC X(08). ***信用官员
15 D201-TRXKT-A-SSP PIC X(15). ***交易账户的账户识别
15 D201-KTONR-TRX-SSR重新定义D201-TRXKT-A-SSP. ***交易账户的帐号
(特权)
20 D201-KTOST-TRX-SSP PIC X(08). ***交易账户的户主
20 D201-KTOZU-TRX-SSP PIC X(02). ***交易账户的账户增加
20 D201-KTOLNR-TRX-SSP PIC 9(04). ***交易账户的账户序列号
20 D201-FILLER-4-SSP PIC X(01).
15 D201-TRXKT-UL-SSP PIC X(15). ***交易账户的账户识别
15 D201-KTONR-UL-SSP REDEFINES D201-TRXKT-UL-SSP. ***交易账户的
帐号(企业)
20 D201-KTOST-UL-SSP PIC X(08). ***交易账户的户主
20 D201-KTOZU-UL-SSP PIC X(02). ***交易账户的账户增加
20 D201-KTOLNR-UL-SSP PIC 9(04). ***交易账户的账户序列号
20 D201-FILLER-5-SSP PIC X(01).
15 D201-FILLER-6-SSP PIC X(03).
15 D201-KDSEGM-1-SSP PIC X(03). ***顾客段
10 D201-GRP-ZUG-SSP PIC X(08). ***组成员代码
10 D201-RSTUFE-SSP PIC X(05).
10 D201-RSTUFE-RIS-SSP 重新定义D201-RSTUFE-SSP.***风险阶段;
15 D201-RSTUFE-K-SSP PIC X(03). ***组风险阶段
15 D201-RSTUFE-R1-SSP PIC X(02). ***风险阶段
10 D201-SEX-SSP PIC X(01). ***性别代码
10 D201-RUECKST-ART-SSP PIC X(01). ***A/B保留类型
10 D201-RUECKBET-A-SSP PIC S9(17) 导致分离的符号
***保留量A
10 D201-CRRI-SSP PIC 9(03). ***CRRI(信用风险责任指示符)
10 D201-TARIFC-KD-SSP PIC X(01). ***顾客想要的关税代码
10 D201-RKAT-SSP PIC X(02). ***风险类别
10 D201-FILLER-7-SSP PIC X(01).
10 D201-TELNO-P-SSP PIC X(15). ***私人电话
10 D201-TELNO-G-SSP PIC X(15). ***业务电话
10 D201-KRATING-SSP PIC 9(05)V9(02). ***所计算的率值,瑞士区域
10 D201-KUSEGM-RAT-SSP PIC X(02). ***顾客段率值
10 D201-DATUM-TEL-SSP PIC 9(8). ***最后的电话银行使用的日期
10 D201-ORGANSCH-NR-SSP PIC X(04). ***公司组
10 D201-SALDGSF-DUR-SSP PIC S9(15)V9(02)导致分离的符号出现2次
***在某月的最后交易日的资产
10 D201-STATUS-KC-SSP PIC X(01). ***Key-Club订户状态
10 D201-EROEFDAT-KC-SSP PIC 9(08). ***Key-Club开放日
10 D201-DELDAT-KC-SSP PIC 9(08). ***Key-Club关闭日
10 D201-STATUS-KS-SSP PIC X(01). ***Keyshop订户状态
10 D201-EROEFDAT-KS-SSP PIC 9(08). ***Keyshop订制的开放日
10 D201-DELDAT-KS-SSP PIC 9(08). ***Keyshop订制的关闭日
10 D201-DOMZIL-BO-SSP PIC X(05). ***受益人的住所
10 D201-DATSTUD-SSP PIC 9(08). ***学习的结束
10 D201-BETREU-ANR-SSP PIC X(08). ***intermed(投资组合管理者)
10 D201-GREG-SSP PIC X(02). ***国家、区域或大区域代码
10 D201-LANDC-RSK-SSP PIC X(03). ***住所风险
10 D201-NAT-BO-SSP PIC X(03). ***受益人的国籍
10 D201-GEPA-SSP PIC 9(01). ***私人银行公司代码
10 D201-JUZU-SSP PIC X(02). ***法人(附加标识符)
10 D201-TOGE-SSP PIC X(04). ***子公司代码
10 D201-KUKO-ART-SSP PIC 9(02). ***顾客联系类型
10 D201-DATUM-KDK-SSP PIC 9(08). ***顾客联系的日期
10 D201-KMU-MA-SSP PIC X(02). ***SME的雇员数量
10 D201-RES-3-SSP PIC X(06). ***经济计划
10 D201-VERMGNV-GES-SSP PIC S9(15)V9(02)导致分离的符号
***多个户主、顾客在某月的最后交易日的资产
10 D201-VERMGNL-GES-SSP PIC S9(15)V9(02)导致分离的符号
***多个户主、顾客在某月的最后交易目的资产
10 D201-DATUM-HR-SSP PIC 9(08). ***商业登记条目的日期
10 D201-DATUM-CAP-SSP PIC 9(08). ***开始资产的开始日期
10 D201-ADID-KC-SSP. ***用于Key-Club通信的第三方地址ID
15 D201-KDID-KC-SSP. ***用于Key-Club通信的第三方地址ID的顾客ID
20 D201-NL-KC-SSP PIC X(04). ***第三方地址的顾客ID的分支
20 D201-KDST-KC-SSP PIC X(08). ***第三方地址ID的顾客ID的
顾客户主
15 D201-ADRLNR-KC-SSP PIC 9(04). ***第三方地址ID的地址ID
的地址序列号
10 D201-DATUM-MM-SSP PIC 9(08). ***Multimat的最后使用日期
10 D201-DATUM-TB-SSP PIC 9(08). ***电话银行的最后使用日期
10 D201-KREDIT-AWK-SSP PIC X(02). ***信用过程的费用类别
10 D201-BETREU-STV-SSP PIC X(08). ***替换负责人
10 D201-DATUM-AUS-SSP PIC 9(08). ***员工的退休日期
10 D201-PLANING-FIN-SSP PIC X(02). ***经济计划
10 D201-RES-4-SSP PIC X(02). ***保留字段
10 D201-RES-5-SSP PIC 9(08). ***保留字段
************************记录D201-SSP的结束***************************
在COBOL程序中,该接口使用两次,一次作为′alt′(旧)以及一次作为′neu′(新):
*PARENT(Root):InputRecord
01 SSP-COEX-REQUEST-BLOCK.
*Header
COPY AHVCHEAD.
*data
02 COEX-DAT-D201.
*------------------------------------------------------
* COEX-RECTYP=′D20 1′
*------------------------------------------------------
03 D201-COEX-ALT.
COPY AHVCD201.
03 D201-COEX-NEU.
COPY AHVCD201.
对于数据库改变(写入、重写、擦除),传统地,使用以下DB原语:
.ADD DBWRITE,RECORD
.ADD DBREWR,RECORD
.ADD DBERASE,RECORD
原语由以德尔塔写入的宏和Cobol模块组成。宏使相同的接口对于第一数据库和第二数据库均可用,但是可以在后台访问新的Cobol模块。Cobol模块使用第二数据库的基础结构组件,以根据旧功能(即,如在第一数据库平台环境中)来提供在(第二数据库的)新环境中的处理。
封装模块用于使用在第一数据库的(子)数据库上的DBWRITE,DBREWRITE和DBERASE原语,对访问第一数据库并具有改变效果的所有软件程序进行封装。
根据本发明,一旦改变了第一数据库或它的(子)数据库之一,变调用一般模块。这进行了似乎可信的检查并调用了子模块(DBWRITE模块,DBREWRITE模块和DBERASE模块:改变证实模块)而不是上述DB原语。参数字段描述了包括哪种改变类型。一般模块包含相应的DB原语,并负责在第二数据库进行跟踪。为了确保多个程序的改变不被混合,对于每个逻辑处理过程,形成一分组。逻辑处理过程通常将与工作单元相对应。这基于称为CI0010的模块的以下示例进行阐述:
模块CI0010
参数
·T001ACA
·P005PPVC
·CI0010-RECORD-ALT
·CI0010-RECORD-NEU
P005PPVC尤其包含以下字段:
·P005PPVC-DB1-UPDATE 跟踪第一数据库(Y/N)
·P005PPVC-SSP-UPDATE 跟踪第二数据库(Y/N)
·P005PPVC-MUTPRG 程序或交易名称
·P005PPVC-NL 处理分支
·P005PPVC-NL-S 负责人的分支(在线)
·P005PPVC-TZE 终端中心单元(在线)
·P005PPVC-TRID 终端识别(在线)
·P005PPVC-UFCC-E 程序功能代码(在线)
·P005PPVC-UPTYP DB更新类型
D=删除(擦除)
M=修改(重写)
S=存储(写入)
·P005PPVC-USERID 负责人的用户ID(在线)
·P005PPVC-SACHBKZ 负责人的短代码(在线)
·P005PPVC-KDID 顾客ID
·P005PPVC-OBJID 对象ID/地址序列号
·P005PPVC-RECTYP 4字符记录类型(例如K001)
·P005PPVC-FUNKTION 调用功能
I=初始工作单元
P=处理工作单元
T=终止工作单元
A=IPT(即使每个单元一个记录)
·P005PPVC-TRANSFER-KEY逻辑工作单元的关键字
·P005PPVC-STATUS 返回状态(与T001-STATUS相对应)
CI0010的调用
使用T001ACA来调用″CI0010″
P005PPVC
CI0010-RECORD-ALT
CI0010-RECORD-NEU
根据本发明,每个逻辑工作单元包含以下模块调用:
·利用“初始化”功能的一次调用(打开第二数据库的分组)
·利用处理功能“处理”的N-1次调用(插入分组中的写入、重写、擦除)
·利用“终止”功能的一次调用(关闭第二数据库的分组)
经由批处理程序发生的DB改变并不直接(在线)传输至第二数据库,但是首先存储在转移数据库Q1中。由封装模块打开并关闭该数据库。
在监视器的控制下,将转移数据库Q1的内容合并于文件中,并通过文件转移发送至第二数据库平台。
以下,将第二数据库平台环境中的数据库组件中的流作为示例进行解释。共存元件可以用于在线同步、批处理同步和第二数据库的初始加载。
可以对序列问题(在在线同步中,消息彼此追赶,或者在在线与批处理同步之间的差异)进行如下处理:
·通过在第二数据库的数据改变之前读取该数据。为此,在第二数据库平台的应用程序和(子)数据库中,读取改变之前的数据,并将相关字段与消息中的那些字段进行比较。要改变的字段应当具有与第二数据库中相同的版本,如‘旧’消息。
·可选地,可以将第一数据库的时间戳与第二数据库的时间戳进行比较。将第一数据库的改变时间戳‘相对’存储于第二数据库中。在改变之前,对时间戳进行比较。在第二数据库中的第一数据库相对存储的改变时间戳必须比来自消息的第一数据库的新时间戳旧。
·最后,在另一可选项中,可以并行地将数据保存在第二数据库DB2中(双时间)。在这种情况下,可以简单地插入每个记录。基于第一数据库的改变时间戳来管理第二数据库DB2中的时间序列。对于DB2当前测试DB1旧排除了任何序列问题。经由代码表来控制该处理。对于第二数据库的应用数据程序,必须将控制器设置为“关”。
基于图3-7的流程图来解释在存储和插入数据情况下的行为、在修改数据情况下的行为、在案例改变情况下的行为、以及在删除案例情况下的行为。
在第一数据库平台DB1中,通过“顾客号”来唯一地识别条目(主数据、个人等),最后,对具有多个顾客号的一个顾客类似于多个不同的顾客进行管理。为此,定义对象(账户、安全性、证券账户),并通过类似构造的账户、证券账户、安全号码等来识别所述对象。然后,总是将这些对象分配给一个顾客。
相反,在第二数据库平台DB2中,通过“DB2标识符”来统一并唯一地识别所有条目、顾客和对象。这些“DB2标识符”完全独立于第一数据库平台DB1的“顾客号”。
在两个数据库平台的整个共存阶段内,提供了对第一数据库的号码与“DB2标识符”之间的稳定解译。为此,使用由共存控制器所管理的“解译表”。
通过特定软件程序组件“参与方目录”来实现关系DB1顾客号<->“DB2标识符”(顾客)(见图1)。在软件程序组件“合约目录”中实现关系DB1对象号<->“DB2标识符”(对象)(见图1)。
利用从第一数据库接收至第二数据库的第一生产数据来建立这些关系,并且以每个数据接收和/或数据跟踪进行扩展。
从第一生产数据接收的时刻起,便不再改变这些关系;仅对它们进行“扩展”或补充。
这些关系之一的丢失使得必须恢复相应的目录。
在将DB1号解译为相关联的“DB2标识符”的情况下,该过程是根据以下算法:
对于DB1号,相应的“DB2标识符”已经存在于软件程序组件“参与方目录”或软件程序组件“合约目录”中了吗?
如果“是”,则使用所发现的DB2’标识符。
如果“不是”,则生成“新的”、唯一的DB2标识符并将其与DB1号一起输入软件程序组件“参与方目录”或“合约目录”的相关关系。
但最新打开DB2标识符时,将绝对必需的伴随属性输入第二数据库平台。可以使用该最新打开的DB2标识符。
在第二数据库平台环境中的任何地点调用并处理该算法,其中,必须确定DB1号的相应DB2标识符。这包括(尤其)以上描述的迁移访问、“同型”交易、应用软件程序CCA、SPK、ALP、BD/BTX、DB2(见图1),在第二数据库侧针对主数据进行操作的所有用户定向服务。
对于该转发转换算法,优选地,提供了用于批处理操作的一个变体和用于在线操作的一个变体。对于这两种实施方式,针对相乘并行使用进行设计。
对于保护共存(例如,“同型交易”)的流和交易,还需要从DB2标识符至关联DB1号的解译。为此,优选地,提供了用于批处理操作的一个变体和用于在线操作的一个变体。对于这两种实施方式,同样针对相乘并行使用进行设计,以及在该相反解译的结果中,还优选地输出顾客或对象的最重要属性。
通过共存控制器中的ONL OUT和BAT OUT模块(见图1)来分发至不同共存应用软件程序CCA、SPK、ALP、BD/BTX、DB2(见图1)的改变消息,根据这些共存应用软件程序,使从第一数据库DB1到达第二数据库平台的消息继续传递。将改变消息传输至那些应用软件程序CCA、SPK、ALP、BD/BTX,以及第二数据库DB2,其中,这些应用软件程序具有仅由它们保持的自己的数据保存(数据库)。在该示例中,这些是参与方、合约和产品目录、核心现金账户(CCA)和其它应用软件程序的数据库。以与共存控制器类似的方式,改变消息传输所至的单独的应用软件程序中的每个具有输入消息缓冲器ENP。在所述缓冲器中,可以对成组的关联消息进行识别。在共存控制器中对所述关联消息进行收集,并将它们作为整个一组共同放置在受影响的应用软件程序的输入消息缓冲器ENP中。分发至应用软件程序的逻辑根据以下原理:
·仅将整个(即,完整的)改变消息放置在受影响的应用软件程序的输入消息缓冲器ENP中。没有单独属性的例外。
·在关联记录组的情况下,仅发送整个组合后的消息。
·如果受到改变或消息的“影响”则应用软件程序仅接收在它的输入消息缓冲器ENP中的消息。
对于每个输入改变或消息,基于“旧”/“新”记录来确定改变了什么属性。需要将这作为输入参数,以在以下详细描述的表格“属性-影响-应用-软件-程序”中确定,除了第二数据库DB2之外,改变/消息要发送至哪些应用软件程序。这并不应用于“插入”和“删除”消息。此外,也在以下详细描述的表格“记录-类型-分发”受到消息/改变的“影响”。共存控制器相应地控制消息/改变的分发。
“记录-类型-分发”表格是手动保持的静态表格。ONL OUT和BAT OUT模块为每个应用软件程序读取该表格,但是从不写入该表格。
该表格具有二维:组件和记录类型。
·对于每个组件(应用软件程序),存在行。通过组件的名称来识别组件,例如,参与方、合约和产品目录、核心现金账户(CCA)等。可以随时添加新组件。
·对于封装模块KM所发送的每个记录类型,存在列。将功能上的封装后的交易消息中的每个计数为独立的记录类型。
在该表格的单独字段中,可以存在值{0,1,2}。它们具有以下意义:
·“0”:组件不对记录类型感兴趣。
·“1”:组件基本上对记录类型感兴趣,但是仅在收到改变后的属性影响时才接收消息(见以下)。
·“2”:组件对记录类型感兴趣,并总是接收消息。
表格“属性-影响-应用-软件-程序”表格是手动保持的静态表格。ONL OUT和BAT OUT模块为每个应用软件程序读取该表格,但是从不写入该表格。该表格具有三维:记录类型、组件和属性。
·对于封装模块KM所发送的每个记录类型,存在二维子表格。
·对于每个分量(应用软件程序),在二维子表格的中存在列。通过组件的名称来识别组件,例如,参与方、合约和产品目录、核心现金账户(CCA)等。可以随时添加新组件。
·对于记录类型的每个属性,在二维子表格中存在行。
在二维子表格的单独的字段中,可以存在值{0,1}。它们具有以下意义:
·“0”:组件不依据记录类型的属性。这表示既不在组件的本地数据中保存相关属性,也不将相关属性用于映射规则。组件不受到记录类型的“影响”。
·“1”:组件依据记录类型的属性。这可以表示在组件的本地数据中保存相关属性;还表示属性用于组件的本地数据保持的映射规则。
本发明的另一方面是至少一个软件程序组件,通过该软件程序组件,在从第一数据库上的一个应用程序工作站中发起的交易的情况下,子阿第二数据库调用所谓同型交易,反之亦然。在这种情况下,从应用程序工作站的角度,第二数据库侧的同型交易的行为类似于第一数据库侧的交易行为。
通过移植所谓同型交易,在第一数据库处存在的功能、服务和数据尽可能迅速地在第二数据库平台的环境中可用。根据本发明,使用相同的源程序。这可以在迁移阶段内保持(如果必要,并修改)仅一个源代码,即,第一数据库平台的代码。当在第二数据库平台的环境中激活同型交易时,不改变应用软件程序的接口/至应用软件程序的接口。
同型交易由一个或多个软件程序模块组成。软件程序模块是Cobol程序,它包含处理逻辑指令并经由原语来访问系统。原语由宏组成,宏以Cobol计算机语言编写。在第二数据库环境中,宏使与第一数据库环境中相同的接口可用,但是在后台访问新的Cobol模块。Cobol模块使用第二数据库组件的结构,以确保根据旧功能,在新的环境中进行处理。
第二数据库环境中的同型交易(sister transaction)是第一数据库环境中适合的交易的相同副本,具有在第二数据库侧模拟的系统环境的差异(授权、交易处理中间件、数据库和帮助宏)。
在第二数据库环境中的同型交易的接口与第一数据库环境中的原始交易相对应。只要第一数据库环境为主数据库,便在第一数据库环境中经由最初交易执行数据仓的所有改变。可以在第二数据库环境侧激活只读同型交易。在这段时间内,在第二数据库环境与第一数据库环境之间发生记录定向和功能同步。对于功能同步,在至第二数据库的开关为主开关时,可以使用修改或写入同型交易。为此,对已经在第一数据库环境中被处理的相同的消息进行传输。在这种情况下,在同型交易侧不发生重新生效。
在第一数据库侧实时执行的改变使用第一数据库的封装模块。以这种方式,来自第一数据库的改变后的条目(记录)可以与第二数据库同步。在第二数据库侧,将记录发送至主共存控制器,该主共存控制器跟踪第二数据库环境中的共存元件程序和相应的应用程序元件。移植一次封装模块,然后使它适于第二数据库的环境。以这种方式,可以经由主共存控制器,将数据库内容的改变发送至第二数据库平台环境中的共存元件程序和相应的应用程序元件。修改同型交易使用与记录同步相同的机制,以写入第二数据库和第二数据库平台环境中相应的应用程序元件。
在所有同型交易对于第二数据库环境可用之后,可以将第二数据库定义为主数据库。此时起,经由同型交易进行所有实时(但也是批处理)改变,这在第二数据库的成功改变之后触发了与第一数据库的同步。在该阶段独占地、功能性地发生该同步,即,将所有输入消息或交易未改变地传递至第一数据库并在那里进行跟踪。一旦推断出该阶段,便可以替换同型交易。
在沿从第一至第二数据库的方向的同步的情况下,同步是记录定向或功能性的。将交易分为三类。这可以对要移植的应用软件程序进行次序区分。
第一类型的交易触发了记录定向(即,数据库条目定向)的同步。如果在第一数据库中仅有一些条目受到这种改变的影响,则必须使用这些交易。
第二类型的交易触发了功能同步。如果在第一数据库中有相对较大数量的条目受到这种改变的影响,则必须使用这些交易。
在记录定向同步的情况下,封装模块将通过第一数据库的交易改变的所有条目传输至主共存控制器。首先,主共存控制器调用第二数据库环境的共存元件的共存效用程序(utility program),以将第一数据库的条目和/或改变带入第二数据库环境。在第二数据库条目成功改变之后,主共存控制器调用应用软件程序的共存元件和/或共存效用程序(例如,伙伴),它们包含从第一至第二数据库和/或至第二数据库环境中的应用软件程序的自适应规则(映射逻辑)。
在这种情况下,不需要第一数据库环境的同型交易将数据成功地带入第二数据库环境。
在功能同步的情况下,不是将通过一个或多个交易改变的第一数据库的那些条目实时地经由封装模块传输至主共存控制器,而是将发送至第一数据库交易的原始输入消息实时地经由封装模块传输至主共存控制器。由于消息标识符,主共存控制器识别出包括输入消息而不是记录消息,并将处理直接转发至执行相同处理的第一数据库的同型交易的那一个。当也移植第一数据库的封装模块时,也经由第一数据库的同型封装模块进行第二数据库的所有改变。该同型封装模块将改变作为记录消息发送至主共存控制器,如在记录同步调用应用软件程序的共存元件和/或共存效用程序(伙伴)的情况下,包含从第一至第二数据库和/或至第二数据库环境中的应用软件程序的自适应规则(映射逻辑)。
在这种情况下,同型交易用于以正确的格式(例如,作为从属记录)将数据带入第二数据库,并用于触发与应用软件程序的同步。然而,由于在第一数据库的环境下,内容已经生效,所以不在第二数据库的环境下执行在线生效。仅在第二数据库为主数据库时才激活第二数据库环境中的内容的生效。
由于两侧的交易是相同的,所以经由第一数据库环境中的同型封装模块,独占地发生所有改变。封装模块使用数据库宏来同步地修改第二数据库。然后,封装模块也将相同的记录发送至主共存控制器(如同在记录同步的情况下,将相同的记录发送至应用软件程序的共存元件和/或共存利用程序),从而使它们可以同步。
如以上所述,基本存在发起同型交易的两种不同的方式。
1.经由HostLink
2.通过CART经由基于消息的同步。CART是中间件解决方案,它提供了在不同平台上的分布式应用程序之间的安全、异步的存储和转发通信。
以下解释在整个系统的什么位置出现用于第二数据库平台的什么实质信息/数据,以及它来自哪里。
如果经由HostLink请求同型交易,则请求到达在线根程序。在在线根程序中,确定请求什么交易和功能。基于所期望的交易代码和相应的功能代码,然后使用Call来调用相应的例程。
例如:使用AQYGENERAL T371TPINFO调用CIFRoutine。
在处理中,然后例程可以使用其它TP原语来请求附加信息,如,输入消息或终端记录。该信息也由HostLink提供。
在功能同步的情况下,在第一数据库的环境中,构建CART消息,并发送至第二数据库的环境。该消息包含所有必要数据以及报头部分,从而同型交易可以在不使用TP原语的情况下进行处理。
通过主共存控制器来接收该CART消息。在共存报头部分,主共存控制器识别包括来自第一数据库环境的消息,而不是数据库条目。因此,主共存控制器将消息转发至第二数据库环境中的功能根程序。
在该根程序中,分解并准备消息,从而可以使用CALL来调用相应的同型例程。
使用AQYGENERAL T371TPINFO MESSAGE-BUFFER调用CIFRoutine。
同步消息的格式:
报头部分 | 用户部分 | ||
CART | 共存 | TP数据 | 消息缓冲器 |
CART报头部分包含将消息路由至主共存控制器的路由消息所必需的技术信息。
在共存报头部分以及另一技术数据中,存在交易的功能代码,从而主控制器可以检测易于包括功能根程序的功能同步消息。
USER PART TP数据包含使用TPGET TPINFO(例如,对象分支)在在线情况下请求的数据。该数据是根程序和同型交易所需要的。
USER PART消息缓冲器依据相应的交易,以及包含重要的关键信息和用户输入。
同型交易可以经由功能代码确定是否包括经由功能同步(CART)或在线(HostLink)接收的消息。
如果包括HostLink输入消息,则同型交易执行包括任何附加授权的消息的完全生效,并经由封装模块触发数据库的改变。经由TP原语TPGET IMSG来获得输入消息,以及使用TP原语再次通知用户相应的成功(失败)。封装模块使用DB宏来直接更新第二数据库,以及主共存控制器用于更新共存元件和/或共存效用程序和/或应用软件程序(例如,参与方)。
在功能同步的情况下,在第一数据库上已经执行了处理,以及现在在第二数据库和应用软件程序中对该处理进行跟踪。因此绕过所有生效/授权。直接对消息进行处理,以及经由封装模块来发起改变。由于在功能同步消息的情况下,不存在与用户工作站的HostLink,所以不可以使用TP原语。因此,同型交易可以从经过的TP原语(T371TPINFO)和消息缓冲器中读取所有必要的消息。
在第一和第二数据库之间执行比较,以获得与两个数据库的信息内容的相等有关的状态。从数据比较开始,根据本发明,产生与错误和/或丢失记录有关的报告(错误日志文件)。最后,还提供了对错误和/或丢失记录进行修正的功能。
基于计划和参考表格,每天对应当与第二数据库相关地检查第一数据库的哪个处理单元进行控制。该参考表格在两个数据库之间自动同步。如果没有任何事物要进行处理,则必须调整参考表格。参考表格指示在哪天可以比较哪个处理单元。结构和逻辑如下:
任务在每天的5:00开始运行。程序以关键字“CI/0005/wt/1/RECON”(“wt”是一周的当天(01至07))调用参考表格。
参考表格的结构如下:
处理单元:
01/02/03/04/05/06/07/08/09/10/11/12/13/14/15/16/17/18/34
如果处理单元在运行程序的第一数据库上出现,则进行处理。在第二数据库上,在卸载程序中,将相应的处理单元转换为分区标准并进行相应地选择。要处理的记录类型在参考表格中,并进行分区:
AL:D101/D111
KD:D201/D211/D212/D214/D215/D216/D217/D219/D220/D222/D225/D
226/D535
AD:D311/D321/D322
DP:F101/F111/F112/F113/F114/F115/F116/F117
SF:F201/F213/F214/F216/F217/F219
SV:F230
KT:K001/K002/K004/K005/K006/K007/K010/K011/K012/K013/K016
仅对已经选择的那些记录进行处理。整体地,每个系统仅有一个参考表格访问,以及重新调解运行是必需的。
为此,提供了具有控制列表和数据列表的数据容器。该数据容器用于在第二数据库环境中模拟在第一数据库环境中的交易同类。也将根据数据比较的错误记录写入该容器。
该错误检测和处理是基于错误日志文件和数据容器的结构。在同步期间,将所有消息写入数据容器并从中进行处理。如果在同步期间出现错误,则同样识别数据。然后创建从数据容器至错误日志文件的链接,然后显示/错误。
为此,将软件程序组件错误日志文件、数据容器、同步、重新传递和数据相等期间的错误处理组合为一个逻辑单元。允许同步、初始加载和数据相等成分的合并后报告的GUI可用。还提供了由于条目而手动发起用于数据修正的重新传递的选项。
利用重复功能,可以立即执行对第一和第二数据库之间所识别差异的修正。另一功能,重新传递功能包括一组功能:在表中选择第二数据库环境下的错误或丢失记录;生成相应的改变,并经由返回第二数据库环境的同步过程传播该改变。重新传递功能修正以下三种可能错误:
·记录在第一数据库中消失,但是出现在第二数据库中。
·记录在第一数据库中出现,但是在第二数据库中消失。
·记录在第一数据库中出现,但是以错误的内容出现在第二数据库中。
数据比较系统将两个数据库的数据仓彼此比较,并发现尽可能多的差异。如果两个系统上的数据结构几乎完全相同,则可以容易地执行比较。关键问题是在特定关键点(时间上)必须彼此比较地大量数据。
一方面,错误检测包括对来自两个数据库的数据进行撤出和处理。为此,计算散列值并彼此比较。如果存在差异,则从适合的数据库中取得数据。错误检测的另一部分是比较程序,该比较程序将来自第一和第二数据库的讹误数据与同步的错误日志文件中的文档差异(以及在数据容器中用于同步的数据)进行详细比较。在数据容器中,存在通过执行重复功能,对将新数据应用于相应数据库的立即尝试。
错误分析包括错误处理的处理功能,用于分析来自错误日志文件和数据容器的数据并将它们彼此链接。然后,由GUI(图形用户界面)显示该数据。然后,如果必要,可以手动执行对包括什么错误的分析。此外,从该GUI中,可以发起所谓批重新传递功能和重复功能(重试)。
在错误修正的情况下,存在3个版本:
·单独记录的重新传递和/或重复功能(重试)。
错误修正将错误数据写入数据容器,从数据容器中启动修正功能。
·部分初始加载或海量更新与初始加载相同。
·在初始加载的情况下,首先删除受到影响的表格。
在错误修正的情况下,尤其对以下数据结构进行读写:
·数据容器
·错误日志
·卸载文件
·散列文件
·转换文件
·比较文件
·重新传递文件
·Q1数据库
对于卸载文件,使用与初始加载-卸载文件的数据结构相同的数据结构。
散列文件具有以下结构:
转换文件具有以下结构:
比较文件使用与用于其它同步相同的数据结构。以下对比较文件的报头部分进行解释:
名称 | 内容 | 长度 |
COEX-MUTPRG | 改变程序的程序名称 | PICX(08). |
COEX-AGENTC | 代理代码 | PICX(02). |
COEX-APCDE | 应用程序代码 | PICX(02). |
COEX-NL | 处理分支 | PICX(04). |
COEX-UFCC-E | 程序功能代码 | PICX(03). |
COEX-UPTYP | 更新类型S=存储M=修改D=删除(擦除) | PICX(01). |
COEX-USERID | 负责人的USERID | PICX(06). |
COEX-PAKET-TIME-STAMP | 分组的日期和时间(YYYYMMDDhhmmssuuuuuu) | PICX(20). |
COEX-REC-TIME-STAMP | 改变的日期和时间(YYYYMMDDhhmmssuuuuuu) | PICX(20). |
COEX-NL-KD | 分支 | PIC |
X(04). | ||
COEX-KDST | 顾客代码号 | PICX(08). |
COEX-OBJID | 对象识别/DB1关键字字段 | PICX(20). |
COEX-RECTYP | 记录类型(来自数据库1的记录类型或TERM,TERM记录不包括数据部分) | PICX(04). |
COEX-REC-SEQUENZ | (在TERM=每个分组的最高序列号的情况下,在分组内)记录序列号 | PIC9(08). |
COEX-ORIGIN | 记录起点0=初始加载(BC)1=重新传递(DB1)2=同步3=重新调解(DB2)5=在线同型(DB2)6=重新调解(BC) | PIC X(1) |
COEX-REQUEST-TYPE | O=在线处理B=批处理 | PIC X(1) |
COEX-RESYNC-ID | 来自TAPCPACKAGE或TAPCDATA用于重新传递的原始关键字 | PICX(32) |
COEX-RESYNC-STATUS | 包含数据库B1重新传递功能的返回代码 | PIC X(2) |
COEX-LEVEL3-KEY | 数据库1关键字字段 | PICX(40) |
COEX-RESERVED | 保留 | PIC X(6) |
COEX-DATA | 记录,旧和新 | PICX(10600). |
表格名称 | 插入 | 改变 | 删除 |
数据容器 | 商业服务错误处理 | 商业服务错误处理 | Reorg工作 |
错误日志文件 | 商业服务一般服务 | 商业服务一般服务 | reorg工作 |
未卸载文件DB2 | 未卸载工作DB2 | 无 | 未卸载工作DB2 |
散列文件 | 散列程序DB1散列程序DB2 | 无 | 在开始重新调解运行之前的网络工作 |
转换文件 | 比较程序 | 无 | 在开始重新调解运行之前的网络工作 |
比较文件 | 选择程序DB1选择程序DB2 | 无 | 在开始重新调解运行之前的网络工作 |
重新传递文件 | 重新传递功能错误处理 | 无 | 在转移之后重写或删除文件 |
Q1数据库 | 重新传递模块 | 无 | 监视器 |
共存控制器程序定义了为特定记录类型调用的程序或程序组件。需要共存控制器程序将要根据第一数据库修正的数据载入第二数据库的环境中。
在成功的重新传递的情况下,共存控制区程序将数据容器中的错误条目设置为“完成”。
可以显示(如果需要,分类)错误消息和错误数据。提供功能以发起重新传递服务。
在数据容器中,可以区分从第二数据库的重新调解中得到的错误和从两个数据库之间的同步中得到的错误进行区分。此外,提供了用于数据的显示、修正或重新传递或重试的功能。
通过根据本发明的功能,减小了数量和错误类型,对两个数据库环境的系统进行并行操作的时间越久。在处理结束(日、周等)之后以及根据记录类型,可以进行重新调解。还可以仅对已经在第二数据库侧要求(询问)的记录进行检查。例如,可以每月一次来检查还未使用的记录。
重新调解发现了两个数据库的系统之间的不同,并对它们进行修正。以这种方式,在第一位置中,检测到还未被同步发现的错误。这些错误可以是:
·第一数据库的系统上的批/在线程序的未封装
·传输路径上的消息和/或文件丢失
·第二数据库系统环境中的程序错误
·两个系统之一的恢复
·不能应用于第二数据库环境中的消息记录。
假设可以通过重新传递功能对大多数错误进行修正。可选地,还可以通过另一初始加载或部分初始加载(海量更新)来对第二数据库进行重新加载。
根据要比较的数据库条目和它们的属性,在第一步骤中,确定散列值,并将它们彼此比较。如果它们不同,则在第二步骤中将原始数据项目彼此比较。为此,通过封装模块,首先将散列值,如果需要,在第二步骤中将原始数据项目发送至第二数据库并在那里进行比较。
DB1记录 | 描述 |
D101 | Alfasearch(区域) |
D111 | 第二Alfasearch |
D201 | 顾客 |
D211 | 顾客联系 |
D212 | 顾客对象 |
D214 | 通知 |
D215 | 阻断 |
D216 | 指令 |
D217 | Avor |
D219 | 分值 |
D220 | 应用程序 |
D222 | 用于计分的顾客主数据 |
D225 | 用于企业线应用程序计分的顾客主数据 |
D226 | 用于企业线计分的移动数据 |
D311 | 顾客地址 |
D321 | 返回地址 |
D322 | 公开 |
D535 | 用于无消息顾客的顾客户主 |
F101 | 证券账户户主 |
F111 | 可用证明 |
F112 | 触发 |
F113 | 阻断 |
F114 | 指令 |
F115 | 通知 |
F116 | 指示 |
F117 | 派发指令 |
F201 | 保存 |
F213 | 阻断 |
F214 | 指令 |
F216 | 指示 |
F217 | 派发指令 |
F219 | 安全地开支票 |
F230 | 安全管理 |
K001 | 账户户主外部账户 |
K002 | 可用证明 |
K004 | 辅助账户联系 |
K005 | 单独的触发指令 |
K006 | 阻断指令 |
K007 | 指令 |
K010 | 单独的触发指令 |
K011 | 派发指令 |
K012 | 基本等级外部账户区域 |
K013 | 市场利率方法的项目和条件 |
K016 | 通知 |
Claims (29)
1.一种计算机网络系统,用于根据/利用第一数据库(DB1)来对第二数据库(DB2)进行构建和/或同步,在至少来自至少一个应用程序工作站的第一数据库(DB1)上执行由工作单元(UOW)进行的访问,以生成、改变或删除数据库(DB1)的内容,所述计算机网络系统包括:
1.1.至少一个第一服务器(S1),用于指导并保持第一数据库(DB1),所述服务器与至少一个应用程序工作站连接,
1.2.至少一个第二服务器(S2),用于指导并保持第二数据库(DB2),
1.3.至少一个数据连接,用于将两个服务器(S1、S2)连接,其中
1.4.提供了软件程序模块,建立所述软件程序模块并进行编程,以便
1.5.执行第一和第二数据库(DB1,DB2)之间的比较,以获得用于同步和与两个数据库(DB1,DB2)的信息内容的等同有关的状态,其中
1.6.从数据比较开始,产生与错误的和/或缺少的记录有关的错误日志文件,以及
1.7.错误检测和处理功能修正/添加错误的和/或缺少的记录,其特征在于
1.8.在计算机网络系统中提供数据容器,所述数据容器包括控制表格和数据表格,并用于在第二数据库的环境下模拟来自第一数据库的环境的交易同类,以及
1.9.将根据数据比较的错误的/缺少的记录写入该容器中,
1.10.数据比较包括三个组件错误检测、错误分析和错误修正,以及
1.11.错误检测包括从两个数据库(DB1,DB2)中撤回并处理计算机网络系统中的数据,计算散列值并彼此比较,
1.12.如果存在差异,则从相应的数据库(DB1,DB2)中获取数据,
1.13.详细地比较来自第一和第二数据库(DB1,DB2)的破坏数据,将差异写入同步错误日志文件,并将其数据写入数据容器。
2.如前述权利要求所述的计算机网络系统,其中
2.1.错误检测和处理功能是两个数据库之间的同步的子功能,并基于错误日志文件和数据容器,其中
2.2.在同步期间,将所有消息写入数据容器并从中进行处理。
3.如前述权利要求之一所述的计算机网络系统,其中
3.1.如果在同步期间发生错误,将数据标识为错误的,以及
3.2.然后创建从数据容器至错误日志文件的链接,然后显示/示出错误。
4.如前述权利要求之一所述的计算机网络系统,其中
4.1.将软件程序组件错误日志文件、数据容器、同步、重新传递和数据等同化期间的错误处理组合为一个逻辑单元,使提供了同步、初始加载和数据等同化组件的统一报告的GUI可用。
5.如前述权利要求之一所述的计算机网络系统,其中
5.1.提供了重复功能,以执行对第一和第二数据库之间所标识的差异的立即修正。
6.如前述权利要求之一所述的计算机网络系统,其中
6.1.提供了重新传递功能,所述重新传递功能包括以下一组功能:在表格中选择在第二数据库(DB2)的环境下的错误的或缺少的记录;生成相应的改变,并通过同步过程将它发送回第二数据库的环境中。
7.如前述权利要求之一所述的计算机网络系统,其中
7.1.重新传递功能修正了三种可能的错误:
·记录在第一数据库(DB1)中消失,但是出现在第二数据库(DB2)中,
·记录在第一数据库(DB1)中出现,但是在第二数据库(DB2)中消失,
·记录在第一数据库(DB1)中出现,但是以错误的内容出现在第二数据库(DB2)中。
8.如前述权利要求之一所述的计算机网络系统,其中
8.1.从数据容器中,通过执行重复功能而将新数据应用于相应的数据库。
9.如前述权利要求之一所述的计算机网络系统,其中
9.1.通过封装模块(KM)来发生工作单元(UOW)对第一数据库(DB1)的访问,建立所述封装模块(KM)并进行编程,从而
9.1.1.将工作单元(UOW)转发至所述封装模块,
9.1.2.将所述封装模块接收的工作单元(UOW)分解为一个或更多个消息(M1...Mn),
9.1.3.在第一数据库(DB1)中输入消息(M1...Mn),以及
9.1.4.将消息(M1...Mn)发送至第二数据库(DB2)。
10.如前述权利要求之一所述的计算机网络系统,其中
10.1.建立封装模块程序(KM)并进行编程,以通过应用软件程序和改变了第一数据库的其它程序来执行那些访问,其中,这些程序将它们用于第一数据库(DB1)的改变命令指向封装模块程序(KM),所述封装模块程序用于执行对第一数据库(DB1)的实际访问。
11.如前述权利要求之一所述的计算机网络系统,其中
11.1.建立第二数据库(DB2)的控制器(HS)并进行编程,以便
11.1.1.用于读取从输入等待队列(Qin)发送至所述控制器的消息(M1...Mn),
11.1.2.用于检查属于一个工作单元(UOW)的所有消息(M1...Mn)是否已到达输入等待队列(Qin),
11.1.3.用于在属于一个工作单元(UOW)的所有消息(M1...Mn)到达了输入等待队列(Qin)时,执行第二数据库(DB2)中的适当的改变,以及可选地
11.1.4.用于依据特定条件,将相应改变或包含所述改变并属于一个工作单元(UOW)的消息(M1...Mn)至少部分地分发至其它数据库或应用程序。
12.如前述权利要求之一所述的计算机网络系统,其中
12.1.建立封装模块程序(KM)并进行编程,从而依据到达预定参数,将来自批处理运行的工作单元(UOW)分解为相应的消息(M1...Mn),并将所述消息写入转移数据库(Q1),以及
12.2.提供了监视器软件模块,建立所述监视器软件模块并进行编程,在到达预定参数之后,以将转移数据库(Q1)的内容传输至第二数据库(DB2)。
13.如前述权利要求之一所述的计算机网络系统,其中
13.1.对于从第一数据库(DB1)接收数据的每个数据库或应用程序,第二数据库(DB2)的控制器(HS)向共存元件程序模块供给数据,建立所述共存元件程序模块并进行编程,
13.1.1.以特别地对用于相关数据库或应用程序的数据进行同步,以及
13.1.2.以执行与第二数据库(DB2)或应用程序、或者在与相关应用程序关联的数据库中的输入等待队列(Qin)中属于一个工作单元(UOW)的消息(M1...Mn)相对应的改变。
14.如前述权利要求之一所述的计算机网络系统,其中
14.1.建立控制器(HS)并进行编程,以从表格中获取信息,所述信息指示了要将哪些内容提供给哪些共存元件程序。
15.如前述权利要求之一所述的计算机网络系统,其中
15.1.提供了软件程序组件,通过所述软件程序组件,在从第一数据库(DB1)的一个应用程序工作站发起的交易的情况下,能够在第二数据库(DB2)上调用同型交易,反之亦然,在这种情况下,从应用程序工作站的角度,第二数据库(DB2)侧的同型交易的行为与第一数据库(DB1)侧的对应交易类似。
16.如前述权利要求之一所述的计算机网络系统,其中
16.1.在第一数据库平台上存在的功能、服务和数据在实质上使用了相同程序的第二数据库平台的环境下可用,以及当在第二数据库平台的环境下激活了同型交易时,实质上不改变应用软件程序的接口或到应用软件程序的接口。
17.如前述权利要求之一所述的计算机网络系统,其中
17.1第二数据库环境中的同型交易的接口与第一数据库环境中的原始交易相对应,进行配置是否及应当如何使用第一数据库环境中的原始交易或第二数据库环境中的同型交易。
18.一种计算机支持方法,用于根据/利用第一数据库(DB1)来对第二数据库(DB2)进行构建和/或同步,在至少来自至少一个应用程序工作站的第一数据库(DB1)上执行由工作单元(UOW)进行的访问,以生成、改变或删除数据库(DB1)的内容,所述方法包括以下步骤:
18.1.使用至少一个第一服务器(S1)来指导并保持第一数据库(DB1),所述服务器与至少一个应用程序工作站连接,
18.2.使用至少一个第一服务器(S2)来指导并保持第一数据库(DB2),所述服务器与至少一个应用程序工作站连接,
18.3.提供至少一个数据连接,用于将两个服务器(S1、S2)连接,其中
18.4.提供了至少一个软件程序模块,用于执行第一和第二数据库(DB1,DB2)之间的比较,以获得用于同步和与两个数据库的信息内容的等同有关的状态,其中
18.5.从数据比较开始,产生与错误的和/或缺少的记录有关的错误日志文件,以及
18.6.错误检测和处理功能修正/添加错误的和/或缺少的记录,其特征在于
18.7.在第二数据库的环境中,在具有控制表格和数据表格的数据容器中模拟来自第一数据库的环境的交易同类,以及
18.8.将根据数据比较的错误的/缺少的记录写入该数据容器中,
18.9.数据比较包括三个组件错误检测、错误分析和错误修正,以及
18.10.错误检测包括从两个数据库(DB1,DB2)中撤回并处理计算机网络系统中的数据,计算散列值并彼此比较,
18.11.如果存在差异,则从相应的数据库中获取数据,
18.12.详细地比较来自第一和第二数据库(DB1,DB2)的破坏数据,以及
18.13.将差异写入同步错误日志文件,并将其数据写入数据容器。
19.如前述方法权利要求所述的计算机支持方法,其中
19.1.错误检测和处理功能是基于错误日志文件和数据容器的两个数据库之间的同步的子功能,其中
19.2.在同步期间,将所有消息写入数据容器并从中进行处理。
20.如前述方法权利要求之一所述的计算机支持方法,其中
20.1.如果在同步期间发生错误,将数据标识为错误的,以及
20.2.然后创建从数据容器至错误日志文件的链接,然后显示/示出错误。
21.如前述方法权利要求之一所述的计算机支持方法,其中
21.1.将软件程序组件错误日志文件、数据容器、同步、重新传递和数据等同化期间的错误处理组合为一个逻辑单元,使提供了同步、初始加载和数据等同化组件的统一报告的GUI可用。
22.如前述方法权利要求之一所述的计算机支持方法,其中
22.1.提供了重复功能,以执行对第一和第二数据库之间所标识的差异的立即修正。
23.如前方法述权利要求之一所述的计算机支持方法,其中
23.1.提供了重新传递功能,所述重新传递功能包括以下一组功能:在表格中选择在第二数据库(DB2)的环境下的错误的或缺少的记录;生成相应的改变,并通过同步过程将它发送回第二数据库的环境中。
24.如前述方法权利要求之一所述的计算机支持方法,其中
24.1.重新传递功能修正了三种可能的错误:
·记录在第一数据库(DB1)中消失,但是出现在第二数据库(DB2)中,
·记录在第一数据库(DB1)中出现,但是在第二数据库(DB2)中消失,
·记录在第一数据库(DB1)中出现,但是以错误的内容出现在第二数据库(DB2)中。
25.如前述方法权利要求之一所述的计算机支持方法,其中
从数据容器中,通过执行重复功能而将新数据应用于相应的数据库。
26.如前述方法权利要求之一所述的计算机支持方法,其中
26.1.通过封装模块(KM)来发生工作单元(UOW)对第一数据库(DB1)的访问,建立所述封装模块(KM)并进行编程,从而
26.1.1.将工作单元(UOW)转发至所述封装模块,
26.1.2.将所述封装模块接收的工作单元(UOW)分解为一个或更多个消息(M1...Mn),
26.1.3.在第一数据库(DB1)中输入消息(M1...Mn),以及
26.1.4.将消息(M1...Mn)发送至第二数据库(DB2)。
27.如前述方法权利要求之一所述的计算机支持方法,其中
27.1.建立封装模块程序(KM)并进行编程,以通过应用软件程序和改变了第一数据库的其它程序来执行那些访问,其中,这些程序将它们用于第一数据库(DB1)的改变命令指向封装模块程序(KM),所述封装模块程序用于执行对第一数据库(DB1)的实际访问。
28.一种载有计算机程序的介质,在所述介质上具有计算机程序代码,如果在计算机中执行所述代码,则建立所述计算机程序,以实现根据前述权利要求之一所述的计算机支持方法。
29.一种具有计算机可执行程序代码的计算机程序产品,如果在计算机中执行所述代码,则建立所述计算机程序,以实现根据前述权利要求之一所述的计算机支持方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05007073A EP1708096A1 (de) | 2005-03-31 | 2005-03-31 | Rechnernetzwerksystem zum Synchronisieren einer zweiten Datenbank mit einer ersten Datenbank sowie Vorgehensweisen hierfür |
EP05007073.9 | 2005-03-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101185076A true CN101185076A (zh) | 2008-05-21 |
Family
ID=34934646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800189604A Pending CN101185076A (zh) | 2005-03-31 | 2006-03-31 | 用于使第二数据库与第一数据库同步的计算机网络系统及相应过程 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7580970B2 (zh) |
EP (1) | EP1708096A1 (zh) |
CN (1) | CN101185076A (zh) |
WO (1) | WO2006103095A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011057589A1 (zh) * | 2009-11-16 | 2011-05-19 | 中兴通讯股份有限公司 | 网络电视统计分析系统的数据库处理方法和装置 |
CN104133674A (zh) * | 2014-07-11 | 2014-11-05 | 国家电网公司 | 一种异构系统及异构系统的模型同步方法 |
CN107070919A (zh) * | 2011-09-09 | 2017-08-18 | 甲骨文国际公司 | 用于数据库事务的幂等性 |
CN112424762A (zh) * | 2019-03-19 | 2021-02-26 | 斯诺弗雷克公司 | 在多部署数据库中转移连接 |
CN112612647A (zh) * | 2020-12-29 | 2021-04-06 | 上海达梦数据库有限公司 | 日志并行重演方法、装置、设备及存储介质 |
CN113177056A (zh) * | 2021-06-29 | 2021-07-27 | 企查查科技有限公司 | 多数据库的业务数据一致性的检验方法、设备和存储介质 |
CN113688147A (zh) * | 2021-09-07 | 2021-11-23 | 中国银行股份有限公司 | 一种数据处理方法及系统 |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1708094A1 (de) * | 2005-03-31 | 2006-10-04 | Ubs Ag | Rechnernetzwerksystem zum Aufbauen, Synchronisieren und/oder Betreiben einer zweiten Datenbank aus/mit einer ersten Datenbank sowie Vorgehensweisen hierfür |
EP1746502A1 (de) * | 2005-07-06 | 2007-01-24 | Ubs Ag | Technik zur Migration einer Host-Umgebung auf eine neue Systemplattform |
US7818738B2 (en) * | 2006-12-15 | 2010-10-19 | International Business Machines Corporation | System and method for automatically identifying a unit of change requiring upgrade in a database management system |
US8276117B2 (en) * | 2007-08-03 | 2012-09-25 | International Business Machines Corporation | Displaying and refactoring programs that include database statements |
US8473915B2 (en) * | 2007-08-03 | 2013-06-25 | International Business Machines Corporation | Coverage analysis tool for testing database-aware software applications |
CN101409614B (zh) * | 2007-10-12 | 2011-04-13 | 华为技术有限公司 | 一种数据同步方法、系统和设备 |
US7912927B2 (en) * | 2008-03-26 | 2011-03-22 | Microsoft Corporation | Wait for ready state |
US8196118B2 (en) * | 2008-03-27 | 2012-06-05 | Microsoft Corporation | Event set recording |
US20100050230A1 (en) * | 2008-08-21 | 2010-02-25 | Russell Aebig | Method of inspecting spreadsheet files managed within a spreadsheet risk reconnaissance network |
US20100049746A1 (en) * | 2008-08-21 | 2010-02-25 | Russell Aebig | Method of classifying spreadsheet files managed within a spreadsheet risk reconnaissance network |
US9582292B2 (en) * | 2008-10-07 | 2017-02-28 | Microsoft Technology Licensing, Llc. | Merged tree-view UI objects |
US8386429B2 (en) * | 2009-03-31 | 2013-02-26 | Microsoft Corporation | Generic editor for databases |
WO2010147391A2 (ko) * | 2009-06-16 | 2010-12-23 | 솔레노이드 인크 | 커넥션 데이터와 컨텍스트 데이터를 이용하여 정보를 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
US8819042B2 (en) | 2010-04-23 | 2014-08-26 | Bank Of America Corporation | Enhanced data comparison tool |
US20120198018A1 (en) * | 2011-01-27 | 2012-08-02 | Microsoft Corporation | Securely publishing data to network service |
US9584949B2 (en) | 2011-01-27 | 2017-02-28 | Microsoft Technology Licensing, Llc | Cloud based master data management architecture |
US20130218875A1 (en) * | 2011-02-03 | 2013-08-22 | B. Victor Carriri | Table-driven enterprise-wide data integration |
US20120203790A1 (en) * | 2011-02-03 | 2012-08-09 | Cariri B Victor | Table-driven and data-driven method, and computer-implemented apparatus and usable program code for data integration system for heterogeneous data sources dependent upon the table-driven and data-driven method |
US9886369B2 (en) * | 2011-11-13 | 2018-02-06 | International Business Machines Corporation | Dynamic data fabrication for database applications |
DE102012202603B3 (de) * | 2012-02-21 | 2013-07-04 | Siemens Aktiengesellschaft | Verfahren zur modellbasierten Softwareentwicklung von Programmen mit Datenbankzugriff |
US11961147B1 (en) * | 2012-04-15 | 2024-04-16 | K. Shane Cupp | Cards, devices, systems, and methods for financial management services |
CN102752372A (zh) * | 2012-06-18 | 2012-10-24 | 天津神舟通用数据技术有限公司 | 一种基于文件的数据库同步方法 |
US9122716B1 (en) | 2012-12-13 | 2015-09-01 | Shoretel, Inc. | Database upgrade management |
US9069833B2 (en) | 2013-01-09 | 2015-06-30 | International Business Machines Corporation | Detecting data omissions for an intermittently-connected application |
CN103294768B (zh) * | 2013-04-23 | 2016-12-28 | 税友软件集团股份有限公司 | 一种异常数据的剔除方法 |
CN103678494B (zh) * | 2013-11-15 | 2018-09-11 | 北京奇虎科技有限公司 | 客户端同步服务端数据的方法及装置 |
CN104376055B (zh) * | 2014-11-04 | 2017-08-29 | 国电南瑞科技股份有限公司 | 一种基于分片技术的大模型数据比较方法 |
JP6507882B2 (ja) * | 2015-06-26 | 2019-05-08 | セイコーエプソン株式会社 | ネットワークシステム、及び、ネットワークシステムの制御方法 |
US10331656B2 (en) * | 2015-09-25 | 2019-06-25 | Microsoft Technology Licensing, Llc | Data migration validation |
GB2566886B (en) | 2016-07-27 | 2022-04-13 | Walmart Apollo Llc | Automated informix engine install |
WO2018053117A1 (en) | 2016-09-16 | 2018-03-22 | Wal-Mart Stores, Inc. | Auto top off tool |
US10430437B2 (en) | 2017-02-08 | 2019-10-01 | Bank Of America Corporation | Automated archival partitioning and synchronization on heterogeneous data systems |
US10552383B2 (en) | 2017-08-11 | 2020-02-04 | Wipro Limited | Method and system for data conversion and data model optimization |
US11599644B2 (en) | 2019-05-17 | 2023-03-07 | Walmart Apollo, Llc | Blocking insecure code with locking |
GB201908091D0 (en) * | 2019-06-06 | 2019-07-24 | Palantir Technologies Inc | Time series databases |
CN112597246B (zh) * | 2020-12-25 | 2024-04-12 | 中国农业银行股份有限公司 | 一种保持数据一致性的方法、装置及系统 |
CN112612852A (zh) * | 2020-12-29 | 2021-04-06 | 中国农业银行股份有限公司 | 数据同步方法及装置、电子设备、存储介质 |
US11899560B2 (en) * | 2022-04-27 | 2024-02-13 | Microsoft Technology Licensing, Llc | Automatic correctness validation of database management systems |
US11921700B1 (en) * | 2023-05-18 | 2024-03-05 | Snowflake Inc. | Error tables to track errors associated with a base table |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0593062A3 (en) * | 1992-10-16 | 1995-08-30 | Siemens Ind Automation Inc | Redundant networked database system |
US6044381A (en) * | 1997-09-11 | 2000-03-28 | Puma Technology, Inc. | Using distributed history files in synchronizing databases |
US6560655B1 (en) * | 1999-06-22 | 2003-05-06 | Microsoft Corporation | Synchronization manager for standardized synchronization of separate programs |
US6779002B1 (en) * | 2000-06-13 | 2004-08-17 | Sprint Communications Company L.P. | Computer software framework and method for synchronizing data across multiple databases |
US20020165724A1 (en) * | 2001-02-07 | 2002-11-07 | Blankesteijn Bartus C. | Method and system for propagating data changes through data objects |
DE60117150T2 (de) * | 2001-05-30 | 2006-10-19 | Sap Ag | Verfahren und computerprogramm zum übertragen von inhalt aus einer quellendatenbank zu einer zieldatenbank |
US7761535B2 (en) * | 2001-09-28 | 2010-07-20 | Siebel Systems, Inc. | Method and system for server synchronization with a computing device |
US6898609B2 (en) * | 2002-05-10 | 2005-05-24 | Douglas W. Kerwin | Database scattering system |
AU2003255438A1 (en) * | 2002-08-15 | 2004-03-11 | Sap Aktiengesellschaft | Managing data integrity |
US20040064487A1 (en) * | 2002-10-01 | 2004-04-01 | Nguyen Liem M. | Method and apparatus to migrate a database |
US20050060643A1 (en) * | 2003-08-25 | 2005-03-17 | Miavia, Inc. | Document similarity detection and classification system |
US7275202B2 (en) * | 2004-04-07 | 2007-09-25 | International Business Machines Corporation | Method, system and program product for autonomous error recovery for memory devices |
US7436836B2 (en) * | 2004-06-30 | 2008-10-14 | Cisco Technology, Inc. | Method and apparatus for detecting support for a protocol defining supplemental headers |
US20060036770A1 (en) * | 2004-07-30 | 2006-02-16 | International Business Machines Corporation | System for factoring synchronization strategies from multimodal programming model runtimes |
US20060041596A1 (en) * | 2004-08-19 | 2006-02-23 | Vlad Stirbu | Caching directory server data for controlling the disposition of multimedia data on a network |
JP2006107192A (ja) * | 2004-10-06 | 2006-04-20 | Olympus Imaging Corp | 情報処理システム及びコンテンツデータの再生回数管理方法 |
CA2589900A1 (en) * | 2004-10-25 | 2006-05-04 | Michael Kuan-Hung Chang | System and method for global data synchronization |
-
2005
- 2005-03-31 EP EP05007073A patent/EP1708096A1/de not_active Withdrawn
-
2006
- 2006-03-27 US US11/389,285 patent/US7580970B2/en not_active Expired - Fee Related
- 2006-03-31 CN CNA2006800189604A patent/CN101185076A/zh active Pending
- 2006-03-31 WO PCT/EP2006/002963 patent/WO2006103095A1/de not_active Application Discontinuation
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011057589A1 (zh) * | 2009-11-16 | 2011-05-19 | 中兴通讯股份有限公司 | 网络电视统计分析系统的数据库处理方法和装置 |
CN107070919A (zh) * | 2011-09-09 | 2017-08-18 | 甲骨文国际公司 | 用于数据库事务的幂等性 |
CN107070919B (zh) * | 2011-09-09 | 2020-06-26 | 甲骨文国际公司 | 用于数据库事务的幂等性 |
CN104133674A (zh) * | 2014-07-11 | 2014-11-05 | 国家电网公司 | 一种异构系统及异构系统的模型同步方法 |
CN104133674B (zh) * | 2014-07-11 | 2017-07-11 | 国家电网公司 | 一种异构系统及异构系统的模型同步方法 |
CN112424762A (zh) * | 2019-03-19 | 2021-02-26 | 斯诺弗雷克公司 | 在多部署数据库中转移连接 |
CN112612647A (zh) * | 2020-12-29 | 2021-04-06 | 上海达梦数据库有限公司 | 日志并行重演方法、装置、设备及存储介质 |
CN112612647B (zh) * | 2020-12-29 | 2024-02-23 | 上海达梦数据库有限公司 | 日志并行重演方法、装置、设备及存储介质 |
CN113177056A (zh) * | 2021-06-29 | 2021-07-27 | 企查查科技有限公司 | 多数据库的业务数据一致性的检验方法、设备和存储介质 |
CN113177056B (zh) * | 2021-06-29 | 2021-09-21 | 企查查科技有限公司 | 多数据库的业务数据一致性的检验方法、设备和存储介质 |
CN113688147A (zh) * | 2021-09-07 | 2021-11-23 | 中国银行股份有限公司 | 一种数据处理方法及系统 |
CN113688147B (zh) * | 2021-09-07 | 2024-02-09 | 中国银行股份有限公司 | 一种数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2006103095A1 (de) | 2006-10-05 |
EP1708096A1 (de) | 2006-10-04 |
US20060222160A1 (en) | 2006-10-05 |
US7580970B2 (en) | 2009-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101185076A (zh) | 用于使第二数据库与第一数据库同步的计算机网络系统及相应过程 | |
CN101185077A (zh) | 根据/利用第一数据库构建、同步和/或操作第二数据库的计算机网络及相应过程 | |
CN101185075A (zh) | 用于使第二数据库与第一数据库同步的计算机网络系统及相应过程 | |
CN101147146A (zh) | 根据/利用第一数据库构建、同步和/或操作第二数据库的计算机网络及过程 | |
US6279042B1 (en) | Methods of performing an interdependent task on a document | |
US6411985B1 (en) | Interserver data association apparatus | |
US6970945B1 (en) | Systems and methods of message queuing | |
IL143509A (en) | Integrated data bank combining system | |
US20070130247A1 (en) | Framework system | |
Alonso et al. | Workflow management: the next generation of distributed processing tools | |
US8868527B1 (en) | Tracking switch transactions in a communications-networking environment | |
CN115857886A (zh) | 基层政务应用的低代码开发平台 | |
Zhong et al. | Using event sourcing and CQRS to build a high performance point trading system | |
CN105723365A (zh) | 用于优化索引、主数据库节点和订户数据库节点的方法 | |
CN113486114A (zh) | 一种区块链智能合约调用管理方法 | |
CN105550347A (zh) | 数据处理方法及装置 | |
JP3944229B2 (ja) | フレームワークシステム | |
CN110033250B (zh) | 减少单元化拆分部署记账耗时的方法和系统 | |
Palazzo et al. | Design and evaluation of a replicated database for mobile systems | |
Gladney et al. | A version management method for distributed information | |
Frew | LAYER OF A DISTRIBUTED NETWORK | |
Gérard | The effect of the CERNET network on computing at CERN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1112301 Country of ref document: HK |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080521 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1112301 Country of ref document: HK |