基于中间件的事务连接建立方法及装置制造方法及图纸

技术编号:15255029 阅读:60 留言:0更新日期:2017-05-02 22:23
本发明专利技术公开了一种基于中间件的事务连接建立方法及装置,事务包含n条状态操作指令,所述方法包括:接收事务的第k条状态操作指令,并建立与服务器之间的第k连接;获取并解析事务的第1条状态操作至第k‑1条状态操作对应的第1项结果至第k‑1项结果,分别重构事务的第1条状态操作指令至第k‑1条状态操作指令;通过第k连接将重构的第1条状态操作指令至第k‑1条状态操作指令以及第k条状态操作指令依次传递至服务器;接收服务器返回的第k条状态操作指令对应的第k项结果,保存第k项结果并释放第k连接。本方案基于中间件完成,其执行速度快、花费时间少,有效的解决了事务连接被长时间占用等问题。

Method and device for establishing transaction connection based on Middleware

The invention discloses a method and device for establishing connection middleware based on the transaction, transaction contains N state instructions, the method includes: receiving operation instruction of K state affairs, between K and establish a connection with the server; obtaining and analyzing the state of affairs of first operation to the K 1 according to the operation of state first results to the K 1, respectively, first state of affairs reconstruction operation instruction to the K 1 state operation instruction; through the k connection will reconstruct first state instructions to the K 1 state operation instruction and article K state instructions passed to the server; corresponding article K state operation instruction receiving server returns the K results, save the item K and release the k connection results. This scheme is based on the middleware, which is fast, less time consuming, and effectively solves the problem of long time occupation.

【技术实现步骤摘要】

本专利技术涉及计算机软件领域,具体涉及一种基于中间件的事务连接建立方法及装置。
技术介绍
在事务处理时,首先需要建立与服务器的连接。在建立连接后,执行相关的状态操作指令,接收其对应的结果。如与服务器建立连接,执行查询指令,接收对应的查询返回结果。在接收到结果后,若事务中的操作指令均执行完成,释放与服务器的连接。每个事务都需要与服务器建立连接,当存在多个事务时,频繁与服务器建立连接比较费时,采用中间件的方式,其中,中间件建立在服务器上,中间件建立一个连接池。当有事务处理时,可以从中间件的连接池中取一个连接,直接与服务器建立连接。事务可以包含多条状态操作指令,若采用从中间件的连接池中取一个连接,依次处理事务中的多条状态操作指令时,会使得该连接在较长时间内不能被释放,一直保持连接状态。当有多个这样的事务需要处理时,会使得连接池中的多个连接一直保持连接状态,使得连接池占用较大内存,连接池占用的内存暴涨,影响事务处理速度。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的基于中间件的事务连接建立方法及装置。根据本专利技术的一个方面,提供了一种基于中间件的事务连接建立方法,事务包含n条状态操作指令,方法包括:接收事务的第k条状态操作指令,并建立与服务器之间的第k连接;获取并解析事务的第1条状态操作至第k-1条状态操作对应的第1项结果至第k-1项结果,分别重构事务的第1条状态操作指令至第k-1条状态操作指令;通过第k连接将重构的第1条状态操作指令至第k-1条状态操作指令以及第k条状态操作指令依次传递至服务器;以及接收服务器返回的第k条状态操作指令对应的第k项结果,保存第k项结果并释放第k连接;其中,n和k为自然数,且n不小于k。根据本专利技术的另一方面,提供了一种基于中间件的事务连接建立装置,事务包含n条状态操作指令,装置包括:连接模块,适于接收事务的第k条状态操作指令,并建立与服务器之间的第k连接;重构模块,适于获取并解析事务的第1条状态操作至第k-1条状态操作对应的第1项结果至第k-1项结果,分别重构事务的第1条状态操作指令至第k-1条状态操作指令;结果模块,适于通过第k连接将重构的第1条状态操作指令至第k-1条状态操作指令以及第k条状态操作指令依次传递至服务器;以及接收服务器返回的第k条状态操作指令对应的第k项结果,保存第k项结果并释放第k连接;其中,n和k为自然数,且n不小于k。根据本专利技术提供的基于中间件的事务连接建立方法及装置,接收事务的第k条状态操作指令,并建立与服务器之间的第k连接;获取并解析事务的第1条状态操作至第k-1条状态操作对应的第1项结果至第k-1项结果,分别重构事务的第1条状态操作指令至第k-1条状态操作指令;通过第k连接将重构的第1条状态操作指令至第k-1条状态操作指令以及第k条状态操作指令依次传递至服务器;以及接收服务器返回的第k条状态操作指令对应的第k项结果,保存第k项结果并释放第k连接。本方案根据获取到的第1项结果至第k-1项结果,重构第k条状态操作指令前的第1条状态操作至第k-1条状态操作,将重构后的状态操作指令及第k条状态操作指令依次传递至服务器,保证了整个事务的完整性。同时,建立连接、重构状态操作指令、传递重构的状态操作指令都基于中间件,由于中间件设置在服务器上,与原有的直接将状态操作指令传递给服务器相比,速度更快,花费的时间更少,从而有效的解决了事务连接被长时间占用,所导致的连接池内存暴涨、执行效率低下等问题。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的基于中间件的事务连接建立方法的流程示意图;图2示出了根据本专利技术另一个实施例的基于中间件的事务连接建立方法的流程示意图;图3示出了根据本专利技术又一个实施例的基于中间件的事务连接建立方法的流程示意图;图4示出了根据本专利技术一个实施例的基于中间件的事务连接建立装置的功能框图;图5示出了根据本专利技术另一个实施例的基于中间件的事务连接建立装置的功能框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本专利技术一个实施例的基于中间件的事务连接建立方法的流程示意图。如图1所示,基于中间件的事务连接建立方法具体包括如下步骤:步骤S101,接收事务的第k条状态操作指令,并建立与服务器之间的第k连接。事务即一个完整的执行单元,包含n条的状态操作指令,n条状态操作指令间具有前后的执行顺序。其中,n为自然数。执行事务时,依次执行n条状态操作指令。以接收到事务的第k条状态操作指令为例进行说明,其中,n不小于k。接收到事务的第k条状态操作指令,建立与服务器之间的第k连接,其中,该第k连接为从连接池中选择一个空闲连接作为与服务器之间的第k连接。连接池为设置在服务器上的中间件提供的连接池,连接池中存在多个连接,均与服务器相连。第k连接使得中间件与服务器相连。步骤S102,获取并解析事务的第1条状态操作至第k-1条状态操作对应的第1项结果至第k-1项结果,分别重构事务的第1条状态操作指令至第k-1条状态操作指令。在建立与服务器之间的第k连接之后,获取到事务的第1条状态操作至第k-1条状态操作对应的第1项结果至第k-1项结果。其中,第1项结果至第k-1项结果保存在中间件,从中间件获取到第1项结果至第k-1项结果。对第1项结果至第k-1项结果进行解析,重构事务对应的第1条状态操作指令至第k-1条状态操作指令。重构时,根据第1项结果至第k-1项结果,反向获取到第1条状态操作指令至第k-1条状态操作指令,完成重构。步骤S103,通过第k连接将重构的第1条状态操作指令至第k-1条状态操作指令以及第k条状态操作指令依次传递至服务器。步骤S104,接收服务器返回的第k条状态操作指令对应的第k项结果,保存第k项结果并释放第k连接。通过与服务器之间的第k连接,将重构第1条状态操作指令至第k-1条状态操作指令以及本次的第k条状态操作指令依次传递至服务器。由于事务中k条状态操作指令间存在前后的执行关系,因此,在执行本次第k条状态操作指令前,由服务器依次执行第1条状态操作指令至第k-1条状态操作指令,再执行本次的第k条状态操作指令。在服务器执行后,由于之前已保存了第1条状态操作至第k-1条状态操作对应的第1项结果至第k-1项结果,本次仅接收服务器返回的第k条状态操作指令对应的第k项结果进行保存,例如可以将第k项结果保存在中间件。保存时,保存第k项结果所包括的如第k项结果中的数据个数、第k项结果的数据长度、第k项结果的各数本文档来自技高网...

