CN106503264A - 基于oracle数据库的联机交易日志记录方法及设备 - Google Patents
基于oracle数据库的联机交易日志记录方法及设备 Download PDFInfo
- Publication number
- CN106503264A CN106503264A CN201611071627.1A CN201611071627A CN106503264A CN 106503264 A CN106503264 A CN 106503264A CN 201611071627 A CN201611071627 A CN 201611071627A CN 106503264 A CN106503264 A CN 106503264A
- Authority
- CN
- China
- Prior art keywords
- transaction
- daily record
- log
- line transaction
- oracle
- 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
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于oracle数据库的联机交易日志的记录方法及设备,涉及计算机信息技术领域。所述方法包括:接收所述联机交易系统的联机交易日志;采用oracle自治事物将所述联机交易日志记录到日志表中;将所述日志表存储在oracle数据库中。本发明的日志记录独立于联机交易单独提交生效,不影响联机交易,日志记录无资源瓶颈,可高并发,记录全面,保留第一现场;日志格式规整,监控效率高;可以快捷定位及查询相关日志,并清楚再现交易的输入及输出情况。
Description
技术领域
本发明关于计算机信息技术领域,特别是关于开放平台的数据处理技术,具体的讲是一种基于oracle数据库的联机交易日志的记录方法及设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
现有技术中的开放平台(如小型机)的联机应用系统日志大部分以文本形式记录,其主要存在以下缺点:
1、文本文件存在大小限制,过大会导致后续日志记录不成功,因此常常为避免日志文件过大会缩减日志记录的内容,不利于维护。
2、因为无规则的数据结构和索引,日志文件较大时,存在查看耗时耗力甚至打不开的情况。
3、日志在同一交易多个实例中会存在记录串行的情况,导致日志可用性较差。
4、文本形式的日志文件不利于监控统计,使用数据库形式的日志可以方便的统计交易执行情况,也方便于监控特定条件的交易。
因此,如何研究和开发出一种新的方案以克服上述缺陷是本领域亟待解决的技术难题。
发明内容
有鉴于此,本发明提供一种基于oracle数据库的联机交易日志的记录方法以及设备,实现了日志记录无资源瓶颈、可高并发、记录全面、易于监控且监控效率高。
为了实现上述目的,本发明提供一种基于oracle数据库的联机交易日志的记录方法,所述方法包括:
接收所述联机交易系统的联机交易日志;
采用oracle自治事物将所述联机交易日志记录到日志表中;
将所述日志表存储在oracle数据库中。
在本发明的优选实施方式中,所述方法还包括:
根据所述联机交易日志设定日志表的数据结构,所述数据结构包括键值、单独字段以及应用数据字段。
在本发明的优选实施方式中,所述键值包括日志流水号以及日志序号,所述日志流水号采用oracle的序号发生器生成。
在本发明的优选实施方式中,所述方法还包括:
采集检索信息,所述检索信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
根据所述检索信息查询所述oracle数据库,得到与所述检索信息对应的概要信息,所述概要信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
根据所述概要信息确定与所述检索信息对应的应用数据。
在本发明的优选实施方式中,所述方法还包括定义所述联机交易日志的解析结构,所述解析结构包括字段顺序、名称、类型以及大小。
在本发明的优选实施方式中,所述方法还包括对所述应用数据按照所述解析格式进行拆分。
本发明的目的之一是,提供了一种基于oracle数据库的联机交易日志的记录设备,所述设备包括:
日志接收模块,用于接收所述联机交易系统的联机交易日志;
日志记录模块,用于采用oracle自治事物将所述联机交易日志记录到日志表中;
日志表存储模块,用于将所述日志表存储在oracle数据库中。
在本发明的优选实施方式中,所述设备还包括:
日志格式设定模块,用于根据所述联机交易日志设定日志表的数据结构,所述数据结构包括键值、单独字段以及应用数据字段。
在本发明的优选实施方式中,所述键值包括日志流水号以及日志序号,所述日志流水号采用oracle的序号发生器生成。
在本发明的优选实施方式中,所述设备还包括:
检索信息采集模块,用于采集检索信息,所述检索信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
概要信息查询模块,用于根据所述检索信息查询所述oracle数据库,得到与所述检索信息对应的概要信息,所述概要信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
应用数据确定模块,用于根据所述概要信息确定与所述检索信息对应的应用数据。
在本发明的优选实施方式中,所述设备还包括:
解析结构定义模块,用于定义所述联机交易日志的解析结构,所述解析结构包括字段顺序、名称、类型以及大小。
在本发明的优选实施方式中,所述设备还包括:
数据解析模块,用于对所述应用数据按照所述解析格式进行拆分。
本发明的有益效果在于,提供了一种基于oracle数据库的联机交易日志的记录方法以及设备,日志记录独立于联机交易单独提交生效,不影响联机交易,日志记录无资源瓶颈,可高并发,记录全面,保留第一现场;日志格式规整,监控效率高;可以快捷定位及查询相关日志,并清楚再现交易的输入及输出情况。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录方法的实施方式一的流程图;
图2为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录方法的实施方式二的流程图;
图3为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录方法的实施方式三的流程图;
图4为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录方法的实施方式四的流程图;
图5为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录设备的实施方式一的结构框图;
图6为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录设备的实施方式二的结构框图;
图7为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录设备的实施方式三的结构框图;
图8为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录设备的实施方式四的结构框图;
图9为本发明提供的具体实施例中联机交易日志的示意图;
图10为本发明提供的具体实施例中联机交易日志应用数据区存储的数据示意图;
图11为本发明提供的具体实施例中联机交易日志应用数据区存储的数据解析(字段名称与数据对应关系)示意图一;
图12为本发明提供的具体实施例中联机交易日志应用数据区存储的数据解析(字段中文说明与数据对应关系)示意图二;
图13为本发明提供的具体实施例中联机交易日志应用数据区存储的数据解析(字段类型长度与数据对应关系)示意图三;
图14为本发明提供的具体实施例中联机交易日志不输入检索条件检索结果示意图;
图15为本发明提供的具体实施例中联机交易日志以交易柜员为检索条件的检索结果示意图;
图16为本发明提供的具体实施例中联机交易日志以交易柜员为检索条件的检索结果示意图;
图17为本发明提供的具体实施例中联机交易日志检索结果页面选择一笔以查看明细数据的示意图;
图18为本发明提供的具体实施例中数据库记录的应用数据的示意图;
图19为本发明提供的具体实施例中联机交易日志应用数据区存储的数据解析(字段名称与数据对应关系)示意图四;
图20为本发明提供的具体实施例中联机交易日志应用数据区存储的数据解析(字段中文说明与数据对应关系)示意图五;
图21为本发明提供的具体实施例中联机交易日志应用数据区存储的数据解析(字段类型长度与数据对应关系)示意图六。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
现有开放平台联机系统日志大部分为文本格式,日志在同一交易多个实例中会存在记录串行的情况,日志文件过大会导致后续日志记录不成功,查看费时甚至打不开的情况,非常不利于维护。本发明针对此种情况提供一种基于oracle数据库的联机交易日志的记录方法,后续可进行查询、解析操作。
首先对本发明所涉及到的技术术语进行说明:
1、oracle的序号发生器
Oracle提供了序号发生器,本发明使用序号发生器来生成“日志流水号”,以避免采用其它方式可能造成的资源冲突。
2、oracle自治事物
ORACLE提供了自治事务,自治事务打破了数据库的原子性,提供了独立于主程序提交或回退子程序的更改的能力。本发明使用oracle自治事物实现日志记录与联机应用的独立性。
本发明使用了以下上述两项ORACLE技术,在本发明中:
3、CDS:银行电子商业汇票系统。
4、CDS系统日志:每支交易采用一个日志流水号(日志流水号利用ORACLE的sequence来生成),一支交易可以记录多步日志(每步日志一个序号,从一开始累加),“日志流水号+日志序号”组成日志的唯一键值。
5、CDS系统联机程序:在本发明中,第一、二步记录前端(柜面、网银)上送的内容,第三步记录联机程序调用接口程序时送给接口程序的内容,第四步记录接口程序调用IPS远程程序时上送的内容,第五步记录IPS接口返回的内容,第六步记录接口程序返回给联机程序的内容,第七、八、九步记录联机程序返回给前端的内容(这样所有交互内容都进行了记录)。
图1为本发明提出的一种基于oracle数据库的联机交易日志的记录方法的具体流程图,请参阅图1,所述的方法包括:
S101:接收所述联机交易系统的联机交易日志;
S102:采用oracle自治事物将所述联机交易日志记录到日志表中;
S103:将所述日志表存储在oracle数据库中。
在图1所示的实施方式一中,日志记录采用了oracle自治事物,日志记录不影响联机程序的继续执行。
在日常应用中,经常需要记录应用日志,特别是某些不可重现的错误日志。主机平台通常使用VSAM文件作为日志载体,VSAM文件可以设置成不可恢复模式,因此,不管交易最后rollback还是commit,应用日志总能记录下来。开放平台虽然也可以使用SFS文件实现类似VSAM的功能,但是毕竟SFS非主文件系统,因此对SFS文件的操作性能还是比较低下的,且类似的应用几乎没有。记录日志对文件操作比较频繁,如使用SFS文件极有可能导致不可预知的异常。
开放平台目前主要使用文本文件作为日志文件,文本文件写入后不管交易最后rollback还是commit,应用日志总能记录下来。但是文本文件还是有一系列不方便。
本发明采用了ORACLE提供的自治事务,自治事务打破了数据库的原子性,提供了独立于主程序提交或回退子程序的更改的能力。使用自治事务,可以方便的实现应用日志功能(本发明主要针对嵌入式SQL如何使用自治事务展开讨论)。
下面首先介绍ORACLE自治事务。一个事务可以作为一个事务的成分运行。在这种情况下,父事务称为主事务,而独立的子事务称为自治事务。一个自治事务形式的定义为一个独立的事务,它可以从其他事务中调用(注意:虽然子事务可以从父事务中调用,但它独立于父事务)。
程序包、过程、函数和触发器全都可以包含标记为自治的事务。必须在自治事务中包含一个指令,以便ORACLE知道你打算在主事务中使用一个自治事务。与平常的事务一样,自治事务有自己的ROLLBACK和COMMIT语句。主事务通过使用自治事务,可暂停和执行自治事务,并且可从自治事务停止的地方继续执行。换句话说,可离开进行调用的事务的环境,执行作为自治事务成份的SQL语句,或者提交或者退回事务,返回进行调用的事务的环境继续执行父事务(注意:自治事务不与父事务共享事务资源,如锁等)。
自治事务给开发人员提供了创建粒度更细的事务的功能,这里事务将不再是一个要么全执行,要么全不执行的事物。可使嵌套自治事务独立于调用父事务提交或回退。
图2为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录方法的实施方式二的流程图,请参阅图2,在实施方式二中,该方法包括以下步骤:
S201:接收所述联机交易系统的联机交易日志;
S202:根据所述联机交易日志设定日志表的数据结构;
在本实施方式中,首先设计日志格式,根据联机交易系统的记录日志的需要来设计日志表的数据结构。所述数据结构包括键值、单独字段以及应用数据字段。
所述键值包括日志流水号以及日志序号,所述日志流水号采用oracle的序号发生器生成。一个联机交易中日志流水号唯一,日志序号是交易中日志记录的顺序,从1开始逐次加1。
交易名称、柜员、交易时间可以作为检索条件的内容作为单独字段进行存储,其余日志内容可以计入统一的应用数据字段。
以CDS系统举例,CDS系统每笔交易需要记录多条日志记录:
1、联机程序初始化时由前端上传的CTF的所有内容;
2、联机程序调用接口程序前赋给接口区的数据;
3、接口程序调用后台系统(IPS/GLMS)时的输入数据;
4、接口程序调用后台系统(IPS/GLMS),后台系统返回的数据;
5、接口程序返回给联机程序接口区的数据;
6、联机程序返回给前端的TFORM的内容;
7、程序出错的情况下记录返回的错误码信息。
根据以上,可设定日志表的数据结构如下:
键值为:日志流水号、本次序号(本交易中日志的顺序号,从1到7);
联机交易的共有特性作为单独字段:交易码、程序、分支机构、柜员、交易日期、交易时间、最大序号(本交易最多写几笔日志)、TASKNO(此交易的任务号)、返回码、应用数据解析记录(用于解析应用数据的结构名称);
联机交易输入输出等具体的应用数据作为一个大字段存储在应用数据字段。因为CDS系统上送及下传的应用数据不超过3885个字节,因此定义为VAR2(3885),如果超过了4000个字节,可以定义为CLOB类型,如下述表1所示。
表1
S203:采用oracle自治事物将所述联机交易日志记录到日志表中;
S204:将所述日志表存储在oracle数据库中。
如上即是本发明提供的一种基于oracle数据库的联机交易日志的记录方法,将需要记录的内容记录到的日志表,使用ORACLE自治事物,独立于联机交易进行单独提交。无需判断返回情况,日志记录不影响联机交易后续执行。传统日志采用文本方式,是因为文本日志不会随联机程序的回滚而回滚,联机程序失败后日志文件依然留存;但文本有很多问题,本发明采用数据库以后能有效避免这些问题。如果采用普通的数据库操作方法来记录日志,因为交易的原子性,如果交易失败则所有操作都进行回滚,日志数据记录将不会留存。最终日志只能记录成功交易的日志,失败的则无法记录。本发明的日志记录过程作为一支独立的联机子程序而存在,联机程序调用日志记录程序的方法和调用普通的子程序没有区别,但因为采用了自治事物,联机程序如果失败,联机程序所有操作都会回滚,但记录的日志数据不会一起回滚。
图3为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录方法的实施方式三的流程图,请参阅图3,在实施方式三中,所述方法包括除了包括联机交易日志的记录过程,在记录完毕后进行查询,其包括:
S301:接收所述联机交易系统的联机交易日志;
S302:根据所述联机交易日志设定日志表的数据结构;
S303:采用oracle自治事物将所述联机交易日志记录到日志表中;
S304:将所述日志表存储在oracle数据库中;
S305:采集检索信息,所述检索信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
S306:根据所述检索信息查询所述oracle数据库,得到与所述检索信息对应的概要信息,所述概要信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号/或交易码和/或系统代码和/或输入输出标志和/或本次日志序号。
S307:根据所述概要信息确定与所述检索信息对应的应用数据。
也即在实施方式三中,根据检索条件查询日志数据库,多笔回显应用日志的共性字段即概要信息(其包括交易名称、交易机构、交易柜员、交易时间、交易返回结果等),日志记录中的应用数据因其是混合的数据记录且记录较长,不宜在此进行回显。
在日志查询的多笔结果界面,选择一笔日志,根据概要信息可以查看该笔日志应用数据字段记录的详细情况。
在具体的实施方式中,未输入检索条件时,根据日志记录时间倒序多笔显示(多笔显示时不显示日志数据区字段)。
以CDS系统为例,无检索条件的情况下,按照日志序号倒序,本次序号顺序排列回显(默认回显最新的交易日志)如图14所示。设检索条件为柜员号,则输入柜员号0320612,检索该柜员所操作的所有交易日志(可右翻页),此处不回显日志的“应用数据”区,如图15(日志概要第一屏)、图16(日志概要第二屏)所示。选择一笔日志记录,查看“应用数据”,如图17所示。选择概要信息日志序号为000051279,本次序号为2的日志记录,其数据库日志记录的“应用数据”如图18所示。查看的结果如图19所示,已将“应用数据”根据解析结构进行拆分显示,此处显示的是字段名称与应用数据的对应关系。可切换结果记录的显示类型得到字段中文说明与应用数据的对应关系如图20所示,字段类型长度与应用数据的对应关系如图21所示。
图4为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录方法的实施方式四的流程图,请参阅图4,在实施方式四中,所述方法包括除了包括联机交易日志的记录过程,在记录完毕后进行查询之后还可进行解析操作,其包括:
S401:接收所述联机交易系统的联机交易日志;
S402:根据所述联机交易日志设定日志表的数据结构;
S403:采用oracle自治事物将所述联机交易日志记录到日志表中;
S404:将所述日志表存储在oracle数据库中;
S405:采集检索信息,所述检索信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
S406:根据所述检索信息查询所述oracle数据库,得到与所述检索信息对应的概要信息,所述概要信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
S407:根据所述概要信息确定与所述检索信息对应的应用数据。
S408:定义所述联机交易日志的解析结构,所述解析结构包括字段顺序、名称、类型以及大小。联机交易日志中记录的应用数据是没有结构区分的数据,为了便于查看及维护,需要定义相对应的解析结构。解析结构指定了应用数据对应的字段顺序、名称、类型、大小。
以CDS系统为例,跳场交易-跳场回显BGL账户,程序名称CDOM8989,其记录的日志有三笔,如图9所示,以第三笔举例,第三笔定义的解析结构为BDCT989,则解析结构如表2所示:
表2
第三笔应用数据区存储的数据如图10所示(无结构无说明只存储数据值),按照表2所示结构,则第三笔日志解析后如图11(字段名称与应用数据对应关系)、图12(字段中文说明与应用数据对应关系)以及图13(字段类型及长度与应用数据对应关系)所示。在实施方式四中,预先根据不同类型的日志定义不同的解析结构(此结构定义在CDSMSF中,通过OTCP成员管理文件进行维护),后续查询时将日志记录和解析结构相结合,使用户看到的日志包含“字段名称、类型、长度、说明、实际值”等内容,而非一块未拆分的数据。
S409:对所述应用数据按照所述解析格式进行拆分。
在具体的实施例中,如日志记录的数据区如下:
01040002016031001 0320601-承兑已确认111
经过步骤S409解析后显示如下:
票据种类..X(01)..................0
票据号码..X(20)..................1040002016031001
承兑机构..X(5)...................03206
票据状态..X(30)..................01-承兑已确认
也即在实施方式四中,联机系统只需要记录日志和维护日志解析,即可实现独立的、完整的、可检索、可精确查看的日志功能。
以CDS系统为例,柜员在日志概要查询界面,查看日志明细信息,详细展示日志记录的数据区的内容,对数据按照解析格式进行拆解。切换结果记录的显示类型得到的图如图20、图21所示。
如上所述即为本发明提供的一种基于oracle数据库的联机交易日志的记录方法,通过预先设计日志格式、定义日志解析结构,将联机交易系统传递过来的日志数据记录到数据库,用户可通过检索条件查询日志概要信息(可录入检索条件如:日期、交易名称、柜员、交易返回码等),柜员在日志概要查询界面,查看日志明细信息(详细展示日志记录的数据区的内容,对数据按照解析格式进行拆解),其实现了:
1、日志记录无资源瓶颈,可高并发,记录全面,保留第一现场;
2、日志格式规整,易于监控且监控效率高;
3、通过解析日志可以清楚再现交易的输入及输出情况;
4、可以通过交易级和系统级参数来开关日志;
5、日志无大小限制,可通过数据库方便进行归档及备份;
6、可通过日志进行交易统计,提供决策依据。
应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
在介绍了本发明示例性实施方式的方法之后,接下来,参考附图对本发明示例性实施方式的设备进行介绍。该设备的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”和“单元”,可以是实现预定功能的软件和/或硬件。尽管以下实施例所描述的模块较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5为本发明提出的一种基于oracle数据库的联机交易日志的记录设备的具体结构框图,请参阅图5,所述的方法设备包括:
日志接收模块101,用于接收所述联机交易系统的联机交易日志;
日志记录模块102,用于采用oracle自治事物将所述联机交易日志记录到日志表中;
日志表存储模块103,用于将所述日志表存储在oracle数据库中。
在图5所示的实施方式一中,日志记录采用了oracle自治事物,日志记录不影响联机程序的继续执行。
在日常应用中,经常需要记录应用日志,特别是某些不可重现的错误日志。主机平台通常使用VSAM文件作为日志载体,VSAM文件可以设置成不可恢复模式,因此,不管交易最后rollback还是commit,应用日志总能记录下来。开放平台虽然也可以使用SFS文件实现类似VSAM的功能,但是毕竟SFS非主文件系统,因此对SFS文件的操作性能还是比较低下的,且类似的应用几乎没有。记录日志对文件操作比较频繁,如使用SFS文件极有可能导致不可预知的异常。
开放平台目前主要使用文本文件作为日志文件,文本文件写入后不管交易最后rollback还是commit,应用日志总能记录下来。但是文本文件还是有一系列不方便。
本发明采用了ORACLE提供的自治事务,自治事务打破了数据库的原子性,提供了独立于主程序提交或回退子程序的更改的能力。使用自治事务,可以方便的实现应用日志功能(本发明主要针对嵌入式SQL如何使用自治事务展开讨论)。
图6为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录设备的实施方式二的流程结构框图,请参阅图6,在实施方式二中,该设备还包括:
日志格式设定104,用于根据所述联机交易日志设定日志表的数据结构。
在本实施方式中,首先设计日志格式,根据联机交易系统的记录日志的需要来设计日志表的数据结构。所述数据结构包括键值、单独字段以及应用数据字段。
所述键值包括日志流水号以及日志序号,所述日志流水号采用oracle的序号发生器生成。一个联机交易中日志流水号唯一,日志序号是交易中日志记录的顺序,从1开始逐次加1。
交易名称、柜员、交易时间可以作为检索条件的内容作为单独字段进行存储,其余日志内容可以计入统一的应用数据字段。
如上即是本发明提供的一种基于oracle数据库的联机交易日志的记录设备的实施方式二,将需要记录的内容记录到的日志表,使用ORACLE自治事物,独立于联机交易进行单独提交。无需判断返回情况,日志记录不影响联机交易后续执行。传统日志采用文本方式,是因为文本日志不会随联机程序的回滚而回滚,联机程序失败后日志文件依然留存;但文本有很多问题,本发明采用数据库以后能有效避免这些问题。如果采用普通的数据库操作方法来记录日志,因为交易的原子性,如果交易失败则所有操作都进行回滚,日志数据记录将不会留存。最终日志只能记录成功交易的日志,失败的则无法记录。本发明的日志记录过程作为一支独立的联机子程序而存在,联机程序调用日志记录程序的方法和调用普通的子程序没有区别,但因为采用了自治事物,联机程序如果失败,联机程序所有操作都会回滚,但记录的日志数据不会一起回滚。
图7为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录设备的实施方式三的结构框图,请参阅图7,在实施方式三中,所述设备还包括:
检索信息采集模块105,用于采集检索信息,所述检索信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
概要信息查询模块106,用于根据所述检索信息查询所述oracle数据库,得到与所述检索信息对应的概要信息,所述概要信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
应用数据确定模块107,用于根据所述概要信息确定与所述检索信息对应的应用数据。
也即在实施方式三中,根据检索条件查询日志数据库,多笔回显应用日志的共性字段即概要信息(其包括交易名称、交易机构、交易柜员、交易时间、交易返回结果等),日志记录中的应用数据因其是混合的数据记录且记录较长,不宜在此进行回显。
在日志查询的多笔结果界面,选择一笔日志,根据概要信息可以查看该笔日志应用数据字段记录的详细情况。
在具体的实施方式中,未输入检索条件时,根据日志记录时间倒序多笔显示(多笔显示时不显示日志数据区字段)。
以CDS系统为例,无检索条件的情况下,按照日志序号倒序,本次序号顺序排列回显(默认回显最新的交易日志)如图14所示。设检索条件为柜员号,则输入柜员号0320612,检索该柜员所操作的所有交易日志(可右翻页),此处不回显日志的“应用数据”区,如图15、图16所示。选择一笔日志记录,查看“应用数据”,如图17所示。选择概要信息日志序号为000051279,本次序号为2的日志记录,其数据库日志记录的“应用数据”以及查看结果如图18所示。查看的结果如图19所示,部分结果,后续需翻页查看。
图8为本发明实施例提供的一种基于oracle数据库的联机交易日志的记录设备的实施方式四的结构框图,请参阅图8,在实施方式四中,所述设备除了包括联机交易日志的记录模块,在记录完毕后进行查询之后还可进行解析操作,其包括:
解析结构定义模块108,用于定义所述联机交易日志的解析结构,所述解析结构包括字段顺序、名称、类型以及大小。联机交易日志中记录的应用数据是没有结构区分的数据,为了便于查看及维护,需要定义相对应的解析结构。解析结构指定了应用数据对应的字段顺序、名称、类型、大小。
以CDS系统为例,跳场交易-跳场回显BGL账户,程序名称CDOM8989,其记录的日志有三笔,如图9所示,以第三笔举例,第三笔定义的解析结构为BDCT989,则解析结构如表2所示。
第三笔应用数据区存储的数据如图10所示,则第三笔日志解析后如图11、图12以及图13所示。
在实施方式四中,预先根据不同类型的日志定义不同的解析结构(此结构定义在CDSMSF中,通过OTCP成员管理文件进行维护),后续查询时将日志记录和解析结构相结合,使用户看到的日志包含“字段名称、类型、长度、说明、实际值”等内容,而非一块未拆分的数据。
数据解析模块109,用于对所述应用数据按照所述解析格式进行拆分。
在具体的实施例中,如日志记录的数据区如下:
01040002016031001 0320601-承兑已确认111
经过步骤S409解析后显示如下:
票据种类..X(01)..................0
票据号码..X(20)..................1040002016031001
承兑机构..X(5)...................03206
票据状态..X(30)..................01-承兑已确认
也即在实施方式四中,联机系统只需要记录日志和维护日志解析,即可实现独立的、完整的、可检索、可精确查看的日志功能。
以CDS系统为例,柜员在日志概要查询界面,查看日志明细信息,详细展示日志记录的数据区的内容,对数据按照解析格式进行拆解。切换结果记录的显示类型得到的图如图20、图21所示。
如上所述即为本发明提供的一种基于oracle数据库的联机交易日志的记录设备,通过预先设计日志格式、定义日志解析结构,将联机交易系统传递过来的日志数据记录到数据库,用户可通过检索条件查询日志概要信息(可录入检索条件如:日期、交易名称、柜员、交易返回码等),柜员在日志概要查询界面,查看日志明细信息(详细展示日志记录的数据区的内容,对数据按照解析格式进行拆解)。
此外,尽管在上文详细描述中提及了系统的若干单元模块,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。同样,上文描述的一个单元的特征和功能也可以进一步划分为由多个单元来具体化。
本发明提供的基于oracle数据库的联机交易日志的记录方法及设备适用任何联机交易系统,其将联机交易的共有特征作为单独字段存储(如:交易名称、交易机构、交易柜员、交易时间、交易返回结果(成功、失败)),将联机交易私有特征数据项作为一个大字段进行存储,(如:联机交易输入和输出数据(行号、账号、名称等交易特有的业务字段)、跨系统调用的输入和输出数据)。
本发明提供的基于oracle数据库的联机交易日志的记录方法及设备适用任何联机交易系统的查询模块,可以根据联机交易的共有特征字段对日志进行检索,因为联机交易私有的特征数据是一整块数据,只存储了各项数据的值,并没有数据的长度含义等数据,所以其在检索结果中并未列出。
本本发明提供的基于oracle数据库的联机交易日志的记录方法及设备适用任何联机交易系统的解析模块,是在查询模块查询出一条日志的基础上,针对该日志的私有特征数据,按照提前定义的格式及含意将数据逐字段进行对照显示,使维护人员可以清晰明了的看出该交易输入了那些字段其含义和取值是什么。
本发明的关键点在于:
1、独立于主交易的日志记录设备:主交易成功与否与日志记录设备成功与否无关联,两者作为独立事物独自提交;
2、可配置的日志记录的格式化解析功能。
本发明具有以下显著特点:
独立性:日志记录独立于联机交易单独提交生效,不影响联机交易;
高可用:日志记录无资源瓶颈,可高并发,记录全面,保留第一现场;
易监控:日志格式规整,监控效率高;
高可读:通过解析模块可以快捷定位及查询相关日志,并清楚再现交易的输入及输出情况;
可配置:可以通过交易级和系统级参数来开关日志。
本发明的有益效果在于:
1、日志记录无资源瓶颈,可高并发,记录全面,保留第一现场;
2、日志格式规整,易于监控且监控效率高;
3、通过解析模块可以清楚再现交易的输入及输出情况;
4、可以通过交易级和系统级参数来开关日志;
5、日志无大小限制,可通过数据库方便进行归档及备份;
6、可通过日志进行交易统计,提供决策依据。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(HardwareDescription Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(AdvancedBoolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(JavaHardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby HardwareDescription Language)等,目前最普遍使用的是VHDL(Very-High-Speed IntegratedCircuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (12)
1.一种基于oracle数据库的联机交易日志的记录方法,其特征是,所述方法包括:
接收所述联机交易系统的联机交易日志;
采用oracle自治事物将所述联机交易日志记录到日志表中;
将所述日志表存储在oracle数据库中。
2.根据权利要求1所述的方法,其特征是,所述方法还包括:
根据所述联机交易日志设定日志表的数据结构,所述数据结构包括键值、单独字段以及应用数据字段。
3.根据权利要求2所述的方法,其特征是,所述键值包括日志流水号以及日志序号,所述日志流水号采用oracle的序号发生器生成。
4.根据权利要求2所述的方法,其特征是,所述方法还包括:
采集检索信息,所述检索信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
根据所述检索信息查询所述oracle数据库,得到与所述检索信息对应的概要信息,所述概要信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
根据所述概要信息确定与所述检索信息对应的应用数据。
5.根据权利要求4所述的方法,其特征是,所述方法还包括:
定义所述联机交易日志的解析结构,所述解析结构包括字段顺序、名称、类型以及大小。
6.根据权利要求5所述的方法,其特征是,所述方法还包括:
对所述应用数据按照所述解析格式进行拆分。
7.一种基于oracle数据库的联机交易日志的记录设备,其特征是,所述设备包括:
日志接收模块,用于接收所述联机交易系统的联机交易日志;
日志记录模块,用于采用oracle自治事物将所述联机交易日志记录到日志表中;
日志表存储模块,用于将所述日志表存储在oracle数据库中。
8.根据权利要求7所述的设备,其特征是,所述设备还包括:
日志格式设定模块,用于根据所述联机交易日志设定日志表的数据结构,所述数据结构包括键值、单独字段以及应用数据字段。
9.根据权利要求8所述的设备,其特征是,所述键值包括日志流水号以及日志序号,所述日志流水号采用oracle的序号发生器生成。
10.根据权利要求8所述的设备,其特征是,所述设备还包括:
检索信息采集模块,用于采集检索信息,所述检索信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
概要信息查询模块,用于根据所述检索信息查询所述oracle数据库,得到与所述检索信息对应的概要信息,所述概要信息包括日期和/或交易名称和/或柜员号和/或交易机构和/或交易返回码和/或日志序号;
应用数据确定模块,用于根据所述概要信息确定与所述检索信息对应的应用数据。
11.根据权利要求10所述的设备,其特征是,所述设备还包括:
解析结构定义模块,用于定义所述联机交易日志的解析结构,所述解析结构包括字段顺序、名称、类型以及大小。
12.根据权利要求11所述的设备,其特征是,所述设备还包括:
数据解析模块,用于对所述应用数据按照所述解析格式进行拆分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611071627.1A CN106503264A (zh) | 2016-11-29 | 2016-11-29 | 基于oracle数据库的联机交易日志记录方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611071627.1A CN106503264A (zh) | 2016-11-29 | 2016-11-29 | 基于oracle数据库的联机交易日志记录方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106503264A true CN106503264A (zh) | 2017-03-15 |
Family
ID=58328938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611071627.1A Pending CN106503264A (zh) | 2016-11-29 | 2016-11-29 | 基于oracle数据库的联机交易日志记录方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106503264A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145565A (zh) * | 2017-05-04 | 2017-09-08 | 深圳乐信软件技术有限公司 | 一种流水数据的生成方法、装置及系统 |
CN109447800A (zh) * | 2018-10-19 | 2019-03-08 | 中国银行股份有限公司 | 一种日志记录方法、装置及电子设备 |
CN111967874A (zh) * | 2020-08-17 | 2020-11-20 | 中国银行股份有限公司 | 交易日志记录方法及装置 |
WO2021012932A1 (zh) * | 2019-07-22 | 2021-01-28 | 中兴通讯股份有限公司 | 事务回滚方法及装置、数据库、系统、计算机存储介质 |
CN114090530A (zh) * | 2021-11-23 | 2022-02-25 | 中国银行股份有限公司 | 分布式架构下的日志汇总查询方法及装置 |
CN114817245A (zh) * | 2022-04-02 | 2022-07-29 | 北京奥星贝斯科技有限公司 | 数据库日志的存储方法、数据库日志的分析方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016771A1 (en) * | 1999-12-14 | 2002-02-07 | Kevin Carothers | System and method for managing financial transaction information |
CN101169862A (zh) * | 2006-10-27 | 2008-04-30 | 宏瞻资讯股份有限公司 | 银行分行业务整合的系统与方法 |
CN103312549A (zh) * | 2013-06-26 | 2013-09-18 | 华为技术有限公司 | 一种事务管理方法及装置和系统 |
CN105119762A (zh) * | 2015-09-23 | 2015-12-02 | 普元信息技术股份有限公司 | 云平台基于日志实现交易回放和重做的系统及方法 |
-
2016
- 2016-11-29 CN CN201611071627.1A patent/CN106503264A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016771A1 (en) * | 1999-12-14 | 2002-02-07 | Kevin Carothers | System and method for managing financial transaction information |
CN101169862A (zh) * | 2006-10-27 | 2008-04-30 | 宏瞻资讯股份有限公司 | 银行分行业务整合的系统与方法 |
CN103312549A (zh) * | 2013-06-26 | 2013-09-18 | 华为技术有限公司 | 一种事务管理方法及装置和系统 |
CN105119762A (zh) * | 2015-09-23 | 2015-12-02 | 普元信息技术股份有限公司 | 云平台基于日志实现交易回放和重做的系统及方法 |
Non-Patent Citations (1)
Title |
---|
RONGER: "Oracle之自治事务", 《HTTP://WWW.CNBLOGS.COM/RONGER/ARCHIVE/2012/02/15/2352527.HTML》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145565A (zh) * | 2017-05-04 | 2017-09-08 | 深圳乐信软件技术有限公司 | 一种流水数据的生成方法、装置及系统 |
CN107145565B (zh) * | 2017-05-04 | 2019-10-22 | 深圳乐信软件技术有限公司 | 一种流水数据的生成方法、装置及系统 |
CN109447800A (zh) * | 2018-10-19 | 2019-03-08 | 中国银行股份有限公司 | 一种日志记录方法、装置及电子设备 |
WO2021012932A1 (zh) * | 2019-07-22 | 2021-01-28 | 中兴通讯股份有限公司 | 事务回滚方法及装置、数据库、系统、计算机存储介质 |
CN111967874A (zh) * | 2020-08-17 | 2020-11-20 | 中国银行股份有限公司 | 交易日志记录方法及装置 |
CN111967874B (zh) * | 2020-08-17 | 2023-09-19 | 中国银行股份有限公司 | 交易日志记录方法及装置 |
CN114090530A (zh) * | 2021-11-23 | 2022-02-25 | 中国银行股份有限公司 | 分布式架构下的日志汇总查询方法及装置 |
CN114817245A (zh) * | 2022-04-02 | 2022-07-29 | 北京奥星贝斯科技有限公司 | 数据库日志的存储方法、数据库日志的分析方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106503264A (zh) | 基于oracle数据库的联机交易日志记录方法及设备 | |
US8412549B2 (en) | Analyzing business data for planning applications | |
CN102799634B (zh) | 数据存储方法及装置 | |
CN100594498C (zh) | 海量数据实时处理架构及用于该架构的实时随需处理平台 | |
Green et al. | The skull beneath the skin: entity-relationship models of information artifacts | |
CN108536761A (zh) | 报表数据查询方法及服务器 | |
CN107644286A (zh) | 工作流处理方法及装置 | |
US7702609B2 (en) | Adapting to inexact user input | |
US8732159B2 (en) | Generic outer join across database borders | |
CN111913808B (zh) | 任务分配的方法、装置、设备以及存储介质 | |
CN103425723A (zh) | 删除多级存储架构中的记录而不进行记录锁定 | |
CN103425722A (zh) | 无日志的原子数据移动 | |
Dong et al. | Design of RFID middleware based on complex event processing | |
CN103377289A (zh) | 统一表查询处理 | |
US20090076867A1 (en) | Balanced scorecard and reporting tool | |
CN102594927A (zh) | 基于神经网络的云端服务器结构 | |
US9734177B2 (en) | Index merge ordering | |
CN103077192B (zh) | 一种数据处理方法及其系统 | |
US9031930B2 (en) | Data browser for group-by data access | |
CN104123104B (zh) | 日志控制系统及方法 | |
CN105574027A (zh) | 基于oltp/olap混合应用下多维度性能数据存储方法、装置及系统 | |
Babu et al. | DESH: Database evaluation system with hibernate ORM framework | |
US8229946B1 (en) | Business rules application parallel processing system | |
Gadepally et al. | Version 0.1 of the bigdawg polystore system | |
CN108228838A (zh) | 一种业务数据的变更方法和变更装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170315 |