nservicebus”的容错默认”设计的一部分,基础设施管理事务自动所以你不需要记住所有的线程和状态管理要素配置。

客户端和服务器

理想情况下,服务器代码处理消息事务,但它往往不是客户所需,特别是桌面应用程序。这是一个之间的差异asa_clientasa_server设置的通用主机在nservicebus。

指定交易代码

如果你不使用通用的主机,您可以指定当前端点应处理消息事务设置istransactional(真的)。msmqtransport()。(版本3)或usetransport < >(MSMQ)。(版本4)。

覆盖系统。交易的默认超时10分钟,按照描述的步骤这篇博客

分布式事务处理协调器

在Windows中,有一个操作系统级别的服务管理需要跨多个资源的交易直接转矩控制,如队列和数据库。这项服务并不总是正确的配置可能需要检修。下载一个工具叫dtcping帮助你发现如果一台机器可以访问在远程机的直接转矩控制。这个工具看起来像这样。

如果你得到一个错误指的是RPC终结点映射器,在命令提示符下,运行组件服务。你应该看到屏幕下方的组件服务。

打开一些端口,通过右键单击“我的电脑”,将“默认协议”选项卡。从那里,选择“面向连接的TCP / IP”并单击“属性”按钮。在“性能COM网络服务”对话框中,检查端口范围包括“5000-6000”,如图所示:

如果端口列表为空,点击“添加……”按钮并输入 “5000-6000”对话框。你的屏幕看起来应该像上面的图片。你可能做不到1000个开放口岸,但这取决于机器的数量在DTC互相连接。

单击确定后,返回组件服务的屏幕,浏览到“本地DTC”节点的分布式事务协调器的文件夹,在右键单击,选择“属性”。在打开的对话框中,选择“安全”选项卡,如图所示:

确保你看到的性能与上述相同,重新启动计算机。

如果dtcping不工作,检查所需的防火墙中的端口是开放的。考虑删除防火墙中的例外和补充DTC再次确认。

如果给你一个寻找dtcping名称消息但没有达到,通过运行“ping计算机名”在命令提示符下做一个简单的平。如果机器不能达到的平,这可能是你有一个DNS的问题,可能需要您的网络管理员的帮助。

确保你完成所有的步骤,不只是连接到数据库服务器,而且在数据库服务器和。

最后,检查使用中的服务器的TCP端口,确保每一个不同的端口配置为双向通信。在这一点上,你应该能够运行事务nservicebus端点。

消息处理循环

信息如下在nservicebus加工:

  1. 队列是偷看,看看有没有消息。
  2. 如果是这样,一个分布式事务开始。
  3. 队列接收消息,再联系。这是因为多个线程可能从相同的消息。队列可以确保只有一个线程可以真正得到一个给定的消息。
  4. 如果线程能够得到它,nservicebus尝试反序列化消息。如果失败,消息移动到配置错误队列和事务提交。
  5. 一个成功的反序列化后,所有的基础设施和应用消息nservicebus调用模块和处理程序。在这一步异常导致事务回滚和消息返回到输入队列。

    • 这是“maxretries”可配置次数。
    • 在那之后,消息传来二级重试(SLR)。
    • 如果在单反的错误仍然存在,该消息将被移动到配置错误队列。

在这种方式中,即使在各种故障情况下,如应用服务器重新启动的消息或数据库死锁中,信息不会丢失。

自动重试机制通常能够从暂时的问题恢复。如果这是不可能的,把消息传递到单反相机决定下一步做什么。

解决更多的永久性错误

在永久的错误会影响系统的情况下,尽管他们的多样性的解决方案是相同的,nservicebus。在描述它,让我们看到这些情况的例子:

  • 数据库是。
  • 一个内部或外部Web服务是下。
  • 系统升级不小心,打破向后兼容性。

在以上所有,行政行为是必要的,从一些简单如建立数据库或Web服务,到更复杂的动作像恢复到以前的系统版本。

单反相机也有助于固定的错误决议

这消息本身并没有错。它可能包含不迷失在这些条件下,有价值的信息。因此,管理员完成解决问题后,他们会回复邮件来自队列。幸运的是,有一个工具nservicebus确实。

returntosourcequeue.exe

你可以在你的下载目录nservicebus“工具”,找到这个工具。

管理员提供的错误队列他们想要使用,或者指定一个特定的消息ID返回到它的源队列,或所有返回给定误差每个排队到各自的源队列中的所有消息。

