⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 209003.htm

📁 探索Windows 2000发展策略以及中介层技术设计的基本概念
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html><body><span  id=Layer1><a name=209003><font color=#3e70d7 face=arial size=5><b>了解伫列</span><span  id=Layer2></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ基於两件事提供服务:伫列与讯息。了解它们就能透清楚地了解MSMQ负责的工作,以及能用它来做什麽。我们先看看伫列,下一节再来描述讯息。</span><span  id=Layer3></font></p><font color=#3e72d7 face=arial size=4><b>伫列的类型</span><span  id=Layer4></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ定义了两种伫列。第一种是应用程式伫列 (application queue),它由开发者所撰写的MSMQ应用程式建立、使用的。第二种是系统伫列 (system queue),由MSMQ自行建立、使用。应用程式伫列有四种类型:</span><span  id=Layer5></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;讯息伫列</span><span  id=Layer6>&nbsp;</b></font>(</span><span  id=Layer7><font size=2 face=arial color=#3e80d7><b>&nbsp;Message queues</span><span  id=Layer8>&nbsp;</b></font>) 应用程式利用它送收讯息。MSMQ使用者可以建立公用伫列或私人讯息伫列。如果能用Active Directory找寻到的话,那它就是一个公用伫列。否则的话,它就具有私人伫列的资格。公用伫列对於那些须让其他应用程式能找得到它们的伫列之应用程式而言是很有用的 (虽然其他应用程式可以透过目录找到伫列,但仍可设定伫列的安全性设定以拒绝他人存取,後面章节将做描述)。如果应用程式只会使用一组特定的伫列,而且没有其他程式需要使用这些伫列,那麽私人伫列大概会是较好的选择。</span><span  id=Layer9></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>应用程式使用讯息伫列交换讯息</span><span  id=Layer10></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>应用程式使用讯息伫列交换讯息</span><span  id=Layer11></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;回应伫列</span><span  id=Layer12>&nbsp;</b></font>(</span><span  id=Layer13><font size=2 face=arial color=#3e80d7><b>&nbsp;Response queues</span><span  id=Layer14>&nbsp;</b></font>) 应用程式利用它传送回应讯息给其他程式。回应伫列通常只是一个普通的讯息伫列,用来指定任何回应讯息该传送到的地方。</span><span  id=Layer15></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>应用程式经由回应伫列传送回应讯息</span><span  id=Layer16></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>应用程式经由回应伫列传送回应讯息</span><span  id=Layer17></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;管理伫列</span><span  id=Layer18>&nbsp;</b></font>(</span><span  id=Layer19><font size=2 face=arial color=#3e80d7><b>&nbsp;Administration queues</span><span  id=Layer20>&nbsp;</b></font>) 用来放置MSMQ自己送出的认可讯息。认可讯息的种类在本章後面章节再做描述。</span><span  id=Layer21></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>MSMQ传送认可讯息到管理伫列</span><span  id=Layer22></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ传送认可讯息到管理伫列</span><span  id=Layer23></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;报告伫列</span><span  id=Layer24>&nbsp;</b></font>(</span><span  id=Layer25><font size=2 face=arial color=#3e80d7><b>&nbsp;Report queues</span><span  id=Layer26>&nbsp;</b></font>) 用来追踪讯息的处理的情形。例如,应用程式可以要求MSMQ追踪讯息的路由情形,那麽MSMQ产生的追踪讯息会送到报告伫列里。然而,应用程式产生的讯息也可以送到报告伫列里,这就是为什麽报告伫列会被当作应用程式伫列而不是系统伫列的原因了。</span><span  id=Layer27></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>应用程式或MSMQ可以传送伫列处理的追踪讯息到报告伫列</span><span  id=Layer28></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>应用程式或MSMQ可以传送伫列处理的追踪讯息到报告伫列</span><span  id=Layer29></font></p><hr></font></ul></font><p><font size=2 color=#3c3c3c face=arial>第二种是系统伫列,包含两种不同用途的伫列,就是:</span><span  id=Layer30></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;日志伫列</span><span  id=Layer31>&nbsp;</b></font>(</span><span  id=Layer32><font size=2 face=arial color=#3e80d7><b>&nbsp;Journal Queues</span><span  id=Layer33>&nbsp;</b></font>) 用来放置应用程式所传送的讯息之复本,讯息复本由MSMQ产生。MSMQ提供两种不同的日志。每个MSMQ伺服器以及独立客户端会有一个机器日志 (machine journal),用来存放每一个传送到机器上的讯息之复本。每建立一个伫列也会同时产生一个关联的日志伫列,用来存放每一个由伫列移除的讯息之复本。两种日志伫列都是唯读的,而应用程式与MSMQ管理员控制要使用哪种日志。</span><span  id=Layer34></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>MSMQ可以放置传送讯息的复本於日志伫列</span><span  id=Layer35></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ可以放置传送讯息的复本於日志伫列</span><span  id=Layer36></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;无法投递的信件伫列</span><span  id=Layer37>&nbsp;</b></font>(</span><span  id=Layer38><font size=2 face=arial color=#3e80d7><b>&nbsp;Dead letter queues</span><span  id=Layer39>&nbsp;</b></font>) 如果讯息无法传递到目的地伫列,应用程式可以要求MSMQ把讯息放入无法投递的信件伫列里。应用程式可以决定是要把无法传递的讯息送到无法投递的信件伫列里,或者是直接删除掉。</span><span  id=Layer40></li><br></font></ul></font><font color=#3e72d7 face=arial size=4><b>伫列的属性</span><span  id=Layer41></b></font><p><font size=2 color=#3c3c3c face=arial>每个伫列都有一些属性。应用程式与MSMQ管理员设定属性值,用以控制伫列的独特用途以及运行方式。公用伫列的属性设定值存放在Active Directory里,而伫列所存在的机器上有一份暂存的复本。私人伫列的属性设定值则只存放在伫列所存在的机器上,它们并未储存在Active Directory里。伫列的属性可设有特定的使用权限,以允许不同的使用者对读取与修改属性值有不同的许可权。</span><span  id=Layer42></font></p><p><font size=2 color=#3c3c3c face=arial>伫列拥有属性</span><span  id=Layer43></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>伫列拥有属性</span><span  id=Layer44></font></p><hr><p><font size=2 color=#3c3c3c face=arial>表9-1中条列出伫列所拥有的属性以及简短的描述。</span><span  id=Layer45></font></p><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;表9-1 MSMQ伫列的属性</span><span  id=Layer46>&nbsp;</b></font></td></table></font></center><center><table border=1><tr><th><font size=2>属性</span><span  id=Layer47></b></font></td><th><font size=2>描述</span><span  id=Layer48></b></font></td></tr><tr><td><font size=2>验证</span><span  id=Layer49></font></td><td><font size=2>必须验证送到伫列的讯息吗 ?</span><span  id=Layer50></font></td></tr><tr><td><font size=2>基本优先顺序</span><span  id=Layer51></font></td><td><font size=2>伫列的优先顺序</span><span  id=Layer52></font></td></tr><tr><td><font size=2>建立时间</span><span  id=Layer53></font></td><td><font size=2>建立伫列的日期与时间</span><span  id=Layer54></font></td></tr><tr><td><font size=2>例项</span><span  id=Layer55></font></td><td><font size=2>辨识伫列的GUID</span><span  id=Layer56></font></td></tr><tr><td><font size=2>日志伫</span><span  id=Layer57></font></td><td><font size=2>必须将每个从伫列移除的讯息拷贝到日志			列吗 ?</span><span  id=Layer58></font></td></tr><tr><td><font size=2>日志存放限制</span><span  id=Layer59></font></td><td><font size=2>日志伫列的最大存放位元组数</span><span  id=Layer60></font></td></tr><tr><td><font size=2>标签</span><span  id=Layer61></font></td><td><font size=2>描述伫列的字元字串</span><span  id=Layer62></font></td></tr><tr><td><font size=2>修改时间</span><span  id=Layer63></font></td><td><font size=2>伫列属性最後被修改的时间</span><span  id=Layer64></font></td></tr><tr><td><font size=2>路径名称</span><span  id=Layer65></font></td><td><font size=2>伫列的名称</span><span  id=Layer66></font></td></tr><tr><td><font size=2>DNS路径名称</span><span  id=Layer67></font></td><td><font size=2>充当伫列名称的电脑DNS名称</span><span  id=Layer68></font></td></tr><tr><td><font size=2>私密性等级</span><span  id=Layer69></font></td><td><font size=2>送到伫列的讯息必须加密吗 ?</span><span  id=Layer70></font></td></tr><tr><td><font size=2>存放限制</span><span  id=Layer71></font></td><td><font size=2>指明伫列存放讯息的最大位元组数</span><span  id=Layer72></font></td></tr><tr><td><font size=2>异动</span><span  id=Layer73></font></td><td><font size=2>伫列是可异动的吗 ?</span><span  id=Layer74></font></td></tr><tr><td><font size=2>类型</span><span  id=Layer75></font></td><td><font size=2>使用者定义的GUID;能用来寻找伫列</span><span  id=Layer76></font></td></tr></table></center><p><font size=2 color=#3c3c3c face=arial>考量与Windows系统管理工具的中译名词一致,本章中"transaction"皆翻译为「异动」。</span><span  id=Layer77></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b> 附注</b></font><p><font size=2 color=#3c3c3c face=arial>考量与Windows系统管理工具的中译名词一致,本章中"transaction"皆翻译为「异动」。</span><span  id=Layer78></font></p><hr><p><font size=2 color=#3c3c3c face=arial>有些伫列属性由MSMQ设定,MSMQ应用程式和管理员无法改变它们。除了这些属性以外,任何人都可以设定其他的属性,当然必须有适当的权限。这些属性中较重要的是:</span><span  id=Layer79></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;路径名称</span><span  id=Layer80>&nbsp;</b></font>(</span><span  id=Layer81><font size=2 face=arial color=#3e80d7><b>&nbsp;Pathname</span><span  id=Layer82>&nbsp;</b></font>) 这是建立伫列时唯一绝对要给定的属性。伫列的路径名称是指明伫列所在机器以及伫列名字的字元字串。例如在QwickBank公司中,某些应用程式所使用的伫列可以是「machine1.qwickbank.com\myqueue」。这属性一旦设定了便不能再改变。</span><span  id=Layer83></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>每个伫列都有一个路径名称属性</span><span  id=Layer84></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>每个伫列都有一个路径名称属性</span><span  id=Layer85></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;存放限制</span><span  id=Layer86>&nbsp;</b></font>(</span><span  id=Layer87><font size=2 face=arial color=#3e80d7><b>&nbsp;Quota</span><span  id=Layer88>&nbsp;</b></font>) 指明伫列能存放讯息的最大位元组数量。如果伫列中讯息的总量已经到达存放限制,想要再传送讯息到伫列内便会失败。预设没有存放限制,而是允许伫列扩增直到机器空间用完为止 (MSMQ也允许为整台电脑设定存放限制-当作电脑的属性而不是伫列的属性。这个存放限制设定机器上所有伫列的位元组总量限制。超过的话,送到任何伫列的讯息都会被丢弃)。</span><span  id=Layer89></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>存放限制属性控制着伫列所能包含的资料量</span><span  id=Layer90></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>存放限制属性控制着伫列所能包含的资料量</span><span  id=Layer91></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;日志</span><span  id=Layer92>&nbsp;</b></font>(</span><span  id=Layer93><font size=2 face=arial color=#3e80d7><b>&nbsp;Journal</span><span  id=Layer94>&nbsp;</b></font>) 控制要不要将从伫列移除的讯息拷贝到MSMQ维护的日志伫列内 (日志是以日志伫列的方式实作,与所要记录的伫列位在同一台机器上)。选择日志将稽核所有移出伫列的讯息,MSMQ也允许稽核送出的讯息。为达此目的,必须设定每个送出讯息的一项属性,本章後面再做描述。MSMQ并不会自动清空日志伫列,所以需要某些周期性的管理动作以避免伫列被塞满。</span><span  id=Layer95></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>日志属性控制着是否要将伫列内的讯息拷贝到日志伫列</span><span  id=Layer96></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>日志属性控制着是否要将伫列内的讯息拷贝到日志伫列</span><span  id=Layer97></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;基本优先顺序</span><span  id=Layer98>&nbsp;</b></font>(</span><span  id=Layer99><font size=2 face=arial color=#3e80d7><b>&nbsp;Base priority</span><span  id=Layer100>&nbsp;</b></font>) 用来决定讯息的路由。送到拥有较高优先顺序伫列的讯息会先被传送。只有公用伫列有此属性-私人伫列不支援伫列优先顺序。</span><span  id=Layer101></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>基本优先顺序属性影响讯息的路由情形</span><span  id=Layer102></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>基本优先顺序属性影响讯息的路由情形</span><span  id=Layer103></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;类型</span><span  id=Layer104>&nbsp;</b></font>(</span><span  id=Layer105><font size=2 face=arial color=#3e80d7><b>&nbsp;Type</span><span  id=Layer106>&nbsp;</b></font>) 应用程式定义的GUID,以便用来在Active Directory中寻找伫列。例如,QwickBank的程式开发者可以为传送透支通知的伫列,定义一个特定的GUID。任何需要传送这类通知的应用程式便可以使用类别属性在Active Directory中找到这些伫列。这个方案可让应用程式不需事先知道伫列存在於哪一台机器上,而是藉由目录来找到这种伫列。</span><span  id=Layer107></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>类别属性是用来找到特定种类的伫列</span><span  id=Layer108></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>类别属性是用来找到特定种类的伫列</span><span  id=Layer109></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;标签</span><span  id=Layer110>&nbsp;</b></font>(</span><span  id=Layer111><font size=2 face=arial color=#3e80d7><b>&nbsp;Label</span><span  id=Layer112>&nbsp;</b></font>) 用以辨识某个或某种伫列的字元字串。就像类别属性,应用程式可以指明特定值以便在Active Directory中寻找伫列。</span><span  id=Layer113></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>标签属性也能用来找到特定种类的伫列</span><span  id=Layer114></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>标签属性也能用来找到特定种类的伫列</span><span  id=Layer115></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;私密性等级</span><span  id=Layer116>&nbsp;</b></font>(</span><span  id=Layer117><font size=2 face=arial color=#3e80d7><b>&nbsp;Priracy level</span><span  id=Layer118>&nbsp;</b></font>) 如果伫列的私密性等级设定为「无」,则伫列只会接受未加密的讯息。如果伫列的私密性等级设定为「本文」,则伫列只接受加密的讯息 (利用本章後面描述的讯息属性)。如果设定为预设值「选项」,则伫列可同时接受未加密以及已加密的讯息。</span><span  id=Layer119></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;异动</span><span  id=Layer120>&nbsp;</b></font>(</span><span  id=Layer121><font size=2 face=arial color=#3e80d7><b>&nbsp;Transaction</span><span  id=Layer122>&nbsp;</b></font>) 如果伫列设定了这个属性,那伫列就是可异动的,也就是伫列只能接收在异动中传送的讯息。在MSMQ中使用异动是非常重要的话题,本章後面将另辟章节讨论。</span><span  id=Layer123></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>异动属性决定了伫列是否可以参加异动</span><span  id=Layer124></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>异动属性决定了伫列是否可以参加异动</span><span  id=Layer125></font></p><hr></font></ul></font><p><font size=2 color=#3c3c3c face=arial>您也可以为每个伫列定义使用权限 (access permission)。使用权限由安全性描述元 (security descriptor) 以及伫列的存取控制清单 (access control list,ACL) 来决定。ACL指明谁能送讯息到伫列、谁能由伫列接收讯息...等等。</span><span  id=Layer126></font></p><p><font size=2 color=#3c3c3c face=arial>每个伫列都有ACL控制着谁能存取它</span><span  id=Layer127></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>每个伫列都有ACL控制着谁能存取它</span><span  id=Layer128></font></p><hr></span><span  id=Layer129><p><font size=2 color=#3c3c3c face=arial>在Windows 2000,伫列实际上是以记忆体对应档案 (memory-mapped file) 技术实作的,但单一档案可以包含来自几个不同伫列的讯息。因此,伫列的ACL与持有伫列讯息的档案之ACL是完全分开的。</span><span  id=Layer130></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b> 附注</b></font><p><font size=2 color=#3c3c3c face=arial>在Windows 2000,伫列实际上是以记忆体对应档案 (memory-mapped file) 技术实作的,但单一档案可以包含来自几个不同伫列的讯息。因此,伫列的ACL与持有伫列讯息的档案之ACL是完全分开的。</span><span  id=Layer131></font></p><hr><p><font size=2 color=#3c3c3c face=arial>只要有适当的权限,使用者可以自行更改伫列的安全性描述元,并能够详细地设定那些权限。例如,某个使用者可能有权检视讯息,但无移除讯息的权限。预设情况下,所有人都可以传送讯息到伫列内,如有必要,也可以限定只有某些人能够传送。</span>
	</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -