CN111400085A - 事务回滚异常的处理方法、装置、计算机设备及存储介质 - Google Patents
事务回滚异常的处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111400085A CN111400085A CN202010098092.7A CN202010098092A CN111400085A CN 111400085 A CN111400085 A CN 111400085A CN 202010098092 A CN202010098092 A CN 202010098092A CN 111400085 A CN111400085 A CN 111400085A
- Authority
- CN
- China
- Prior art keywords
- transaction
- database
- data
- abnormal
- connection
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例属于人工智能技术领域,涉及一种事务回滚异常的处理方法,包括:接收监控装置发送的异常信号;响应所述异常信号,判断线程起始时间与事务起始时间是否一致;若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件;若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动。本申请还提供一种事务回滚异常的处理装置、计算机设备及存储介质。本申请还提供一种事务回滚异常的处理装置、计算机设备及存储介质。有效解决系统数据库升级过程中出现的事务无法回滚的问题,不再需要手工处理异常数据,节省了人力及重复处理异常的时间,保证了业务系统的稳定性。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及书屋回滚异常的处理方法、装置、计算机设备及存储介质。
背景技术
oracle数据库是目前使用比较广泛的关系型数据库之一,随着官方对漏洞的修复和功能模块的增加,oracle数据库的版本已经从原来普遍使用的10g/11g发展到现在的12c,很多企业和单位都需要定期对数据库进行升级来保障数据库的安全性。然而,随着oracle数据库版本的更新至12C时发现,数据库版本与weblogic(基于JAVAEE架构的中间件)JDBC(Java DataBase Connectivity,java数据库连接)驱动不兼容导致事务无法正常回滚的现象。
现有一种事务异常的处理方法,即通过手工查找定为异常数据,并根据异常数据进行逐步排查、测试和验证,从而达到排除异常的效果。
然而,传统的事务异常处理方法普遍效率较低,通过手工查找定为异常数据需要耗费极大的人力资源,处理效率低。
发明内容
本申请实施例的目的在于提出一种事务回滚异常的处理方法,旨在解决现有的事务异常处理方法普遍耗费极大的人力资源,处理效率低的问题。
为了解决上述技术问题,本申请实施例提供一种事务回滚异常的处理方法,采用了如下所述的技术方案:
接收监控装置发送的异常信号;
响应所述异常信号,读取线程备份系统,在所述线程备份系统中获取独占线程数据,所述独占线程数据至少携带有线程起始时间;
读取数据库,在所述数据库中获取持续活跃的事务数据,所述事务数据至少携带有事务起始时间;
判断所述线程起始时间与所述事务起始时间是否一致;
若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件;
若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动;
若所述线程起始时间与所述事务起始时间不一致或所述事务数据不满足连接异常条件,则输出所述持续活跃的事务数据。
为了解决上述技术问题,本申请实施例提供一种事务回滚异常的处理装置,采用了如下所述的技术方案:
信号接收模块,用于接收监控装置发送的异常信号;
信号响应模块,用于响应所述异常信号,读取线程备份系统,在所述线程备份系统中获取独占线程数据,所述独占线程数据至少携带有线程起始时间;
数据读取模块,用于读取数据库,在所述数据库中获取持续活跃的事务数据,所述事务数据至少携带有事务起始时间;
时间判断模块,用于判断所述线程起始时间与所述事务起始时间是否一致;
异常判断模块,用于若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件;
驱动更新模块,用于若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动;
数据输出模块,用于若所述线程起始时间与所述事务起始时间不一致或所述事务数据不满足连接异常条件,则输出所述持续活跃的事务数据。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
包括存储器和处理器,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述事务回滚异常的处理方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述事务回滚异常的处理方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本发明申请提供了一种事务回滚异常的处理方法,接收监控装置发送的异常信号;响应所述异常信号,读取线程备份系统,在所述线程备份系统中获取独占线程数据,所述独占线程数据至少携带有线程起始时间;读取数据库,在所述数据库中获取持续活跃的事务数据,所述事务数据至少携带有事务起始时间;判断所述线程起始时间与所述事务起始时间是否一致;若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件;若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动;若所述线程起始时间与所述事务起始时间不一致或所述事务数据不满足连接异常条件,则输出所述持续活跃的事务数据。通过获知异常信号的来源是否源于连接异常导致,若是连接异常导致,则可通过更新数据库中的连接驱动进行解决,即可有效解决升级过程中出现的事务无法回滚问题,不再需要手工处理异常数据,节省了人力及重复处理异常的时间,保证了业务系统的稳定性。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的事务回滚异常的处理方法的实现流程图;
图2是图1中步骤S105的实现流程图;
图3是图1中步骤S106的实现流程图;
图4是本发明实施例一提供的目标连接驱动的测试方法的结构示意图;
图5是图4中步骤S403的实现流程图;
图6是本发明实施例二提供的事务回滚异常的处理装置的结构示意图;
图7是本发明实施例二提供的异常判断模块的结构示意图;
图8是本发明实施例二提供的驱动更新模块的结构示意图;
图9是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本发明实施例提供的事务回滚异常的处理方法,通过通过获知异常信号的来源是否源于连接异常导致,若是连接异常导致,则可通过更新数据库中的连接驱动进行解决,即可有效解决升级过程中出现的事务无法回滚问题,不再需要手工处理异常数据,节省了人力及重复处理异常的时间,保证了业务系统的稳定性。
实施例一
图1示出了本发明实施例一提供的事务回滚异常的处理方法的实现流程图,为了便于说明,仅示出与本发明相关的部分。
在步骤S101中,接收监控装置发送的异常信号。
在本发明实施例中,监控装置为适用于oracle数据库的实时检测工具,用于收集操作系统的统计信息,作为示例,该监控装置可以是Weblogic管理控制台,可以实时获取各性能指标,通过控制台,可以对weblogic的性能及运行状况、发布的应用、资源等进行监视;该监控装置还可以是CHM(Cluster Health Monitor),CHM会通过OS API来收集操作系统的统计信息,如内存、SWAP空间使用率、进程、IO使用率、网络等相关的数据,应当理解,此处对监控装置的举例仅为方便理解,不用于限定本发明。
在本发明实施例中,异常信号指的是应用程序独占线程数据达到指定的监控阈值,监控阈值可以是10个、15个或者20个等,具体不做限定,该异常信号还可以通过电话、邮件等警告的方式通知到该工作人员,以便其及时检查应用程序发现异常实例。
在步骤S102中,响应所述异常信号,读取线程备份系统,在所述线程备份系统中获取独占线程数据,所述独占线程数据至少携带有线程起始时间。
在本发明实施例中,线程备份系统用于将特定时间的储存装置之线程部分的内容记录在另一储存装置中。将满足时间特征的线程全部进行备份,以便用于查找定位异常数据的来源。
在本发明实施例中,独占线程数据指的是产生hogging线程的数据,线程在尝试回滚事务时,由于需要获取的资源被锁,从而导致尝试回滚该事务的线程回滚失败被挂起,进而导致产生更多的hogging线程。
在本发明实施例中,线程起始时间用于记录回滚某个事务所启动的线程的时间节点。
在步骤S103中,读取数据库,在所述数据库中获取持续活跃的事务数据,所述事务数据至少携带有事务起始时间。
在本发明实施例中,数据库指的是oracle数据库。
在本发明实施例中,持续活跃的事务数据指的是在上述oracle数据库中持续为“ACTIVE”状态的事务。
在本发明实施例中,事务起始时间用于记录该事务所启动的时间节点。
在步骤S104中,判断所述线程起始时间与所述事务起始时间是否一致。
在本发明实施例中,过判断线程起始时间和事务起始时间是否一致,从而确定该线程是否用于回滚该事务。
在步骤S105中,若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件。
在本发明实施例中,连接异常条件指的是上述持续活跃的事务数据没有进行任何数据库的操作,同时也没有正常关闭的条件。作为示例,例如Retry rollback request fortx(重试Tx的回滚请求):'Xid=BEA1-2C9101B1098244D0337F(212363144),Status(状态)=Unknown(未知),numRepliesOwedMe=0(起源于我的答复数),numRepliesOwedOthers=0(起源于他人的答复数),应当理解,此处对满足连接异常条件的举例仅为方便理解,不用于限定本发明。
在步骤S106中,若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动。
在本发明实施例中,原始连接驱动指的是上述oracle数据库中当前正在使用的连接驱动,具体的,该原始连接驱动为ojdbc6.jar(11.2.0.3.0版本)。
在本发明实施例中,目标连接驱动指的是适用于12.1.0.2.0版本oracle数据库的连接驱动。
在步骤S107中,若所述线程起始时间与所述事务起始时间不一致或所述事务数据不满足连接异常条件,则输出所述持续活跃的事务数据。
在本发明实施例中,当异常信号的来源不是连接异常导致,不能通过更新连接驱动去解决回滚异常的情况下,系统会将数据库中持续活跃的事务数据输出至工作人员,以便工作人员进行人工排查。
在本发明实施例中,提供了一种事务回滚异常的处理方法,接收监控装置发送的异常信号;响应所述异常信号,读取线程备份系统,在所述线程备份系统中获取独占线程数据,所述独占线程数据至少携带有线程起始时间;读取数据库,在所述数据库中获取持续活跃的事务数据,所述事务数据至少携带有事务起始时间;判断所述线程起始时间与所述事务起始时间是否一致;若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件;若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动;若所述线程起始时间与所述事务起始时间不一致或所述事务数据不满足连接异常条件,则输出所述持续活跃的事务数据。通过获知异常信号的来源是否源于连接异常导致,若是连接异常导致,则可通过更新数据库中的连接驱动进行解决,即可有效解决升级过程中出现的事务无法回滚问题,不再需要手工处理异常数据,节省了人力及重复处理异常的时间,保证了业务系统的稳定性。
继续参考图2,示出了图1中步骤S105的实现流程图,为了便于说明,仅示出与本发明相关的部分。
作为实施例一的一些可选实现方式中,上述步骤S105具体包括:步骤S201、步骤S202、步骤S203以及步骤S204。
在步骤S201中,在所述数据库的会话控制表中获取与所述持续活跃的事务数据相对应的非活跃会话控制数据。
在本发明实施例中,会话控制表指的是在人机交互的过程中,保持用户的整个会话活动的互动与计算机系统跟踪的记录过程。
在本发明实施例中,当获取到持续活跃的事务数据之后,可根据该持续活跃的事务数据的特殊交换地址关联到会话控制表,从而查找到与持续活跃的事务数据相关联的非活跃状态的会话控制数据。
在步骤S202中,判断所述非活跃会话控制数据是否存在数据库操作记录。
在本发明实施例中,数据操作记录指的是人机交互过程中进行人机互动的操作记录。
在步骤S203中,若所述非活跃会话控制数据存在数据库操作记录,则所述事务数据不满足连接异常条件。
在本发明实施例中,当非活跃会话控制数据中存在数据库操作记录,则说明在人机交互的过程中,连接驱动的运作是正常的,事务回滚异常的原因不是连接驱动问题导致的,存在其他原因。
在步骤S204中,若所述非活跃会话控制数据不存在数据库操作记录,则所述事务数据满足所述连接异常条件。
在本发明实施例中,当非活跃会话控制数据中不存在数据库操作记录,则说明在人机交互的过程中,连接驱动没有启动,人机交互无法实现正常的数据连接,说明事务回滚异常的原因是连接驱动问题导致的。
继续参考图3,示出了图1中步骤S106的实现流程图,为了便于说明,仅示出与本发明相关的部分。
作为本发明实施例一的一些可选实现方式中,上述步骤S106具体包括:步骤S301、步骤S302以及步骤S303。
在步骤S301中,若所述事务数据满足所述连接异常条件,则判断所述数据库的数据是否全为12C数据库。
在本发明实施例中,12C数据库指的是Oracle12C数据库,即应用版本为12.1.0.2.0的Oracle数据库。
在步骤S302中,若所述数据库的数据全为12C数据库,则将所述数据库的所述原始连接驱动替换为所述目标连接驱动。
在步骤S303中,若所述数据库的数据不全为12C数据库,则输出数据库不兼容信号。
在本发明实施例中,由于上述目标连接驱动仅适用于12.1.0.2.0版本的Oracle数据库,如果当前的数据库环境存在Oracle 10g数据库与12c数据库同时在使用的情况,则会出现不兼容的现象,因此,通过判断数据库是否全为12C数据库,从而保证在更新连接驱动时不会出现不兼容的现象,有效提高系统的稳定性。
继续参考图4,示出了目标连接驱动的测试方法的实现流程图,为了便于说明,仅示出与本发明相关的部分。
作为实施例一的一些可选实现方式中,在步骤S106之后,上述电子设备还可以执行以下步骤:步骤S401、步骤S402、步骤S403以及步骤S404。
在步骤S401中,在测试环境中运行所述目标连接驱动,所述测试环境的数据与所述数据库的数据相同。
在本发明实施例中,测试环境指的是测试运行其上的软件和硬件环境的描述,以及任何其它与被测软件交互的软件,包括驱动和桩。其中,连接驱动为上述目标连接驱动,而其他计算机硬件、软件、网络设备、历史数据等均与系统当前使用的数据库的数据相同。
在步骤S402中,判断所述测试环境的运行结果是否存在所述异常信号。
在步骤S403中,若所述测试环境的运行结果不存在所述异常信号,则输出异常解除成功信号。
在步骤S404中,若所述测试环境的运行结果存在所述异常信号,则输出异常解除失败信号。
在本发明实施例中,通过在与系统所使用的数据库数据相同的测试环境中,更改连接驱动这里变量进行运行测试,判断更新连接驱动后是否仍然出现异常信号,从而确定是否能够解决事务回滚异常问题,提高系统的稳定性及实用性。
继续参考图5,示出了图4中步骤S403的实现流程图,为了便于说明,仅示出与本发明相关的部分。
作为实施例一的一些可选实现方式中,上述步骤S403具体包括:步骤S501、步骤S502以及步骤S503。
在步骤S501中,判断所述测试环境的运行结果是否存在其他异常信号。
在本发明实施例中,其他异常信号指的除了上述持续活跃事务以外的其他事务异常信号。该其他事务是除了当前出现持续为ACTIVE(活跃的)的状态的事务所对应的业务,例如保险业务、保全业务等等,那么,其他事务则指的是用于执行其他业务的事务。
在步骤S502中,若所述测试环境的运行结果存在其他异常信号,则输出所述异常解除失败信号。
在步骤S503中,若所述测试环境的运行结果不存在其他异常信号,则输出所述异常解除成功信号。
在本发明实施例中,为了避免当更新连接驱动后,导致其他事务出现回滚异常的不兼容情况,从而通过判断测试环境的运行结果是否存在其他异常信号,确保更新连接驱动能够解决事务回滚异常问题的同时不会影响其他事务的正常运行,保证了系统的稳定性。
综上所述,本发明申请提供了一种事务回滚异常的处理方法,接收监控装置发送的异常信号;响应所述异常信号,读取线程备份系统,在所述线程备份系统中获取独占线程数据,所述独占线程数据至少携带有线程起始时间;读取数据库,在所述数据库中获取持续活跃的事务数据,所述事务数据至少携带有事务起始时间;判断所述线程起始时间与所述事务起始时间是否一致;若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件;若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动;若所述线程起始时间与所述事务起始时间不一致或所述事务数据不满足连接异常条件,则输出所述持续活跃的事务数据。通过获知异常信号的来源是否源于连接异常导致,若是连接异常导致,则可通过更新数据库中的连接驱动进行解决,即可有效解决升级过程中出现的事务无法回滚问题,不再需要手工处理异常数据,节省了人力及重复处理异常的时间,保证了业务系统的稳定性。同时,由于上述目标连接驱动仅适用于12.1.0.2.0版本的Oracle数据库,如果当前的数据库环境存在Oracle 10g数据库与12c数据库同时在使用的情况,则会出现不兼容的现象,因此,通过判断数据库是否全为12C数据库,从而保证在更新连接驱动时不会出现不兼容的现象,有效提高系统的稳定性;通过在与系统所使用的数据库数据相同的测试环境中,更改连接驱动这里变量进行运行测试,判断更新连接驱动后是否仍然出现异常信号,从而确定是否能够解决事务回滚异常问题,提高系统的稳定性及实用性;为了避免当更新连接驱动后,导致其他事务出现回滚异常的不兼容情况,从而通过判断测试环境的运行结果是否存在其他异常信号,确保更新连接驱动能够解决事务回滚异常问题的同时不会影响其他事务的正常运行,保证了系统的稳定性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
实施例二
进一步参考图6,作为上述图1所示方法的实现,本申请提供了一种事务回滚异常的处理装置,该装置实施例与图1所示的方法实施例相对应,该黄纸具体可以应用于各种电子设备中。
如图6所示,本发明实施例二提供的事务回滚异常的处理装置100包括:信号接收模块101、信号响应模块102、数据读取模块103、时间判断模块104、异常判断模块105、驱动更新模块106以及数据输出模块。其中:
信号接收模块101,用于接收监控装置发送的异常信号;
信号响应模块102,用于响应所述异常信号,读取线程备份系统,在所述线程备份系统中获取独占线程数据,所述独占线程数据至少携带有线程起始时间;
数据读取模块103,用于读取数据库,在所述数据库中获取持续活跃的事务数据,所述事务数据至少携带有事务起始时间;
时间判断模块104,用于判断所述线程起始时间与所述事务起始时间是否一致;
异常判断模块105,用于若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件;
驱动更新模块106,用于若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动;
数据输出模块107,用于若所述线程起始时间与所述事务起始时间不一致或所述事务数据不满足连接异常条件,则输出所述持续活跃的事务数据。
在本发明实施例中,监控装置为适用于oracle数据库的实时检测工具,用于收集操作系统的统计信息,作为示例,该监控装置可以是Weblogic管理控制台,可以实时获取各性能指标,通过控制台,可以对weblogic的性能及运行状况、发布的应用、资源等进行监视;该监控装置还可以是CHM(Cluster Health Monitor),CHM会通过OS API来收集操作系统的统计信息,如内存、SWAP空间使用率、进程、IO使用率、网络等相关的数据,应当理解,此处对监控装置的举例仅为方便理解,不用于限定本发明。
在本发明实施例中,异常信号指的是应用程序独占线程数据达到指定的监控阈值,监控阈值可以是10个、15个或者20个等,具体不做限定,该异常信号还可以通过电话、邮件等警告的方式通知到该工作人员,以便其及时检查应用程序发现异常实例。
在本发明实施例中,线程备份系统用于将特定时间的储存装置之线程部分的内容记录在另一储存装置中。将满足时间特征的线程全部进行备份,以便用于查找定位异常数据的来源。
在本发明实施例中,独占线程数据指的是产生hogging线程的数据,线程在尝试回滚事务时,由于需要获取的资源被锁,从而导致尝试回滚该事务的线程回滚失败被挂起,进而导致产生更多的hogging线程。
在本发明实施例中,线程起始时间用于记录回滚某个事务所启动的线程的时间节点。
在本发明实施例中,数据库指的是oracle数据库。
在本发明实施例中,持续活跃的事务数据指的是在上述oracle数据库中持续为“ACTIVE”状态的事务。
在本发明实施例中,事务起始时间用于记录该事务所启动的时间节点。
在本发明实施例中,过判断线程起始时间和事务起始时间是否一致,从而确定该线程是否用于回滚该事务。
在本发明实施例中,连接异常条件指的是上述持续活跃的事务数据没有进行任何数据库的操作,同时也没有正常关闭的条件。作为示例,例如Retry rollback request fortx(重试Tx的回滚请求):'Xid=BEA1-2C9101B1098244D0337F(212363144),Status(状态)=Unknown(未知),numRepliesOwedMe=0(起源于我的答复数),numRepliesOwedOthers=0(起源于他人的答复数),应当理解,此处对满足连接异常条件的举例仅为方便理解,不用于限定本发明。
在本发明实施例中,原始连接驱动指的是上述oracle数据库中当前正在使用的连接驱动,具体的,该原始连接驱动为ojdbc6.jar(11.2.0.3.0版本)。
在本发明实施例中,目标连接驱动指的是适用于12.1.0.2.0版本oracle数据库的连接驱动。
在本发明实施例中,当异常信号的来源不是连接异常导致,不能通过更新连接驱动去解决回滚异常的情况下,系统会将数据库中持续活跃的事务数据输出至工作人员,以便工作人员进行人工排查。
在本发明实施例中,提供了一种事务回滚异常的处理装置,包括:信号接收模块,用于接收监控装置发送的异常信号;信号响应模块,用于响应所述异常信号,读取线程备份系统,在所述线程备份系统中获取独占线程数据,所述独占线程数据至少携带有线程起始时间;数据读取模块,用于读取数据库,在所述数据库中获取持续活跃的事务数据,所述事务数据至少携带有事务起始时间;时间判断模块,用于判断所述线程起始时间与所述事务起始时间是否一致;异常判断模块,用于若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件;驱动更新模块,用于若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动;数据输出模块,用于若所述线程起始时间与所述事务起始时间不一致或所述事务数据不满足连接异常条件,则输出所述持续活跃的事务数据。通过获知异常信号的来源是否源于连接异常导致,若是连接异常导致,则可通过更新数据库中的连接驱动进行解决,即可有效解决升级过程中出现的事务无法回滚问题,不再需要手工处理异常数据,节省了人力及重复处理异常的时间,保证了业务系统的稳定性。
在本发明实施例二的一些可选的实现方式中,如图7所示,上述异常判断模块105包括:数据读取子模块1051、记录判断子模块1052、第一结果子模块1053以及第二结果子模块1054。其中:
数据读取子模块1051,用于在所述数据库的会话控制表中获取与所述持续活跃的事务数据相对应的非活跃会话控制数据;
记录判断子模块1052,用于判断所述非活跃会话控制数据是否存在数据库操作记录;
第一结果子模块1053,用于若所述非活跃会话控制数据存在数据库操作记录,则所述事务数据不满足连接异常条件;
第二结果子模块1054,用于若所述非活跃会话控制数据不存在数据库操作记录,则所述事务数据满足所述连接异常条件。
在本发明实施例中,会话控制表指的是在人机交互的过程中,保持用户的整个会话活动的互动与计算机系统跟踪的记录过程。
在本发明实施例中,当获取到持续活跃的事务数据之后,可根据该持续活跃的事务数据的特殊交换地址关联到会话控制表,从而查找到与持续活跃的事务数据相关联的非活跃状态的会话控制数据。
在本发明实施例中,数据操作记录指的是人机交互过程中进行人机互动的操作记录。
在本发明实施例中,当非活跃会话控制数据中存在数据库操作记录,则说明在人机交互的过程中,连接驱动的运作是正常的,事务回滚异常的原因不是连接驱动问题导致的,存在其他原因。
在本发明实施例中,当非活跃会话控制数据中不存在数据库操作记录,则说明在人机交互的过程中,连接驱动没有启动,人机交互无法实现正常的数据连接,说明事务回滚异常的原因是连接驱动问题导致的。
在本发明实施例二的一些可选的实现方式中,如图8所示,上述驱动更新模块106包括:数据库判断子模块1061、驱动更新子模块1062以及数据输出子模块1063。其中:
数据库判断子模块1061,用于若所述事务数据满足所述连接异常条件,则判断所述数据库的数据是否全为12C数据库;
驱动更新子模块1062,用于若所述数据库的数据全为12C数据库,则将所述数据库的所述原始连接驱动替换为所述目标连接驱动;
数据输出子模块1063,用于若所述数据库的数据不全为12C数据库,则输出数据库不兼容信号。
在本发明实施例中,12C数据库指的是Oracle12C数据库,即应用版本为12.1.0.2.0的Oracle数据库。
在本发明实施例中,由于上述目标连接驱动仅适用于12.1.0.2.0版本的Oracle数据库,如果当前的数据库环境存在Oracle 10g数据库与12c数据库同时在使用的情况,则会出现不兼容的现象,因此,通过判断数据库是否全为12C数据库,从而保证在更新连接驱动时不会出现不兼容的现象,有效提高系统的稳定性。
在本发明实施例二的一些可选的实现方式中,上述事务回滚异常的处理装置还包括:驱动测试子模块、第一测试判断子模块、第一测试成功子模块以及第一测试失败子模块。其中:
驱动测试子模块,用于在测试环境中运行所述目标连接驱动,所述测试环境的数据与所述数据库的数据相同;
第一测试判断子模块,用于判断所述测试环境的运行结果是否存在所述异常信号;
第一测试成功子模块,用于若所述测试环境的运行结果不存在所述异常信号,则输出异常解除成功信号;
第一测试失败子模块,用于若所述测试环境的运行结果存在所述异常信号,则输出异常解除失败信号。
在本发明实施例二的一些可选的实现方式中,上述测试成功子模块包括:第二测试判断子模块、第二测试失败子模块以及第二测试成功子模块。其中:
第二测试判断子模块,用于判断所述测试环境的运行结果是否存在其他异常信号;
第二测试失败子模块,用于若所述测试环境的运行结果存在其他异常信号,则输出所述异常解除失败信号;
第二测试成功子模块,用于若所述测试环境的运行结果不存在其他异常信号,则输出所述异常解除成功信号。
综上所述,本发明实施例提供了一种事务回滚异常的处理装置,包括:信号接收模块,用于接收监控装置发送的异常信号;信号响应模块,用于响应所述异常信号,读取线程备份系统,在所述线程备份系统中获取独占线程数据,所述独占线程数据至少携带有线程起始时间;数据读取模块,用于读取数据库,在所述数据库中获取持续活跃的事务数据,所述事务数据至少携带有事务起始时间;时间判断模块,用于判断所述线程起始时间与所述事务起始时间是否一致;异常判断模块,用于若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件;驱动更新模块,用于若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动;数据输出模块,用于若所述线程起始时间与所述事务起始时间不一致或所述事务数据不满足连接异常条件,则输出所述持续活跃的事务数据。通过获知异常信号的来源是否源于连接异常导致,若是连接异常导致,则可通过更新数据库中的连接驱动进行解决,即可有效解决升级过程中出现的事务无法回滚问题,不再需要手工处理异常数据,节省了人力及重复处理异常的时间,保证了业务系统的稳定性。同时,由于上述目标连接驱动仅适用于12.1.0.2.0版本的Oracle数据库,如果当前的数据库环境存在Oracle 10g数据库与12c数据库同时在使用的情况,则会出现不兼容的现象,因此,通过判断数据库是否全为12C数据库,从而保证在更新连接驱动时不会出现不兼容的现象,有效提高系统的稳定性;通过在与系统所使用的数据库数据相同的测试环境中,更改连接驱动这里变量进行运行测试,判断更新连接驱动后是否仍然出现异常信号,从而确定是否能够解决事务回滚异常问题,提高系统的稳定性及实用性;为了避免当更新连接驱动后,导致其他事务出现回滚异常的不兼容情况,从而通过判断测试环境的运行结果是否存在其他异常信号,确保更新连接驱动能够解决事务回滚异常问题的同时不会影响其他事务的正常运行,保证了系统的稳定性。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图9,图9为本实施例计算机设备基本结构框图。
所述计算机设备9包括通过系统总线相互通信连接存储器91、处理器92、网络接口93。需要指出的是,图中仅示出了具有组件91-93的计算机设备9,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器91至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器91可以是所述计算机设备9的内部存储单元,例如该计算机设备9的硬盘或内存。在另一些实施例中,所述存储器91也可以是所述计算机设备9的外部存储设备,例如该计算机设备9上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器91还可以既包括所述计算机设备9的内部存储单元也包括其外部存储设备。本实施例中,所述存储器91通常用于存储安装于所述计算机设备9的操作系统和各类应用软件,例如事务回滚异常的处理方法的程序代码等。此外,所述存储器91还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器92在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器92通常用于控制所述计算机设备9的总体操作。本实施例中,所述处理器92用于运行所述存储器91中存储的程序代码或者处理数据,例如运行所述事务回滚异常的处理方法的程序代码。
所述网络接口93可包括无线网络接口或有线网络接口,该网络接口93通常用于在所述计算机设备9与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有事务回滚异常的处理程序,所述事务回滚异常的处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的事务回滚异常的处理方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种事务回滚异常的处理方法,其特征在于,所述方法包括如下步骤:
接收监控装置发送的异常信号;
响应所述异常信号,读取线程备份系统,在所述线程备份系统中获取独占线程数据,所述独占线程数据至少携带有线程起始时间;
读取数据库,在所述数据库中获取持续活跃的事务数据,所述事务数据至少携带有事务起始时间;
判断所述线程起始时间与所述事务起始时间是否一致;
若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件;
若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动;
若所述线程起始时间与所述事务起始时间不一致或所述事务数据不满足连接异常条件,则输出所述持续活跃的事务数据。
2.如权利要求1所述的事务回滚异常的处理方法,其特征在于,所述判断所述事务数据是否满足连接异常条件的步骤,具体包括如下步骤:
在所述数据库的会话控制表中获取与所述持续活跃的事务数据相对应的非活跃会话控制数据;
判断所述非活跃会话控制数据是否存在数据库操作记录;
若所述非活跃会话控制数据存在数据库操作记录,则所述事务数据不满足连接异常条件;
若所述非活跃会话控制数据不存在数据库操作记录,则所述事务数据满足所述连接异常条件。
3.如权利要求1所述的事务回滚异常的处理方法,其特征在于,所述若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动的步骤,具体包括如下步骤:
若所述事务数据满足所述连接异常条件,则判断所述数据库的数据是否全为12C数据库;
若所述数据库的数据全为12C数据库,则将所述数据库的所述原始连接驱动替换为所述目标连接驱动;
若所述数据库的数据不全为12C数据库,则输出数据库不兼容信号。
4.如权利要求1所述的事务回滚异常的处理方法,其特征在于,所述若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动的步骤之后,还包括如下步骤:
在测试环境中运行所述目标连接驱动,所述测试环境的数据与所述数据库的数据相同;
判断所述测试环境的运行结果是否存在所述异常信号;
若所述测试环境的运行结果不存在所述异常信号,则输出异常解除成功信号;
若所述测试环境的运行结果存在所述异常信号,则输出异常解除失败信号。
5.如权利要求4所述的事务回滚异常的处理方法,其特征在于,所述若所述测试环境的运行结果不存在所述异常信号,则输出异常解除成功信号的步骤,具体包括如下步骤:
判断所述测试环境的运行结果是否存在其他异常信号;
若所述测试环境的运行结果存在其他异常信号,则输出所述异常解除失败信号;
若所述测试环境的运行结果不存在其他异常信号,则输出所述异常解除成功信号。
6.一种事务回滚异常的处理装置,其特征在于,所述装置包括:
信号接收模块,用于接收监控装置发送的异常信号;
信号响应模块,用于响应所述异常信号,读取线程备份系统,在所述线程备份系统中获取独占线程数据,所述独占线程数据至少携带有线程起始时间;
数据读取模块,用于读取数据库,在所述数据库中获取持续活跃的事务数据,所述事务数据至少携带有事务起始时间;
时间判断模块,用于判断所述线程起始时间与所述事务起始时间是否一致;
异常判断模块,用于若所述线程起始时间与所述事务起始时间一致,则判断所述事务数据是否满足连接异常条件;
驱动更新模块,用于若所述事务数据满足连接异常条件,则至少执行如下步骤:将所述数据库的原始连接驱动替换为目标连接驱动;
数据输出模块,用于若所述线程起始时间与所述事务起始时间不一致或所述事务数据不满足连接异常条件,则输出所述持续活跃的事务数据。
7.如权利要求6所述的事务回滚异常的处理装置,其特征在于,所述异常判断模块包括:
数据读取子模块,用于在所述数据库的会话控制表中获取与所述持续活跃的事务数据相对应的非活跃会话控制数据;
记录判断子模块,用于判断所述非活跃会话控制数据是否存在数据库操作记录;
第一结果子模块,用于若所述非活跃会话控制数据存在数据库操作记录,则所述事务数据不满足连接异常条件;
第二结果子模块,用于若所述非活跃会话控制数据不存在数据库操作记录,则所述事务数据满足所述连接异常条件。
8.如权利要求6所述的事务回滚异常的处理装置,其特征在于,所述驱动更新模块包括:
数据库判断子模块,用于若所述事务数据满足所述连接异常条件,则判断所述数据库的数据是否全为12C数据库;
驱动更新子模块,用于若所述数据库的数据全为12C数据库,则将所述数据库的所述原始连接驱动替换为所述目标连接驱动;
数据输出子模块,用于若所述数据库的数据不全为12C数据库,则输出数据库不兼容信号。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的事务回滚异常的处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的事务回滚异常的处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010098092.7A CN111400085A (zh) | 2020-02-18 | 2020-02-18 | 事务回滚异常的处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010098092.7A CN111400085A (zh) | 2020-02-18 | 2020-02-18 | 事务回滚异常的处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111400085A true CN111400085A (zh) | 2020-07-10 |
Family
ID=71432650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010098092.7A Pending CN111400085A (zh) | 2020-02-18 | 2020-02-18 | 事务回滚异常的处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400085A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114510495A (zh) * | 2022-04-21 | 2022-05-17 | 北京安华金和科技有限公司 | 一种数据库业务数据一致性处理方法和系统 |
CN115292092A (zh) * | 2022-08-04 | 2022-11-04 | 深圳计算科学研究院 | 一种数据回滚方法、装置、设备及其存储介质 |
-
2020
- 2020-02-18 CN CN202010098092.7A patent/CN111400085A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114510495A (zh) * | 2022-04-21 | 2022-05-17 | 北京安华金和科技有限公司 | 一种数据库业务数据一致性处理方法和系统 |
CN114510495B (zh) * | 2022-04-21 | 2022-07-08 | 北京安华金和科技有限公司 | 一种数据库业务数据一致性处理方法和系统 |
CN115292092A (zh) * | 2022-08-04 | 2022-11-04 | 深圳计算科学研究院 | 一种数据回滚方法、装置、设备及其存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7624309B2 (en) | Automated client recovery and service ticketing | |
WO2019148727A1 (zh) | 电子装置、基于redis的异常预警方法及存储介质 | |
CN111274059B (zh) | 一种从设备的软件异常处理方法及装置 | |
CN110362418B (zh) | 一种异常数据恢复方法、装置、服务器及存储介质 | |
CN110555150B (zh) | 一种数据监控方法、装置、设备和存储介质 | |
WO2019071959A1 (zh) | 增加渠道方法、应用服务器及计算机可读存储介质 | |
CN111400085A (zh) | 事务回滚异常的处理方法、装置、计算机设备及存储介质 | |
CN111475705A (zh) | 基于sql查询的网络业务监控方法、装置、设备及存储介质 | |
CN110647318A (zh) | 一种有状态应用的实例创建方法、装置、设备及介质 | |
CN111459629A (zh) | 基于Azkaban的项目运行方法、装置及终端设备 | |
CN113672306B (zh) | 服务器组件自检异常恢复方法、装置、系统及介质 | |
CN110866834A (zh) | 批处理程序的执行方法及系统 | |
CN111694684A (zh) | 存储设备的异常构造方法、装置、电子设备及存储介质 | |
CN113282850A (zh) | 资源标签管理方法、装置、电子设备、系统及存储介质 | |
CN110881224A (zh) | 一种网络长连接方法、装置、设备及存储介质 | |
CN113094224B (zh) | 服务器资产管理方法、装置、计算机设备和存储介质 | |
CN115269252A (zh) | 应用程序故障处理方法、装置、设备及存储介质 | |
CN110602162B (zh) | 终端取证方法、装置、设备和存储介质 | |
US20220179680A1 (en) | Application state control method apparatus, and terminal and computer-readable storage medium | |
CN112818204A (zh) | 一种业务的处理方法、装置、设备及存储介质 | |
CN113127029A (zh) | 固件更新方法、装置、电子设备及存储介质 | |
CN113590424B (zh) | 一种故障监控方法、装置、设备及存储介质 | |
CN112257004B (zh) | 备份页面的方法、装置、服务器及存储介质 | |
CN113986698A (zh) | 通信日志量诊断方法、设备及存储介质 | |
CN107451035B (zh) | 用于计算机装置的错误状态数据提供方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |