CN102971711A - 用于处理批工作单元的设备 - Google Patents
用于处理批工作单元的设备 Download PDFInfo
- Publication number
- CN102971711A CN102971711A CN2011800334079A CN201180033407A CN102971711A CN 102971711 A CN102971711 A CN 102971711A CN 2011800334079 A CN2011800334079 A CN 2011800334079A CN 201180033407 A CN201180033407 A CN 201180033407A CN 102971711 A CN102971711 A CN 102971711A
- Authority
- CN
- China
- Prior art keywords
- message
- withdraws
- counting
- threshold value
- zero
- 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
Links
- 238000012545 processing Methods 0.000 title abstract description 21
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 26
- 238000013500 data storage Methods 0.000 claims description 18
- 230000015572 biosynthetic process Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 12
- 238000003860 storage Methods 0.000 claims description 12
- 239000003795 chemical substances by application Substances 0.000 description 8
- 239000002609 medium Substances 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
一种用于处理与多个消息相关联的批工作单元的设备,用于与数据存储一起使用,所述数据存储用于存储:退出计数,与退出与所述批工作单元相关联的工作的多个实例相关联;退出阈值,与所述退出计数相关联;以及提交计数,与响应于对预定数目的多个消息的成功提交而提交所述批工作单元相关联,所述设备包括:检验器,用于检验所述退出计数是否大于零并小于所述退出阈值;以及撤销元件,响应于所述退出计数大于零且小于所述退出阈值,对所述多个消息的子集撤销所述退出计数,并提交所述批工作单元。
Description
技术领域
本发明涉及用于处理批工作单元(batched unit of work)的设备。
背景技术
在消息驱动的事务处理应用中,当已经计算了提交决定(commitdecision)时,服务器执行用于消息事务的磁盘强制(disk force)。
磁盘强制成本高且引起延迟。
利用消息驱动的事务处理,可以通过批处理(batching)提高效率,使得单一事务处理与预定数目的消息相关联。这样,对于与预定数目的消息相关联的大量的提交决定执行磁盘强制,而不是对于每个消息的提交决定执行磁盘强制。
然而,批处理导致例如这样的问题:如果存在导致一个消息失败的错误,将会退出(back out)(批处理)事务中与所有消息相关联的工作。
因此,在本领域中存在解决上述问题的需要。
发明内容
根据第一个方面,提供了一种用于处理与多个消息相关联的批工作单元的设备,用于与数据存储一起使用,所述数据存储用于存储:退出计数,与退出与所述批工作单元相关联的工作的多个实例相关联;退出阈值,与所述退出计数相关联;以及提交计数,与响应于对预定数目的多个消息的成功提交而提交所述批工作单元相关联,所述设备包括:检验器,用于检验所述退出计数是否大于零并小于所述退出阈值;以及撤销元件,响应于所述退出计数大于零且小于所述退出阈值,对所述多个消息的子集撤销所述退出计数,并提交所述批工作单元。
根据第二个方面,提供了一种用于处理与多个消息相关联的批工作单元的方法,用于与数据存储一起使用,所述数据存储用于存储:退出计数,与退出与所述批工作单元相关联的工作的多个实例相关联;退出阈值,与所述退出计数相关联;以及提交计数,与响应于对预定数目的所述多个消息的成功提交而提交所述批工作单元相关联,所述方法包括步骤:检验所述退出计数是否大于零且小于所述退出阈值;以及响应于所述退出计数大于零且小于所述退出阈值,对所述多个消息的子集撤销所述退出计数,并提交所述批工作单元。
从第三个方面来看,本发明提供了一种用于处理与多个消息相关联的批工作单元的计算机程序产品,用于与数据存储一起使用,所述计算机程序产品包括:可以由处理电路读取、并存储指令的计算机可读存储介质,所述指令用于由所述处理电路执行,实施如本发明的各步骤的方法。
从第四个方面来看,本发明提供了一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行本发明的各步骤的方法。
附图说明
现在将参考优选实施例,仅通过示例的方式描述本发明,所述优选实施例如在下列图中所示:
图1是其中可以实施优选实施例的***的框图;
图2是优选实施例的设备的框图;以及
图3是示出根据优选实施例的过程中涉及的操作步骤的流程图。
具体实施方式
在详细描述优选实施例之前,对于消息队列、消息代理(broker)和消息流的介绍将会有帮助。
迅速采用、整合以及扩展新的和现有数据处理技术的能力已经成为许多企业成功的要素。数据处理网络中的异构性(heterogeneity)和变化已经成为惯例,其需要在不同***之间实现互操作性(interoperability)的通信解决方案。经由智能中间件产品的应用程序到应用的消息接发(messaging)提供了这个问题的解决方案。
某些消息接发产品提供事务处理消息接发支持,根据消息接发协议同步工作逻辑单元内的消息,所述消息接发协议即使在***或消息失败的事件中也给出确定的一次且仅一次的消息传递。某些产品通过直至确认其被接收器***安全存储为止、不从发送器***上的存储最终删除消息来提供确定的传递,并且通过精密恢复设备的使用来提供确定的传递。在当确认成功存储时承诺消息转移之前,从发送器***处的存储删除消息、和***到接收器***的存储中这二者保持“存在疑问”,并且可以在失败事件中不可分地(atomically)退出。
例如由IBM WebSphere MQSeries产品提供的消息队列程序间的通信支持使每个应用程序能够将消息发送到任何其它目标应用程序的输入队列,并且每个目标应用程序可以异步地从其输入队列采用这些消息用于处理。这提供了应用程序之间消息的确定的传递,其可以遍布分布式异构计算机网络,而不要求应用程序之间的专用逻辑终端到终端的连接,但是在应用程序之间可能的互连的映射(map)中可能存在巨大的复杂性。
这种复杂性可以通过在网络架构中包括其它***连接到的通信枢纽代替具有所有***之间的直接连结而被大大地简化。接着可以在通信枢纽处提供消息代理能力,从而提供智能消息路由(routing)和应用的整合。消息代理功能一般包括:使用消息报头(header)中包含的消息“主题”信息,根据不同应用程序的信息需求的业务规则和知识智能地路由消息的能力,以及使用目标应用或***的消息格式需求的知识转换消息格式的能力,以协调***和应用之间的差异。
某些代理能力(诸如例如通过IBM WebSphere Message Broker所提供的)提供用于使用消息接发产品在应用程序之间交换的消息的智能路由和转换服务。
可以在消息代理架构中实施用于消息代理应用的管理和开发这二者的支持,以提供包括发布/订阅消息传递、消息转换、数据库集成、消息入栈(warehousing)和消息路由的功能。
现在将参考图1描述现有技术的更多详细描述,所述图1中示出***(100),包括:具有基础消息支持的环境(120)(包括队列管理器(130);输入队列(135);输出队列(140);失败队列(145))以及数据处理***的例如具有数据库表(127)的数据库管理器(125)的计算机程序(125)。
***(100)还包括运行(hosting)执行组(110)的消息代理(105),所述执行组(110)转而运行消息流(115)。
消息流是由消息代理的处理逻辑所执行的操作序列的直观表示,作为输入和目标(例如,输入队列和目标队列)之间的定向图(消息流图)。消息流图由作为处理元件的表示的消息处理节点、以及节点之间的消息流连接器组成。
在此处的示例中,消息流(115)表示输入队列(135)、输出队列(140)、失败队列(145)和数据库管理器(125)的处理逻辑。
一般地,在第一个现有技术的示例中,处理逻辑从输入队列(135)获得消息(这开始了事务处理);更新数据库表(127);并且将消息放置到输出队列(140)——通常在事务处理中执行该工作,并且在从输入队列(135)获得下一个消息之前提交(commit)该工作。如果存在错误,则退出工作并且在输入队列(135)上“放回”消息——在这种情况下,将退出计数(BackoutCount)增加1。
一般地,也定义了用于队列的退出阈值(Backout Threshold),其表示在将消息放置到失败队列(145)之前允许退出该消息的次数。换句话说,例如,如果退出计数大于退出阈值,则将消息放置到失败队列(145)。
上述第一个现有技术示例的问题是性能:提交工作导致相关联的事务协调器和资源所有者——在该示例中,资源所有者是队列管理器(130)和数据库管理器(125)——强制写入到日志,导致延迟。
通过第二个现有技术示例提供该问题的解决方案。如在背景技术中所述,可以通过成批处理提高效率,使得单一事务与预定义数目的消息相关联。在该示例中,在对预定义数目的消息的提交之后,提交事务,而不是对每个消息提交工作。
在第二个现有技术示例的一种实施方式中,使用被称为提交计数(Commit Count)的消息流属性。
在该实施方式中,在处理之前,消息计数(Message Count)被初始设置为零。
下面,处理逻辑从输入队列(135)获得消息(这开始了事务处理)。
将消息计数增加1。
进行检验以确定退出计数是否大于退出阈值——如果是,则将消息放置到失败队列(145)。
如果退出计数不大于退出阈值,则更新数据库表(127),并且将消息放置到输出队列(140)。
进行进一步的检验以确定消息计数是否大于或等于提交计数。
如果消息计数不大于或等于提交计数,则处理逻辑从输入队列(135)获得另一个消息,并且重复上述步骤。
如果消息计数大于或等于提交计数,则对于每个消息提交事务处理(对于该事务处理强制进行日志写入),并且将消息计数设置为零。
存在与第二个现有技术示例相关联的许多问题。
首先,尽管所实施的提交计数大大加速了处理,但是其存在缺点:如果存在导致会退出事务处理的错误,则整批消息都被影响。例如,如果将提交计数设置在“300”并且第200个消息导致异常(exception),则将会退出当前批次中的所有200个消息,并且随后放置在失败队列中。
第二,数据库管理器可能在重负载下采取“锁升级(lock escalation)”,其甚至当不存在应用错误时也可能引起提交失败。具体地,即使当处理具有相同信息的较小批量的消息时会成功,当处理大批消息时,提交也可能失败。
通过第三个现有技术示例提供该问题的解决方案——在实施方式中,提供了第二个“克隆”消息流,其以提交计数=1运行。当在退出计数>退出阈值时第一个消息流读取消息时,其将它放置到第二个“克隆”消息流的输入队列,而不是将它放置到失败队列(在退出计数=0时将消息放置到输入队列)。当在退出计数=0时第二个“克隆”消息流读取消息时,其将它以与第一个消息流相同的方式处理。当在退出计数>退出阈值时第二个“克隆”消息流读取消息时,其将消息放置到失败队列。返回到前面的示例中,如果一批次的第200个消息失败,则第二个“克隆”消息流将成功处理第1到199个消息,并且第200个消息将再次失败并且被放置到失败队列。
第三个现有技术示例引入更多问题。
首先,第三个现有技术示例创建额外的管理开销,因为其中存在要部署和操作的消息流的两个拷贝。
第二,消息序列丢失——例如,如果消息在大批量的中间失败,则将通过与第一个(原始)流并行的第二个(克隆)流处理该批次中的每个消息。这对于只能按顺序处理消息的应用可能是不可接受的。
通过优选实施例解决这些问题,将参考图2和图3描述该优选实施例。
根据该优选实施例,提供在图2中描绘的控制器(200)。控制器(200)包括检验器(205)和撤销(override)元件(210)。检验器(205)可操作为访问存储消息计数、提交计数、退出计数以及退出阈值的值的值的数据存储(215)。控制器(200)可操作为与图1的***一起使用。
控制器(200)可操作为有条件地使用提交计数:如果退出计数大于零(但低于退出阈值),则控制器(200)忽略提交计数并且对于每个消息提交事务处理(类似于提交计数为1)。
现在将参考图3描述优选实施例的处理。
在步骤300,在处理之前,消息计数被初始设置为零。
在步骤305,从输入队列(135)获得消息(这开始了事务处理)。
将消息计数增加1。
由检验器(205)通过访问数据存储(215)进行检验(步骤310),以确定退出计数是否大于退出阈值——如果是,则将消息放置(步骤315)到失败队列(145)。
如果退出计数不大于退出阈值,则将数据库表(127)更新(步骤320),并且将消息放置(步骤325)到输出队列(140)。
由检验器(205)通过访问数据存储(215)进行进一步检验,以确定消息计数是否大于或等于提交计数,或者退出计数是否大于零。
如果消息计数不大于或等于提交计数,或者退出计数不大于零,则从输入队列(135)获得另一个消息。
如果消息计数大于或等于提交计数,则提交事务处理(步骤335)(并且强制进行日志写入),并且将消息计数设置为零(步骤340)。
也注意到,如果退出计数大于零(但低于退出阈值),则撤销元件(210)忽略提交计数,并且对于每个消息提交事务处理(步骤335)(类似于提交计数为1)。将消息计数设置(步骤340)为零。
现在将描述一个示例。在该示例中,退出阈值为“1”,并且提交计数为“5”。
在步骤300,在处理之前,消息计数被初始设置为零(也注意到,对于该示例,退出计数为零)。
在步骤305,从输入队列(135)获得消息M_1(这开始了事务处理,例如T_1)。
将消息计数增加1,并且存储在数据存储(215)中。
由检验器(205)进行检验(步骤310),以确定退出计数是否大于退出阈值。在该示例中,没有发生失败,导致退出计数停留在“0”。由于退出计数(“0”)不大于退出阈值(“1”),因此更新(步骤320)数据库表(127),并且将消息M_1放置(步骤325)到输出队列(140)。
由检验器(205)进行进一步检验,以确定消息计数(“1”)是否大于或等于提交计数(“5”),或者退出计数(“0”)是否大于零——如果这两个条件都不真,则从输入队列(135)获得另一个消息。
在步骤305,从输入队列(135)获得另一个消息M_2(注意另一个消息M_2与较早开始的T_1的相同事务处理相关联)。
将消息计数增加1,导致消息计数为“2”并存储在数据存储(215)中。
由检验器(205)进行检验(步骤310),以确定退出计数是否大于退出阈值。在这点上,在该示例中,发生失败(为了清晰,未在图3中示出)导致退出工作(事务处理T_1),并且将这两个消息(M_1和M_2)“放回”输入队列(135)中。此外,将退出计数增加1,导致退出计数为“1”。将消息计数设置为“0”(215)并且存储在数据存储(215)中。
过程返回到步骤305,其中从输入队列(135)再次获得第一个消息M_1。这开始了新事务处理T_2。
将消息计数增加1,导致消息计数为“1”(215)。
由检验器(205)进行检验,以确定退出计数(“1”)是否大于退出阈值(“1”)。
在该示例中,检验器(205)确定退出计数(“1”)不大于退出阈值(“1”)。结果,更新(步骤320)数据库表(127),并且将第一个消息M_1放置到输出队列(140)。
由检验器(205)进行进一步检验(步骤330),以确定消息计数(“1”)是否大于或等于提交计数(“5”)——这个条件不真。
检验器(205)也确定退出计数(“1”)是否大于零(但低于退出阈值“1”)——这个条件真。
结果,撤销元件(210)忽略提交计数“5”(其意味着:一般在提交事务处理之前,消息计数必须大于或等于提交计数)。
相反,撤销元件(210)使得事务处理(T_2)被提交(步骤335)(该结果类似于提交计数为“1”)。
将消息计数设置(步骤340)为“0”(215)并存储在数据存储(215)中。
过程返回到步骤305,其中从输入队列(135)再次获得第二个消息M_2。这开始了新事务处理T_3。
将消息计数增加1,导致消息计数为“1”(215)。
由检验器(205)进行检验(步骤310),以确定退出计数(“1”)是否大于退出阈值(“1”)。
在该示例中,检验器(205)确定退出计数(“1”)不大于退出阈值(“1”)。在这点上,再次发生失败(为了清晰,未在图3中示出),导致退出工作(事务处理T_3),并且将第二个消息M_2“放回”输入队列(135)中。此外,将退出计数增加1,导致退出计数为“2”。将消息计数设置为“0”(215),并存储在数据存储(215)中。
过程返回到步骤305,其中从输入队列(135)再次获得第一个消息M_1。这开始了新事务处理T_4。
将消息计数增加1,导致消息计数为“1”(215)。
由检验器(205)进行检验(步骤310),以确定退出计数(“2”)是否大于退出阈值(“1”)。
在该示例中,检验器(205)确定退出计数(“2”)大于退出阈值(“1”)。此时,将第二个消息M_2放置(步骤315)到失败队列(145),并且提交事务处理T_4。
将消息计数设置(步骤340)为零。如果发生更多处理,则过程返回到步骤305,否则,过程结束。
尽管可以具有启用或禁用优选实施例行为的配置属性,但是这并非绝对必要。优选地,每当输入队列的退出阈值属性大于0时,优选实施例提供默认行为。从而,退出阈值=0有效地禁用了优选实施例。这是因为,当退出阈值=0时,已经退出的任何消息将会被发送到失败队列(145)。
有利地,通过有条件地使用提交计数,优选实施例确保了仅将导致错误的消息放置到失败队列(145)中。由于在与错误消息相同的批次中而退出的消息被成功地重新处理,并且当再次获得它们时提交其事务处理。
此外,有利地,通过有条件地使用提交计数,优选实施例确保了如果一批消息例如由于数据库中由大批量的使用(诸如如上所述的锁升级)引起的短暂问题而失败,则其将自动重新处理工作,并且当按每个事务处理提交一个消息时,其可以成功(这就时当退出计数大于零时本发明所执行的方法)。
此外,有利地,通过有条件地使用提交计数,优选实施例确保了如果需要,为不存在错误的所有消息保留消息序列。
本领域普通技术人员将清楚的是,可以将本发明优选实施例的所有或部分方法在逻辑设备或多个逻辑设备中适当并有效地实施,所述逻辑设备或多个逻辑设备包含布置为执行该方法的步骤的逻辑单元、并且这种逻辑单元可以包含硬件部件、固件部件或其组合。
本领域技术人员将同样清楚的是,可以将根据本发明优选实施例的全部或部分逻辑布置在逻辑设备中适当并有效地实施,所述逻辑设备包括逻辑单元以执行所述方法的步骤,并且这种逻辑单元可以包含例如可编程逻辑阵列或专用集成电路中的诸如逻辑门的部件。这种逻辑布置可以进一步通过使这些单元能够用于暂时或永久地在这种阵列或电路中建立逻辑结构而实施,所述阵列或电路使用例如虚拟硬件描述语言,其可以使用固定或可发送的载体介质存储或发送。
将认识到的是,也可以适当地在运行于一个或多个处理器上的软件中全部或部分地执行上述方法和布置(未在图中示出),并且可以以在诸如磁盘或光盘等的任何适当数据载体(同样未在图中示出)上承载的一个或多个计算机程序单元的形式提供该软件。数据传输通道同样可以包含所有描述的存储介质以及信号承载介质,诸如有线或无线信号承载介质。
本发明可以进一步作为用于与计算机***一起使用的计算机程序产品而适当地实施。这种实施方式可以包含一系列计算机可读指令,其固定在诸如计算机可读介质(例如磁盘、CD-ROM、ROM、或硬盘)的有形介质上、或者可以经由调制解调器或其它接口装置,通过有形介质(包括但不限于光学或模拟通信线路)、或者无形地使用无线技术(包括但不限于微波、红外线或其它传输技术),发送到计算机***。这一系列计算机可读指令实施本文前述的所有或部分功能性。
本领域技术人员将认识到,这种计算机可读指令可以以多种编程语言编写,用于与许多计算机架构或操作***一起使用。此外,可以使用现有或将来的任何存储技术(包括但不限于半导体、磁、或光)存储这种指令,或者使用现有或将来的任何通信技术(包括但不限于光、红外线、或微波)而被发送。可以设想的是,这种计算机程序产品可以作为具有伴随印刷或电子文档的可移除介质(例如,收缩封装软件)而被分发,例如与计算机***一起预安装在***ROM或固定磁盘上,或者从例如互联网或万维网的网络上的服务器或电子公告板来分发。
在备选方案中,本发明的优选实施例可以以部署服务的计算机执行的方法而实现,所述方法包含部署计算机程序代码的步骤,所述计算机程序代码可操作为当部署到计算机基础设施并在其上执行时,使所述计算机***执行所述方法的所有步骤。
本领域技术人员将清楚的是,在不脱离本发明的范围的情况下,可以对前述示例性实施例进行各种改进和修改。
Claims (8)
1.一种用于处理与多个消息相关联的批工作单元的设备,用于与数据存储一起使用,所述数据存储用于存储:退出计数,与退出与所述批工作单元相关联的工作的多个实例相关联;退出阈值,与所述退出计数相关联;以及提交计数,其与响应于对预定数目的多个消息的成功提交而提交所述批工作单元相关联,所述设备包括:
检验器,用于检验所述退出计数是否大于零并小于所述退出阈值;以及
撤销元件,响应于所述退出计数大于零且小于所述退出阈值,对所述多个消息的子集撤销所述退出计数,并提交所述批工作单元。
2.如权利要求1所述的设备,进一步包括:响应于所述退出计数大于零且大于所述退出阈值而将所述多个消息的子集放置到失败队列的装置。
3.如权利要求1或2所述的设备,其中所述退出阈值大于零。
4.一种用于处理与多个消息相关联的批工作单元的方法,用于与数据存储一起使用,所述数据存储用于存储:退出计数,与退出与所述批工作单元相关联的工作的多个实例相关联;退出阈值,与所述退出计数相关联;以及提交计数,与响应于对预定数目的所述多个消息的成功提交而提交所述批工作单元相关联,所述方法包括步骤:
检验所述退出计数是否大于零且小于所述退出阈值;以及
响应于所述退出计数大于零且小于所述退出阈值,对所述多个消息的子集撤销所述退出计数,并提交所述批工作单元。
5.如权利要求4所述的方法,进一步包括:
响应于所述退出计数大于零且大于所述退出阈值,将所述多个消息的子集放置到失败队列。
6.如权利要求4或5所述的方法,其中所述退出阈值大于零。
7.一种用于处理与多个消息相关联的批工作单元的计算机程序产品,用于与数据存储一起使用,所述计算机程序产品包括:
可以由处理电路读取、并存储指令的计算机可读存储介质,所述指令由所述处理电路执行,用于实施如权利要求4至6中任意一项所述的方法。
8.一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行如权利要求4至6的任意一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10168325 | 2010-07-02 | ||
EP10168325.8 | 2010-07-02 | ||
PCT/EP2011/060824 WO2012000997A1 (en) | 2010-07-02 | 2011-06-28 | An apparatus for processing a batched unit of work |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102971711A true CN102971711A (zh) | 2013-03-13 |
CN102971711B CN102971711B (zh) | 2016-06-01 |
Family
ID=44512806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180033407.9A Active CN102971711B (zh) | 2010-07-02 | 2011-06-28 | 用于处理批工作单元的设备及其方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8799906B2 (zh) |
CN (1) | CN102971711B (zh) |
DE (1) | DE112011102242T5 (zh) |
GB (1) | GB2495045B (zh) |
WO (1) | WO2012000997A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630635B (zh) * | 2015-12-29 | 2019-07-30 | 北京京东尚科信息技术有限公司 | 数据容灾***和方法 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065161B2 (en) | 2003-11-13 | 2011-11-22 | Hospira, Inc. | System for maintaining drug information and communicating with medication delivery devices |
EP2092470A2 (en) | 2006-10-16 | 2009-08-26 | Hospira, Inc. | System and method for comparing and utilizing activity information and configuration information from mulitple device management systems |
US8271106B2 (en) | 2009-04-17 | 2012-09-18 | Hospira, Inc. | System and method for configuring a rule set for medical event management and responses |
JP6033874B2 (ja) | 2011-10-21 | 2016-11-30 | ホスピーラ インコーポレイテッド | 医療装置更新システム |
AU2014225658B2 (en) | 2013-03-06 | 2018-05-31 | Icu Medical, Inc. | Medical device communication method |
EP3039596A4 (en) | 2013-08-30 | 2017-04-12 | Hospira, Inc. | System and method of monitoring and managing a remote infusion regimen |
US9662436B2 (en) | 2013-09-20 | 2017-05-30 | Icu Medical, Inc. | Fail-safe drug infusion therapy system |
US10311972B2 (en) | 2013-11-11 | 2019-06-04 | Icu Medical, Inc. | Medical device system performance index |
JP2016537175A (ja) | 2013-11-19 | 2016-12-01 | ホスピーラ インコーポレイテッド | 注入ポンプ自動化システムおよび方法 |
JP6106901B2 (ja) * | 2013-12-31 | 2017-04-05 | ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. | 分散ファイルストレージシステムにおけるデータ処理の方法およびデバイス |
JP6853669B2 (ja) | 2014-04-30 | 2021-03-31 | アイシーユー・メディカル・インコーポレーテッド | 条件付きの警報転送を用いた患者治療システム |
US9724470B2 (en) | 2014-06-16 | 2017-08-08 | Icu Medical, Inc. | System for monitoring and delivering medication to a patient and method of using the same to minimize the risks associated with automated therapy |
US9539383B2 (en) | 2014-09-15 | 2017-01-10 | Hospira, Inc. | System and method that matches delayed infusion auto-programs with manually entered infusion programs and analyzes differences therein |
AU2016267761B2 (en) | 2015-05-26 | 2021-02-11 | Icu Medical, Inc. | Infusion pump system and method with multiple drug library editor source capability |
US10417038B2 (en) | 2016-02-18 | 2019-09-17 | Red Hat, Inc. | Batched commit in distributed transactions |
AU2017295722B2 (en) | 2016-07-14 | 2022-08-11 | Icu Medical, Inc. | Multi-communication path selection and security system for a medical device |
US10462067B2 (en) * | 2017-01-26 | 2019-10-29 | International Business Machines Corporation | Proactive channel agent |
US11347712B2 (en) * | 2017-11-07 | 2022-05-31 | International Business Machines Corporation | Preventing long running transactions from holding record locks |
EP3824386B1 (en) | 2018-07-17 | 2024-02-21 | ICU Medical, Inc. | Updating infusion pump drug libraries and operational software in a networked environment |
US11152109B2 (en) * | 2018-07-17 | 2021-10-19 | Icu Medical, Inc. | Detecting missing messages from clinical environment |
US11139058B2 (en) | 2018-07-17 | 2021-10-05 | Icu Medical, Inc. | Reducing file transfer between cloud environment and infusion pumps |
AU2019306492A1 (en) | 2018-07-17 | 2021-02-11 | Icu Medical, Inc. | Systems and methods for facilitating clinical messaging in a network environment |
US10692595B2 (en) | 2018-07-26 | 2020-06-23 | Icu Medical, Inc. | Drug library dynamic version management |
CA3107315C (en) | 2018-07-26 | 2023-01-03 | Icu Medical, Inc. | Drug library management system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5465328A (en) * | 1993-03-30 | 1995-11-07 | International Business Machines Corporation | Fault-tolerant transaction-oriented data processing |
US20070186056A1 (en) * | 2006-02-07 | 2007-08-09 | Bratin Saha | Hardware acceleration for a software transactional memory system |
CN101673275A (zh) * | 2009-08-11 | 2010-03-17 | 东软集团股份有限公司 | 一种保证数据库内事务一致的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7177859B2 (en) * | 2002-06-26 | 2007-02-13 | Microsoft Corporation | Programming model for subscription services |
US20040002988A1 (en) * | 2002-06-26 | 2004-01-01 | Praveen Seshadri | System and method for modeling subscriptions and subscribers as data |
-
2011
- 2011-06-28 CN CN201180033407.9A patent/CN102971711B/zh active Active
- 2011-06-28 WO PCT/EP2011/060824 patent/WO2012000997A1/en active Application Filing
- 2011-06-28 GB GB1300613.5A patent/GB2495045B/en active Active
- 2011-06-28 DE DE112011102242T patent/DE112011102242T5/de not_active Ceased
- 2011-06-29 US US13/171,576 patent/US8799906B2/en active Active
-
2012
- 2012-03-09 US US13/417,096 patent/US8769536B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5465328A (en) * | 1993-03-30 | 1995-11-07 | International Business Machines Corporation | Fault-tolerant transaction-oriented data processing |
US20070186056A1 (en) * | 2006-02-07 | 2007-08-09 | Bratin Saha | Hardware acceleration for a software transactional memory system |
CN101673275A (zh) * | 2009-08-11 | 2010-03-17 | 东软集团股份有限公司 | 一种保证数据库内事务一致的方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630635B (zh) * | 2015-12-29 | 2019-07-30 | 北京京东尚科信息技术有限公司 | 数据容灾***和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20120174109A1 (en) | 2012-07-05 |
CN102971711B (zh) | 2016-06-01 |
GB201300613D0 (en) | 2013-02-27 |
DE112011102242T5 (de) | 2013-04-25 |
GB2495045B (en) | 2017-07-26 |
GB2495045A (en) | 2013-03-27 |
US20120005680A1 (en) | 2012-01-05 |
WO2012000997A1 (en) | 2012-01-05 |
US8799906B2 (en) | 2014-08-05 |
US8769536B2 (en) | 2014-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102971711A (zh) | 用于处理批工作单元的设备 | |
US8364636B2 (en) | Real time data replication | |
US8285872B2 (en) | Affinity-based transaction processing | |
CN111813791B (zh) | 一种分布式补偿事务的方法及设备 | |
CN103782574A (zh) | 用于数据库事务的幂等性 | |
US9529651B2 (en) | Apparatus and method for executing agent | |
CN110188103A (zh) | 数据对账方法、装置、设备和存储介质 | |
CN108415758B (zh) | 分布式事务协调方法及装置 | |
CN110795447A (zh) | 数据处理方法、数据处理***、电子设备和介质 | |
CN113791876A (zh) | 用于处理任务的***、方法和装置 | |
CN115146316A (zh) | 跨***数据访问方法、装置、设备和介质 | |
CN113900840A (zh) | 一种分布式事务最终一致性处理方法及装置 | |
CN111639936A (zh) | 交易信息的获取方法、装置、电子设备及可读存储介质 | |
US7502792B2 (en) | Managing database snapshot storage | |
CN114285807B (zh) | 一种报文信息管理方法、装置、服务器和存储介质 | |
CN117472617B (zh) | 一种消息处理方法、装置、电子设备及可读存储介质 | |
US20220343240A1 (en) | System and method for parallel object modification in an enterprise resource planning application | |
US8769065B1 (en) | Methods and apparatus for implementing a data management framework to collect network management data | |
US9985833B2 (en) | Method and apparatus for software detection | |
CN117891794A (zh) | 日志的生成方法、装置、终端设备及存储介质 | |
CN115098281A (zh) | 区块链跨链任务处理方法、装置、服务器及介质 | |
CN118295839A (zh) | 数据库故障的数据处理方法、装置、设备及介质 | |
CN117938619A (zh) | 异常节点处理方法、***、计算设备及存储介质 | |
CN114201240A (zh) | 配置helm chart的方法和装置 | |
CN114064220A (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 |