【技术保护点】
一种基于中间件的事务连接建立方法,所述事务包含n条状态操作指令,所述方法包括:接收所述事务的第k条状态操作指令,并建立与服务器之间的第k连接;获取并解析所述事务的第1条状态操作至第k‑1条状态操作对应的第1项结果至第k‑1项结果,分别重构所述事务的第1条状态操作指令至第k‑1条状态操作指令;通过第k连接将重构的所述第1条状态操作指令至第k‑1条状态操作指令以及第k条状态操作指令依次传递至服务器;以及接收服务器返回的所述第k条状态操作指令对应的第k项结果,保存所述第k项结果并释放所述第k连接;其中,n和k为自然数,且n不小于k。

【技术特征摘要】
1.一种基于中间件的事务连接建立方法,所述事务包含n条状态操作指令,所述方法包括:接收所述事务的第k条状态操作指令,并建立与服务器之间的第k连接;获取并解析所述事务的第1条状态操作至第k-1条状态操作对应的第1项结果至第k-1项结果,分别重构所述事务的第1条状态操作指令至第k-1条状态操作指令;通过第k连接将重构的所述第1条状态操作指令至第k-1条状态操作指令以及第k条状态操作指令依次传递至服务器;以及接收服务器返回的所述第k条状态操作指令对应的第k项结果,保存所述第k项结果并释放所述第k连接;其中,n和k为自然数,且n不小于k。2.根据权利要求1所述的方法,其中,当k=1时,所述方法包括:接收所述事务的第1条状态操作指令,并建立与服务器之间的第1连接;通过第1连接将所述第1条状态操作指令传递至服务器;以及接收服务器返回的所述第1条状态操作指令对应的第1项结果,保存所述第1项结果并释放所述第1连接。3.根据权利要求2所述的方法,其中,所述建立与服务器之间的第1连接或第k连接具体为:从连接池中选择一个空闲连接作为与服务器之间的第1连接或第k连接。4.根据权利要求2所述的方法,其中,所述释放第1连接或第k连接进一步包括:向服务器发送连接释放消息,以将第1连接或第k连接放回所述连接池中。5.根据权利要求1-4中任一项所述的方法,其中,所述第1项结果和第k项结果都包括数据个数、数据长度、数据类型和/或事务ID。6.根据权利要求1所述的方法,其中,在所述解析第1项结果至第...

【专利技术属性】
技术研发人员:邓怡豪
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京;11

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

1