NServiceBus教程-消息传递与处理的更多相关文章

  1. NServiceBus教程-NServiceBus和WCF

    WCF中缺少的最主要的事情是发布/订阅,但为什么你必须建立它自己吗?NServiceBus,你把它弄出来. 下一个重要的事情是容错.异常导致WCF代理休息,需要"刷新"的代码,但调 ...

  2. nservicebus教程-目录

    表的内容 开始 坚持NServiceBus 扩展 每天 举办 管理和监控 发布订阅 长时间运行的流程 定制 版本控制 常见问题解答 样品 开始 概述 NServiceBus一步一步向导 架构原则 事务 ...

  3. NServiceBus教程-持久化配置

    当配置在NServiceBus v5持久性,秩序是非常重要的.最后赢得持久性配置选项.我们看看一些例子. 示例1 在本例中最后一个配置选项将会覆盖前面的所有选项. v5.2 v5.0 编辑 var c ...

  4. NServiceBus教程-持久化

    NServiceBus的各种特性需要持久性.其中有超时.传奇和订阅存储. 四个持久化技术在NServiceBus在使用: RavenDB nHibernate 内存中 MSMQ 读到安装Raven D ...

  5. 使用NServiceBus开发分布式应用

    系列主题:基于消息的软件架构模型演变 NServiceBus 是一个.Net平台下开源的消息服务框架,这类产品有时也被称作ESB(Enterprise Service Bus)--企业服务总线.NSe ...

  6. SOA、ESB、NServiceBus、云计算 总结

    SOA SOA 是通过功能组件化.服务化,来实现系统集成.解决信息孤岛,这是其主要目标.而更进一步则是实现更快响应业务的变化.更快推出新的应用系统.与此同时,SOA 还实现了整合资源,资源复用. SO ...

  7. UML基础与Rose建模实训教程

    目  录 第1章  初识UML. 1 1.1 初识UML用例图... 1 1.2 初识UML类图... 3 第2章  Rational Rose工具... 6 2.1 安装与配置Rational Ro ...

  8. Senparc.Weixin.MP SDK 微信公众平台开发教程(七):解决用户上下文(Session)问题

    从这篇文章中我们已经了解了微信公众平台消息传递的方式,这种方式有一个先天的缺陷:不同用户的请求都来自同一个微信服务器,这使得常规的Session无法使用(始终面对同一个请求对象,况且还有对方服务器Co ...

  9. JMS(Java消息服务)入门教程

    什么是Java消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建.发送.读取消息等,用于支持JAVA应用程序开发.在J2EE中 ...

随机推荐

  1. Java里面instanceof怎么实现的

    开始完全一头雾水呀,后面看了Java指令集的介绍,逐渐理解了. https://www.zhihu.com/question/21574535/answer/18998914 下面这个答案比较直白 你 ...

  2. [ionic开源项目教程] - 第9讲 新闻详情页的实现

    目录 [ionic开源项目教程] 第1讲 前言,技术储备,环境搭建,常用命令 [ionic开源项目教程] 第2讲 新建项目,架构页面,配置app.js和controllers.js [ionic开源项 ...

  3. Ref相关的名词解释

    NV (NOT-VOLATILE),即非易失性,断电不会丢失的存储信息,包括生产信息.客户信息.产品信息等等. 它们都保存在不同(FLASH)分区,并根据不同的分区提供不同的接口.数据结构和管理机制. ...

  4. Spring读取配置文件的几种方式

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; imp ...

  5. 8个必备的PHP功能开发 (转)

    做过PHP开发的程序员应该清楚,PHP中有很多内置的功能,掌握了它们,可以帮助你在做PHP开发时更加得心应手,本文将分享8个开发必备的PHP功能,个个都非常实用,希望各位PHP开发者能够掌握. 1.传 ...

  6. Karel运行环境配置

    1.下载 见http://wenku.baidu.com/view/24762ced998fcc22bcd10d5e.html 2.界面空白问题 问题:运行Karel后,发现整个界面空白一片,没有任何 ...

  7. RIA+REST架构实现完美WEB开发

    记得第一次看到REST的身影,是在InfoQ上的一篇介绍,随后又翻阅了后面的参考文章和Developerwork上一些资料,甚至随手翻了翻Roy博士的论文.所幸,在不少人还在体会REST到底是何方神圣 ...

  8. C++中关于类型转换的问题讨论

    这里以signed/unsigned char, signed/unsigned short, signed/unsigned int类型为例, 讨论一下基本类型转换的基本原理,这样我们在编程中碰到由 ...

  9. EhCache 分布式缓存/缓存集群

    开发环境: System:Windows JavaEE Server:tomcat5.0.2.8.tomcat6 JavaSDK: jdk6+ IDE:eclipse.MyEclipse 6.6 开发 ...

  10. INDEX_JOIN

    这里就以INDEX_JOIN为例,简单描述一下如何影响Oracle的执行计划的产生. 控制执行计划最简单的方法莫过于使用HINT,这篇文章要介绍的是,在不使用HINT的情况下,让Oracle产生IND ...