一种J2EE架构下业务的处理方法及系统技术方案

技术编号:15660363 阅读:94 留言:0更新日期:2017-06-21 10:03
本发明专利技术公开了一种J2EE架构下业务的处理方法及系统,涉及通信技术领域,解决现有技术中J2EE架构下业务处理请求异常时容易积压在WEB层或EJB层的技术问题。其中,该方法包括:EJB服务器接收到来自WEB服务器的业务请求和预设的执行时间,并为业务请求分配控制业务请求的EJB容器线程;EJB容器线程创建执行业务请求的EJB执行线程,EJB执行线程设置有执行时限为预设的执行时间的限制;EJB执行线程执行业务请求,并向数据库发送业务请求继续处理;如果EJB执行线程执行业务请求,并等待数据库处理业务请求的时间超过预设的执行时间,则EJB执行线程向数据库发送取消请求,并中止业务请求的执行;数据库接收到该取消请求后中止对业务请求的处理,并回滚。

【技术实现步骤摘要】
一种J2EE架构下业务的处理方法及系统
本专利技术涉及通信
,特别涉及一种J2EE架构下业务的处理方法及系统。
技术介绍
J2EE(Java2EnterpriseEdition,Java2企业版)体系架构由于其可移植性强、可重用性好以及互操作性强等优点,成为IT系统中普通采用的架构。而基于J2EE架构实现的中间件服务器也大量涌现,比较有名的有IBM的WebSphere,Oracle的Weblogic等,在普遍采用的展现层(WEB)、应用层(EJB)、数据库层(Database)三层架构中他们都发挥着各自的重要角色。遵循该J2EE架构的系统中,如CRM(CustomerRelationshipManagement,客户关系管理)),在数据库层某些表执行慢或是应用层某些业务的应用程序故障的时候,用户或营业员在办理相关的业务时,出现系统白屏死机,无法继续后续业务。例如客服人员在按客户的要求查询某业务时,因为该业务的应用程序出现异常,造成前台界面出现长时间白屏现象,导致客户长时间等待或是必须关闭应用重新登录导致话务中断;再例如某个应用程序出现异常,而运维人员无法及时获得故障告警信息,导致大量请求积压在中间件或数据库端,最终导致整个系统崩溃,无法继续工作。因而必须解决在部分服务出现响应慢、故障的情况下,系统不会白屏死机,用户和营业员可以办理其他正常业务。为了解决以上问题,现有技术通常会有如下2个方案:1)中间件平台提供调用超时控制机制,如OracleWebLogic平台提供的RMI调用超时时间设置,来控制WEB层到应用层调用的超时时间,防止用户界面出现白屏死机故障。2)在WEB层到应用层的调用采用异步提交模式,即用户提交请求后,马上返回,而不需要等待后台处理完毕,用户界面不会出现白屏死机故障。但是,现有技术的方案仍旧存在如下技术问题:方案1):该方法在后台服务故障的情况下,虽然WEB层对业务的调用能够在设定的时间内返回,避免用户长时间等待、白屏死机等问题,但没有解决应用层、数据库层存在的本质问题,系统无法恢复正常,致大量请求积压在应用层或数据库层,容易导致整个系统崩溃。方案2):异步提交方法不需要后台服务处理完成就马上返回,虽然不会造成系统等待和白屏,但是同样没有解决应用层、数据库层存在的本质问题,系统无法恢复正常,致大量请求积压在应用层或数据库层,最终导致整个系统崩溃。
技术实现思路
为了解决现有技术中J2EE构建下的系统故障时,无法解决发生在应用层和数据库层存在的本质问题,导致大量请求积压在应用层或数据库层的技术问题,本专利技术提出一种J2EE架构下业务的处理方法及系统。一种J2EE架构下业务的处理方法,包括:应用层EJB服务器接收到来自展现层WEB服务器的业务请求和预设的执行时间,并为所述业务请求分配控制所述业务请求的EJB容器线程;EJB容器线程创建执行所述业务请求的EJB执行线程,所述EJB执行线程设置有执行时限为所述预设的执行时间的限制;所述EJB执行线程执行所述业务请求,并向数据库发送所述业务请求继续处理;如果所述EJB执行线程执行所述业务请求,并等待所述数据库处理所述业务请求的时间超过所述预设的执行时间,则所述EJB执行线程向所述数据库发送取消请求,并中止所述业务请求的执行;所述数据库接收到该取消请求后中止对业务请求的处理,并回滚。一种J2EE架构下业务的处理系统,包括:WEB容器装置及EJB容器装置;其中,所述WEB容器装置包括:WEB容器池模块,用于接收到客户端发送来的业务请求后,为所述业务请求分配控制所述业务请求的WEB容器线程;WEB容器线程,用于获取用户为所述业务请求预设的执行时间,并创建执行所述业务请求的WEB执行线程,所述WEB执行线程设置有执行时限为所述预设的执行时间的限制;WEB执行线程,用于执行所述业务请求,调用EJB服务器的应用程序继续执行所述业务请求,以及将所述预设的执行时间传递到所述EJB服务器;如果执行所述业务请求,并调用EJB服务器的应用程序的时间超过所述预设的执行时间,则中止所述调用;否则由EJB服务器继续执行所述业务请求;其中,所述EJB容器装置包括:EJB容器池模块,用于接收WEB执行线程发送而来的所述业务请求,并为所述业务请求分配控制所述业务请求的EJB容器线程;EJB容器线程,用于创建执行所述业务请求的EJB执行线程,所述EJB执行线程设置有执行时限为所述预设的执行时间的限制;EJB执行线程,用于执行所述业务请求,并向数据库发送所述业务请求继续处理;如果执行所述业务请求,并等待所述数据库处理所述业务请求的时间超过所述预设的执行时间,则向所述数据库发送取消请求,并中止所述业务请求的执行。本实施例提供的方案通过采用将容器线程和执行线程分离,并预设执行时间的技术手段,实现了可精确的控制了整个业务请求在WEB服务器、EJB服务器和数据库的执行时间,取得了系统故障情况时的自我保护和自我恢复功能,因此不会再应用层和数据库层产生请求积压。并且,不管是WEB服务器(代表展现层)上、EJB服务器(代表应用层)还是数据库上,局部的故障不会扩散。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例1中提供的一种J2EE架构下业务的处理方法的应用场景示意图;图2为本专利技术实施例1中提供的一种J2EE架构下业务的处理方法的流程示意图;图3为本专利技术实施例1中提供的一种J2EE架构下业务的处理方法的一种实现效果示意图;图4为本专利技术实施例1中提供的一种J2EE架构下业务的处理方法的另一种实现效果示意图;图5为本专利技术实施例2中提供的一种J2EE架构下业务的处理系统的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。并且,以下各实施例均为本专利技术的可选方案,实施例的排列顺序及实施例的编号与其优选执行的顺序无关。实施例1本实施例提供一种J2EE架构下业务的处理方法,该方法中引入执行线程,将现有技术中对业务请求进行处理的容器线程功能替换为由容器线程和执行线程组合完成。其中,容器线程用于控制业务;执行线程用于处理业务请求的业务逻辑,即用来真正的处理该业务请求的具体事务。容器线程是J2EE服务器(如WEB服务器或EJB服务器)创建和管理的线程,不能由开发人员控制,通过自创建的执行线程的引入来达到可控的目的。容器线程对于接收到的业务请求,将创建执行线程来处理该业务请求的具体事务。更特别地,本实施例还预设了每个业务被允许处理的执行时间SLA_TimeOut,那么相应地,容器线程在创建执行线程时也会将该执行时间告知执行本文档来自技高网
...
一种J2EE架构下业务的处理方法及系统

