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

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

Info

Publication number
CN102426540B
CN102426540B CN 201110358391 CN201110358391A CN102426540B CN 102426540 B CN102426540 B CN 102426540B CN 201110358391 CN201110358391 CN 201110358391 CN 201110358391 A CN201110358391 A CN 201110358391A CN 102426540 B CN102426540 B CN 102426540B
Authority
CN
China
Prior art keywords
lock
global session
thread
module
inspection
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.)
Active
Application number
CN 201110358391
Other languages
English (en)
Other versions
CN102426540A (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 (7)

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

Families Citing this family (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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1945539A (zh) * 2006-10-19 2007-04-11 华为技术有限公司 计算机集群系统中共享资源锁分配方法与计算机及集群系统
CN101355577A (zh) * 2008-09-01 2009-01-28 中兴通讯股份有限公司 一种多线程通讯程序中防止线程吊死的方法
CN101884029A (zh) * 2007-12-03 2010-11-10 高通股份有限公司 具有锁定指示器的多线程处理器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225327B2 (en) * 2005-09-15 2012-07-17 International Business Machines Corporation Synchronizing access to a shared resource utilizing selective locking
US7941616B2 (en) * 2008-10-21 2011-05-10 Microsoft Corporation System to reduce interference in concurrent programs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1945539A (zh) * 2006-10-19 2007-04-11 华为技术有限公司 计算机集群系统中共享资源锁分配方法与计算机及集群系统
CN101884029A (zh) * 2007-12-03 2010-11-10 高通股份有限公司 具有锁定指示器的多线程处理器
CN101355577A (zh) * 2008-09-01 2009-01-28 中兴通讯股份有限公司 一种多线程通讯程序中防止线程吊死的方法

Also Published As

Publication number Publication date
CN102426540A (zh) 2012-04-25

Similar Documents

Publication Publication Date Title
Güdemann et al. Counterexample guided synthesis of monitors for realizability enforcement
KR20120027418A (ko) 메인/예비 보드의 스위칭 방법 및 시스템
CN105281931B (zh) Potn的误码检测方法、装置及系统
CN108462529B (zh) 主备板卡切换方法、光传送网络设备及存储介质
CN103684899B (zh) 远程调试方法和装置
CN101188527A (zh) 一种心跳检测方法和装置
CN106533736A (zh) 一种网络设备重启方法和装置
CN102902597B (zh) 一种提高芯片安全性的方法及芯片
CN102426540B (zh) 一种分布式即时通信软件中全局会话备份切换方法及装置
CN102244589B (zh) 处理虚拟交换单元系统中链路故障的方法及对端设备
CN102045230A (zh) 一种以太环网链路保护倒换的方法及装置
CN103220189A (zh) 一种mad检测备份方法和设备
CN103577379B (zh) 一种检测片上网络中死锁的方法
CN102571311B (zh) 主备切换的通讯系统和通讯方法
CN105704187A (zh) 一种集群脑裂的处理方法及装置
CN101895444A (zh) Atca刀片服务器双机系统、连接方法及测试方法
CN111093125B (zh) 光线路终端实现主干光纤保护的方法、装置及存储介质
CN103036737B (zh) 一种大规模微系统芯片的片上多节点系统的自测试方法
CN111698157A (zh) 一种链路管理方法、板卡及交换机
CN101604270A (zh) 基于vxworks操作系统的ARINC429通信冗余方法
EP2621129B1 (en) Data forwarding method and router
CN107005440A (zh) 一种链路故障定位的方法、装置及系统
CN101330375A (zh) 传输网元时钟选择方法、倒换方法及倒换装置
CN114371956A (zh) 主机的故障处理方法、系统和充电桩
CN103001798B (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