CN102426540A - 一种分布式即时通信软件中全局会话备份切换方法及装置 - Google Patents

一种分布式即时通信软件中全局会话备份切换方法及装置 Download PDF

Info

Publication number
CN102426540A
CN102426540A CN2011103583910A CN201110358391A CN102426540A CN 102426540 A CN102426540 A CN 102426540A CN 2011103583910 A CN2011103583910 A CN 2011103583910A CN 201110358391 A CN201110358391 A CN 201110358391A CN 102426540 A CN102426540 A CN 102426540A
Authority
CN
China
Prior art keywords
global session
lock
inspection
thread
module
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.)
Granted
Application number
CN2011103583910A
Other languages
English (en)
Other versions
CN102426540B (zh
Inventor
胡加明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nantong Construction Engineering Co ltd
Original Assignee
Suzhou Codyy Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Codyy Network Technology Co Ltd filed Critical Suzhou Codyy Network Technology Co Ltd
Priority to CN 201110358391 priority Critical patent/CN102426540B/zh
Publication of CN102426540A publication Critical patent/CN102426540A/zh
Application granted granted Critical
Publication of CN102426540B publication Critical patent/CN102426540B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供一种分布式即时通信软件中全局会话备份切换方法及装置。上述方法包括以下步骤:当检验线程检测到当前全局会话存在通信异常时,启用检查锁,若检查锁的状态为True,则进入检查锁,通过后释放检查锁并启用切换锁,其中,同一时刻,检查锁及切换锁分别仅允许一个线程进入;通过切换锁的所述线程检测当前全局会话是否可用,若当前全局会话不可用,则修改检查锁的状态为False;所述线程判断当前是否存在可用的备份全局会话,若存在,则切换可用的备份全局会话为当前全局会话,并修改检查锁的状态为True。

Description

一种分布式即时通信软件中全局会话备份切换方法及装置
技术领域
本发明属于网络通信领域,尤其涉及一种分布式即时通信软件中全局会话备份切换方法及装置。
背景技术
于现有技术中,若当前全局会话处于出错状态,会触发大量的线程执行切换流程,以切换至备份全局会话。然而,若每个线程均执行一次将备份全局会话切换为当前全局会话的流程,不仅会导致效率低下,而且会导致切换不能同步,从而产生备份数据死循环的异常。
发明内容
本发明提供一种分布式即时通信软件中全局会话备份切换方法及装置,以解决上述问题。
本发明提供一种分布式即时通信软件中全局会话备份切换方法。上述方法包括以下步骤:当线程检测到当前全局会话存在通信异常时,启用检查锁,若检查锁的状态为True,则进入检查锁,通过后释放检查锁并启用切换锁,其中,同一时刻,检查锁及切换锁分别仅允许一个线程进入;通过切换锁的所述线程检测当前全局会话是否可用,若当前全局会话不可用,则修改检查锁的状态为False;所述线程判断当前是否存在可用的备份全局会话,若存在,则切换可用的备份全局会话为当前全局会话,并修改检查锁的状态为True。
本发明还提供一种分布式即时通信软件中全局会话备份切换装置。上述装置包括检验模块、启用模块、判断模块、切换模块以及修改模块。检验模块连接启用模块,启用模块连接判断模块,判断模块连接切换模块以及修改模块,切换模块连接修改模块。检验模块用于检测当前全局会话是否存在通信异常,当检测到存在通信异常时,启用模块启用检查锁,若检查锁的状态为True,则线程进入检查锁,通过后释放检查锁并启用切换锁,其中,同一时刻,检查锁及切换锁分别仅允许一个线程进入。判断模块用于判断当前全局会话是否可用,若当前全局会话不可用,则修改模块用于修改检查锁的状态为False。判断模块用于判断当前是否存在可用的备份全局会话,若存在,则切换模块用于切换可用的备份全局会话为当前全局会话,且修改模块用于修改检查锁的状态为True。
相较于先前技术,根据本发明提供的分布式即时通信软件中全局会话备份切换方法及装置,当全局会话存在通信异常时,通过启用检查锁及切换锁,可以即时有效地切换可用的备份全局会话为当前全局会话,从而提高系统可靠性。此外,通过检查锁及切换锁的机制,能够释放大量线程,从而节省系统资源,提高备份切换效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为根据本发明的较佳实施例提供的分布式即时通信软件中全局会话备份切换方法的流程图;
图2所示为根据本发明的较佳实施例提供的分布式即时通信软件中全局会话备份切换装置的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为根据本发明的较佳实施例提供的分布式即时通信软件中全局会话备份切换方法的流程图。如图1所示,本发明的较佳实施例提供的分布式即时通信软件中全局会话备份切换方法包括步骤101~103。
于步骤101,当线程检测到当前全局会话存在通信异常时,启用检查锁,若检查锁的状态为True,则进入检查锁,通过后释放检查锁并启用切换锁,其中,同一时刻,检查锁及切换锁分别仅允许一个线程进入。
具体而言,当业务逻辑层产生的线程于执行过程中发现异常时,执行步骤101。其中,线程检测当前全局会话是否存在通信异常的过程为:线程向当前全局会话发送验证信号,判断验证信号是否存在通信异常。当线程检测到当前全局会话存在通信异常时,启用检查锁,并判断检查锁的状态。若检查锁的状态为True,则允许业务逻辑层产生的线程逐个通过检查锁。当检查锁的状态为True,且线程逐个通过检查锁后,释放检查锁并启用切换锁。其中,切换锁仅允许一个线程进入。另外,检查锁的初始状态设置为True。
于步骤102,通过切换锁的线程检测当前全局会话是否可用,若当前全局会话不可用,则修改检查锁的状态为False。其中,通过切换锁的线程检测当前全局会话是否可用的过程为:所述线程向当前全局会话发送验证信号,判断返回的验证信号是否为通信异常。
于步骤103,所述线程判断当前是否存在可用的备份全局会话,若存在,则切换可用的备份全局会话为当前全局会话,并修改检查锁的状态为True。
举例而言,当业务逻辑层例如产生3条线程(线程a~c),且此时全局会话存在通信异常时,上述三条线程会进入切换过程。此时,由于启用的检查锁的初始状态为True,因此,线程a~c会顺利地逐个通过检查锁。然而,由于切换锁仅允许一个线程进入,则线程a~c中的其中一个线程(例如,线程a)会进入切换锁,而其他线程(例如,线程b及线程c)会被阻挡在切换锁外。通过切换锁的线程a会检测当前全局会话是否可用。若当前全局会话不可用,则会修改检查锁的状态为False。于此,一旦检查锁的状态修改为False,则业务逻辑层后续产生的线程无法通过检查锁,且上述线程的资源会被释放,从而节省资源。换言之,当通过切换锁的所述线程检测当前全局会话不可用,且修改检查锁的状态为False后,则释放等待通过检查锁的线程资源。如此,业务逻辑层源源不断产生的新线程在检查锁处可以被释放。
此外,通过切换锁的线程a会判断当前是否存在可用的备份全局会话,若存在,则切换可用的备份全局会话为当前全局会话,并修改检查锁的状态为True。其中,线程a会遍历所有备份全局会话,查看是否有可用的备份全局会话。若没有可用的备份全局会话,则释放线程资源以及相关系统资源。另外,在将可用的备份全局会话切换为当前全局会话后,释放所述切换锁后,则释放等待通过所述切换锁的线程资源(例如,线程b及线程c)。如此,仅通过一个线程即可实现全局会话的备份切换,从而避免了多个线程执行多个切换流程而导致备份数据死循环的问题。
图2所示为根据本发明的较佳实施例提供的分布式即时通信软件中全局会话备份切换装置的示意图。如图2所示,本发明较佳实施例提供的分布式即时通信软件中全局会话备份切换装置包括检验模块20、启用模块21、判断模块22、切换模块23以及修改模块24。检验模块20连接启用模块21,启用模块21连接判断模块22,判断模块22连接切换模块23以及修改模块24,切换模块23连接修改模块24。检验模块20用于检测当前全局会话是否存在通信异常,当检测到存在通信异常时,启用模块21启用检查锁,若检查锁的状态为True,则线程进入检查锁,通过后释放检查锁并启用切换锁。其中,同一时刻,检查锁及切换锁分别仅允许一个线程进入。判断模块22用于判断当前全局会话是否可用,若当前全局会话不可用,则修改模块24用于修改检查锁的状态为False。判断模块22还用于判断当前是否存在可用的备份全局会话,若存在,则切换模块23用于切换可用的备份全局会话为当前全局会话,且修改模块24用于修改检查锁的状态为True。此外,关于上述装置的具体操作过程同前所述的方法,故于此不再赘述。
综上所述,根据本发明较佳实施例提供的分布式即时通信软件中全局会话备份切换方法及装置,当全局会话存在通信异常时,通过启用检查锁及切换锁,可以即时有效地切换可用的备份全局会话为当前全局会话,从而提高系统可靠性。此外,通过检查锁及切换锁的机制,能够释放大量线程,从而节省系统资源,提高备份切换效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种分布式即时通信软件中全局会话备份切换方法,其特征在于,包括以下步骤:
当线程检测到当前全局会话存在通信异常时,启用检查锁,若所述检查锁的状态为True,则进入所述检查锁,通过后释放所述检查锁并启用切换锁,其中,同一时刻,所述检查锁及所述切换锁分别仅允许一个线程进入;
通过所述切换锁的所述线程检测当前全局会话是否可用,若当前全局会话不可用,则修改所述检查锁的状态为False;
所述线程判断当前是否存在可用的备份全局会话,若存在,则切换可用的备份全局会话为当前全局会话,并修改所述检查锁的状态为True。
2.根据权利要求1所述的分布式即时通信软件中全局会话备份切换方法,其特征在于,当至少两个线程需要通过所述检查锁时,所述检查锁允许线程逐个通过。
3.根据权利要求2所述的分布式即时通信软件中全局会话备份切换方法,其特征在于,通过所述切换锁的所述线程检测当前全局会话是否可用,若当前全局会话不可用,则修改所述检查锁的状态为False后,则释放等待通过所述检查锁的线程资源。
4.根据权利要求1所述的分布式即时通信软件中全局会话备份切换方法,其特征在于,在将可用的备份全局会话切换为当前全局会话后,释放所述切换锁。
5.根据权利要求4所述的分布式即时通信软件中全局会话备份切换方法,其特征在于,在将可用的备份全局会话切换为当前全局会话后,释放所述切换锁后,则释放等待通过所述切换锁的线程资源。
6.根据权利要求1所述的分布式即时通信软件中全局会话备份切换方法,其特征在于,所述线程检测当前全局会话是否存在通信异常的过程为:所述线程向当前全局会话发送验证信号,判断验证信号是否有通信异常。
7.根据权利要求1所述的分布式即时通信软件中全局会话备份切换方法,其特征在于,通过所述切换锁的所述线程检测当前全局会话是否可用的过程为:所述线程向当前全局会话发送验证信号,判断返回的验证信号是否为通信异常。
8.一种分布式即时通信软件中全局会话备份切换装置,其特征在于,包括检验模块、启用模块、判断模块、切换模块以及修改模块,所述检验模块连接所述启用模块,所述启用模块连接所述判断模块,所述判断模块连接所述切换模块以及所述修改模块,所述切换模块连接所述修改模块,
所述检验模块用于检测当前全局会话是否存在通信异常,当检测到存在通信异常时,所述启用模块启用检查锁,若所述检查锁的状态为True,则线程进入所述检查锁,通过后释放所述检查锁并启用切换锁,其中,同一时刻,所述检查锁及所述切换锁分别仅允许一个线程进入,
所述判断模块用于判断当前全局会话是否可用,若当前全局会话不可用,则所述修改模块用于修改所述检查锁的状态为False,
所述判断模块用于判断当前是否存在可用的备份全局会话,若存在,则所述切换模块用于切换可用的备份全局会话为当前全局会话,且所述修改模块用于修改所述检查锁的状态为True。
CN 201110358391 2011-11-14 2011-11-14 一种分布式即时通信软件中全局会话备份切换方法及装置 Active CN102426540B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110358391 CN102426540B (zh) 2011-11-14 2011-11-14 一种分布式即时通信软件中全局会话备份切换方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110358391 CN102426540B (zh) 2011-11-14 2011-11-14 一种分布式即时通信软件中全局会话备份切换方法及装置

Publications (2)

Publication Number Publication Date
CN102426540A true CN102426540A (zh) 2012-04-25
CN102426540B CN102426540B (zh) 2013-06-05

Family

ID=45960529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110358391 Active CN102426540B (zh) 2011-11-14 2011-11-14 一种分布式即时通信软件中全局会话备份切换方法及装置

Country Status (1)

Country Link
CN (1) CN102426540B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422567A (zh) * 2021-12-09 2022-04-29 阿里巴巴(中国)有限公司 数据请求的处理方法、装置、系统、计算机设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061810A1 (en) * 2005-09-15 2007-03-15 Mehaffy David W Method and system for providing access to a shared resource utilizing selective locking
CN1945539A (zh) * 2006-10-19 2007-04-11 华为技术有限公司 计算机集群系统中共享资源锁分配方法与计算机及集群系统
CN101355577A (zh) * 2008-09-01 2009-01-28 中兴通讯股份有限公司 一种多线程通讯程序中防止线程吊死的方法
US20100100690A1 (en) * 2008-10-21 2010-04-22 Microsoft Corporation System to reduce interference in concurrent programs
CN101884029A (zh) * 2007-12-03 2010-11-10 高通股份有限公司 具有锁定指示器的多线程处理器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061810A1 (en) * 2005-09-15 2007-03-15 Mehaffy David W Method and system for providing access to a shared resource utilizing selective locking
CN1945539A (zh) * 2006-10-19 2007-04-11 华为技术有限公司 计算机集群系统中共享资源锁分配方法与计算机及集群系统
CN101884029A (zh) * 2007-12-03 2010-11-10 高通股份有限公司 具有锁定指示器的多线程处理器
CN101355577A (zh) * 2008-09-01 2009-01-28 中兴通讯股份有限公司 一种多线程通讯程序中防止线程吊死的方法
US20100100690A1 (en) * 2008-10-21 2010-04-22 Microsoft Corporation System to reduce interference in concurrent programs

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422567A (zh) * 2021-12-09 2022-04-29 阿里巴巴(中国)有限公司 数据请求的处理方法、装置、系统、计算机设备及介质

Also Published As

Publication number Publication date
CN102426540B (zh) 2013-06-05

Similar Documents

Publication Publication Date Title
EP2911341A1 (en) Method and device for dynamically switching gateway of distributed resilient network interconnect
CN104427012B (zh) 端口协商方法和设备
CN102055950B (zh) 一种视频会议中mcu的备份方法和设备
CN103580883A (zh) 一种业务容灾方法及系统
CN103178974B (zh) 故障处理系统及方法
CN103036737B (zh) 一种大规模微系统芯片的片上多节点系统的自测试方法
CN102426540A (zh) 一种分布式即时通信软件中全局会话备份切换方法及装置
CN103593239B (zh) Linux系统中应用进程命令处理的方法及装置
CN107911250B (zh) 一种堆叠系统及其防止流量丢失的方法
CN102571311B (zh) 主备切换的通讯系统和通讯方法
US20190306012A1 (en) System and method for automatically repairing a network element
KR20130037977A (ko) 로봇 컴포넌트 관리 장치 및 방법
CN101604270A (zh) 基于vxworks操作系统的ARINC429通信冗余方法
CN103034545A (zh) 基于ace的通信框架和方法、及功能模块间的通信方法
EP2621129B1 (en) Data forwarding method and router
CN107453995B (zh) 一种指定路由器选举方法、装置、路由器及通信系统
CN102946321B (zh) 一种基于irf网络的故障处理方法和设备
US20170317923A1 (en) Method for quick reconfiguration of routing in the event of a fault in a port of a switch
CN104572087A (zh) 一种业务逻辑实现的适配模式方法及系统
EP2750336A1 (en) Inter-loop service protection method and apparatus
JP2003046545A (ja) 迂回経路設定システム
CN104375889A (zh) 一种Web层切换系统及方法
CN111064593A (zh) 网络拓扑冗余通信系统和网络拓扑冗余通信方法
US9413692B2 (en) Line processing unit and switch fabric system
CN113794631B (zh) 一种端口冗余处理方法、装置、设备及机器可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Suzhou City, Jiangsu province 215121 Fengting Avenue Suzhou Industrial Park No. 666 Weiting Intelligent Industrial Park Building 8

Patentee after: Kuo Di education and science company limited

Address before: Suzhou City, Jiangsu province 215121 Fengting Avenue Suzhou Industrial Park No. 666 Weiting Intelligent Industrial Park Building 8

Patentee before: Suzhou Kuodi Network Technology Co., Ltd.

TR01 Transfer of patent right

Effective date of registration: 20201203

Address after: 226100 Guangzhou road Jiangsu city Nantong Province Haimen Economic and Technological Development Zone No. 999

Patentee after: Nantong Construction Engineering Co.,Ltd.

Address before: Suzhou City, Jiangsu province 215121 Fengting Avenue Suzhou Industrial Park No. 666 Weiting Intelligent Industrial Park Building 8

Patentee before: CODYY EDUCATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right