【技术保护点】
一种J2EE架构下业务的处理方法,其特征在于,包括:应用层EJB服务器接收到来自展现层WEB服务器的业务请求和预设的执行时间,并为所述业务请求分配控制所述业务请求的EJB容器线程;EJB容器线程创建执行所述业务请求的EJB执行线程,所述EJB执行线程设置有执行时限为所述预设的执行时间的限制;所述EJB执行线程执行所述业务请求,并向数据库发送所述业务请求继续处理;如果所述EJB执行线程执行所述业务请求,并等待所述数据库处理所述业务请求的时间超过所述预设的执行时间,则所述EJB执行线程向所述数据库发送取消请求,并中止所述业务请求的执行;所述数据库接收到该取消请求后中止对业务请求的处理,并回滚;该方法还包括:WEB服务器接收客户端发送而来的业务请求后,为所述业务请求分配控制所述业务请求的WEB容器线程;WEB容器线程获取用户为所述业务请求预设的执行时间,并创建执行所述业务请求的WEB执行线程,所述WEB执行线程设置有执行时限为所述预设的执行时间的限制;所述WEB执行线程执行所述业务请求,调用应用层EJB服务器的应用程序继续执行所述业务请求,并将所述预设的执行时间传递到所述EJB服务器;如果所述WEB执行线程执行所述业务请求,并调用EJB服务器的应用程序的时间超过所述预设的执行时间,则所述WEB执行线程中止所述调用;否则由EJB服务器继续执行所述业务请求。...

