惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
Engineering at Meta
Engineering at Meta
博客园 - 司徒正美
T
Tailwind CSS Blog
F
Full Disclosure
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
IT之家
IT之家
J
Java Code Geeks
Y
Y Combinator Blog
Microsoft Security Blog
Microsoft Security Blog
B
Blog
V
V2EX
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
The Cloudflare Blog
Recent Announcements
Recent Announcements
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
罗磊的独立博客
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
云风的 BLOG
云风的 BLOG
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
酷 壳 – CoolShell
酷 壳 – CoolShell
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Security @ Cisco Blogs
MyScale Blog
MyScale Blog
MongoDB | Blog
MongoDB | Blog
U
Unit 42
H
Heimdal Security Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
V2EX - 技术
V2EX - 技术
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google Online Security Blog
Google Online Security Blog
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
PCI Perspectives
PCI Perspectives
博客园 - 三生石上(FineUI控件)
I
InfoQ
SecWiki News
SecWiki News
N
News and Events Feed by Topic
D
DataBreaches.Net
Schneier on Security
Schneier on Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

博客园 - billqi(岁月如水)

解除webservice上下传文件大小限制 [转贴]请不要做浮躁的人! BBS 水木清华站 msmq两个网域之间消息传输与接收测试总结 msmq消息队列使用及测试总结 PDA 应用领域 GPS的十大绝技 GSM - billqi(岁月如水) - 博客园 深圳面试提醒(特别针对女生) CRM功能架构 VMI的理念与应用 台湾供货商管理库存(VMI)导入指引 SMART原则与自我激励 微软架构师网站 绩效考核的KPI及SMART原则 微软.net framework工具集帮助 sql查询语句问题- sum求和的值作为查询条件 2年前的建议书 Server群集部署? 新的天地
msmq 之触发器
billqi(岁月如水) · 2005-07-01 · via 博客园 - billqi(岁月如水)

对于触发器,sql server 中的这个概念应该用的最多,很多人担心性能太差,而不予采用。

而 msmq 中的trigger 则相反,比自己写代码轮询一个queue 中的消息,则方便很多。

适合的场景:

各种各样的客户端通过调用web service 或者remoting, 提交定单信息。服务端将这些消息发送到对应的各个队列中。

后台的应用程序监视队列,retrieve 队列中的消息,做处理。

只所以采用队列,而不是采用一个文件或者数据库作为缓冲,主要考虑以下因素:
1。msmq 其实是一种reliable messaging。所以很多soa 应用中,都会提到用queue 作为一个中间件
2。msmq 本质上是异步的
3。msmq 也提供了transactional messaging ,这个跟sql 2005总的 service broker 很想。

对于上面提到的后台程序,一种方式是用一个windows 服务,轮询队列中的消息,read 然后处理。

另外一种方式就是使用msmq 3.0提供的trigger。
在消息队列的管理界面,管理人员可以创建规则(比如monitor什么样的消息,优先级,label等),监视那个队列的名称。

这样一旦有消息来的时候,后台的msmq trigger 服务就会把这个消息传递给你指定的com或者exe。如果是com,会自动的实例化一个类,调用你指定的方法,然后destroy。这里有几点需要注意:
1。.NET 的class library也可以使用,不过要通过ccw创建一个com 可以调用的类。
2。queue 收到message 的时候有三种 retrieve 方式, peek,retrieval, transaction retrieval。的三种最有用,应为你的com 在处理改消息的时候可能会出错,这时候他会自动rollback 改消息到队列中。
3。transactional retrieval 只对com有效,对exe没有用。这一点,需要特别注意。后台的trigger service 并不会创建一个类似mts 一样的context 给你的exe。