【技术特征摘要】
1.一种J2EE架构下业务的处理方法,其特征在于,包括:应用层EJB服务器接收到来自展现层WEB服务器的业务请求和预设的执行时间,并为所述业务请求分配控制所述业务请求的EJB容器线程;EJB容器线程创建执行所述业务请求的EJB执行线程,所述EJB执行线程设置有执行时限为所述预设的执行时间的限制;所述EJB执行线程执行所述业务请求,并向数据库发送所述业务请求继续处理;如果所述EJB执行线程执行所述业务请求,并等待所述数据库处理所述业务请求的时间超过所述预设的执行时间,则所述EJB执行线程向所述数据库发送取消请求,并中止所述业务请求的执行;所述数据库接收到该取消请求后中止对业务请求的处理,并回滚;该方法还包括:WEB服务器接收客户端发送而来的业务请求后,为所述业务请求分配控制所述业务请求的WEB容器线程;WEB容器线程获取用户为所述业务请求预设的执行时间,并创建执行所述业务请求的WEB执行线程,所述WEB执行线程设置有执行时限为所述预设的执行时间的限制;所述WEB执行线程执行所述业务请求,调用应用层EJB服务器的应用程序继续执行所述业务请求,并将所述预设的执行时间传递到所述EJB服务器;如果所述WEB执行线程执行所述业务请求,并调用EJB服务器的应用程序的时间超过所述预设的执行时间,则所述WEB执行线程中止所述调用;否则由EJB服务器继续执行所述业务请求。2.根据权利要求1所述的方法,其特征在于,所述中止所述业务请求的执行后,该方法还包括:所述EJB容器线程通过WEB服务器返回所述客户端系统繁忙信息,以及向管理配置平台发送告警。3.根据权利要求1所述的方法,其特征在于,在所述WEB执行线程中止所述调用后,该方法还包括:所述WEB容器线程返回所述客户端系统繁忙信息,以及发送告警到管理配置平台。4.根据权利要求2或3所述的方法,所述管理配置平台接收用户预设的所述执行时间,所述管理配置平台将所述执行时间发送到WEB服务器或EJB服务器。5.一种J2EE架构下业务的处理系统,其特征在于,包括:WEB容器装置及EJB容器装置,所述WEB容器装置位于WEB服务器;所述EJB容器装置位...

【专利技术属性】
技术研发人员:钟储建于祥兵蒋海滨
申请(专利权)人:中国移动通信集团浙江有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1