青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

網(wǎng)絡(luò)服務(wù)器軟件開發(fā)/中間件開發(fā),關(guān)注ACE/ICE/boost

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  152 Posts :: 3 Stories :: 172 Comments :: 0 Trackbacks
MSMQ(MicroSoft Message Queue,微軟消息隊(duì)列)是在多個(gè)不同的應(yīng)用之間實(shí)現(xiàn)相互通信的一種異步傳輸模式,相互通信的應(yīng)用可以分布于同一臺(tái)機(jī)器上,也可以分布于相連的網(wǎng)絡(luò)空間中的任一位置。它的實(shí)現(xiàn)原理是:消息的發(fā)送者把自己想要發(fā)送的信息放入一個(gè)容器中(我們稱之為Message),然后把它保存至一個(gè)系統(tǒng)公用空間的消息隊(duì)列(Message Queue)中;本地或者是異地的消息接收程序再從該隊(duì)列中取出發(fā)給它的消息進(jìn)行處理。

在消息傳遞機(jī)制中,有兩個(gè)比較重要的概念。一個(gè)是消息,一個(gè)是隊(duì)列。消息是由通信的雙方所需要傳遞的信息,它可以是各式各樣的媒體,如文本、聲音、圖象等等。消息最終的理解方式,為消息傳遞的雙方事先商定,這樣做的好處是,一是相當(dāng)于對(duì)數(shù)據(jù)進(jìn)行了簡單的加密,二則采用自己定義的格式可以節(jié)省通信的傳遞量。消息可以含有發(fā)送和接收者的標(biāo)識(shí),這樣只有指定的用戶才能看到只傳遞給他的信息和返回是否操作成功的回執(zhí)。消息也可以含有時(shí)間戳,以便于接收方對(duì)某些與時(shí)間相關(guān)的應(yīng)用進(jìn)行處理。消息還可以含有到期時(shí)間,它表明如果在指定時(shí)間內(nèi)消息還未到達(dá)則作廢,這主要應(yīng)用與時(shí)間性關(guān)聯(lián)較為緊密的應(yīng)用。

消息隊(duì)列是發(fā)送和接收消息的公用存儲(chǔ)空間,它可以存在于內(nèi)存中或者是物理文件中。消息可以以兩種方式發(fā)送,即快遞方式(express)和可恢復(fù)模式(recoverable),它們的區(qū)別在于,快遞方式為了消息的快速傳遞,把消息放置于內(nèi)存中,而不放于物理磁盤上,以獲取較高的處理能力;可恢復(fù)模式在傳送過程的每一步驟中,都把消息寫入物理磁盤中,以得到較好的故障恢復(fù)能力。消息隊(duì)列可以放置在發(fā)送方、接收方所在的機(jī)器上,也可以單獨(dú)放置在另外一臺(tái)機(jī)器上。正是由于消息隊(duì)列在放置方式上的靈活性,形成了消息傳送機(jī)制的可靠性。當(dāng)保存消息隊(duì)列的機(jī)器發(fā)生故障而重新啟動(dòng)以后,以可恢復(fù)模式發(fā)送的消息可以恢復(fù)到故障發(fā)生之前的狀態(tài),而以快遞方式發(fā)送的消息則丟失了。另一方面,采用消息傳遞機(jī)制,發(fā)送方必要再擔(dān)心接收方是否啟動(dòng)、是否發(fā)生故障等等非必要因素,只要消息成功發(fā)送出去,就可以認(rèn)為處理完成,而實(shí)際上對(duì)方可能甚至未曾開機(jī),或者實(shí)際完成交易時(shí)可能已經(jīng)是第二天了。

采用MSMQ帶來的好處是:由于是異步通信,無論是發(fā)送方還是接收方都不用等待對(duì)方返回成功消息,就可以執(zhí)行余下的代碼,因而大大地提高了事物處理的能力;當(dāng)信息傳送過程中,信息發(fā)送機(jī)制具有一定功能的故障恢復(fù)能力;MSMQ的消息傳遞機(jī)制使得消息通信的雙方具有不同的物理平臺(tái)成為可能。

在微軟的.net平臺(tái)上利用其提供的MSMQ功能,可以輕松創(chuàng)建或者刪除消息隊(duì)列、發(fā)送或者接收消息、甚至于對(duì)消息隊(duì)列進(jìn)行管理。

  在.NET產(chǎn)品中,提供了一個(gè)MSMQ類庫"System.Messaging.dll"。它提供了兩個(gè)類分別對(duì)消息對(duì)象和消息隊(duì)列對(duì)象進(jìn)行操作。在能夠使用MSMQ功能之前,你必須確定你的機(jī)器上安裝了MSMQ消息隊(duì)列組件,并確保服務(wù)正在運(yùn)行中。在使用ASP.NET編程時(shí),應(yīng)在頭部使用:

   <%@ Assembly Name="System.Messaging"%>

   <%@ Import NameSpace="System.Messsaging"%>

  將MSMQ類庫引入ASP.NET文件

  1. 對(duì)消息隊(duì)列的創(chuàng)建

   dim MsgQue as MessageQueue

   MsgQue=New MessageQueue(MsgPath)

其中:MsgPath可以為本地私有隊(duì)列,如".\MyQueue",也可以為其他機(jī)器的公有隊(duì)列,如"Saidy\777$\MyQueue",Saidy為另一機(jī)器名。


  2. 消息的發(fā)送

   dim MsgQue as MessageQueue

   MsgQue.Send(Msg)

   其中:Msg為任一對(duì)象。

  3. 消息的接收

  消息的接收又分成同步和異步方式兩種,同步接收在規(guī)定時(shí)間內(nèi)從消息隊(duì)列中取出收到的第一條消息,當(dāng)消息隊(duì)列中沒有消息時(shí),程序處于等待狀態(tài);異步接收方式則是定義了一個(gè)事件處理函數(shù),當(dāng)消息隊(duì)列中第一個(gè)消息到達(dá)時(shí)立即觸發(fā)該函數(shù)。

  1) 同步方式

   dim Msg as Message

  dim Fmt As XmlMessageFormatter

  Fmt= CType(MsgQue.Formatter,XmlMessageFormatter)

  Fmt.TargetTypeNames = new String(){"System.String"}

  Msg=MsgQue.receive(New TimeSpan(0,0,3))

  首先定義收到消息應(yīng)轉(zhuǎn)換成的格式,然后在指定時(shí)間內(nèi)去接收消息

  2) 異步方式



dim Fmt As XmlMessageFormatter
''定義接收消息類型
Fmt = CType(MsgQue.Formatter,XmlMessageFormatter)
Fmt.TargetTypeNames = new String(){"System.String"}

''定義消息處理函數(shù)入口
AddHandler MsgQue.ReceiveCompleted, New ReceiveCompletedEventHandler
(AddressOf OnReceiveCompleted)

''定義消息處理函數(shù)
Public Shared Sub OnReceiveCompleted(s As Object, asyncResult As ReceiveAsyncEventArgs)
Dim MsgQue As MessageQueue = CType(s,MessageQueue)
Dim Msg As Message = MsgQue.EndReceive(asyncResult.AsyncResult)
''此時(shí)Msg.Body即為所取消息對(duì)象
MsgQue.BeginReceive()
''重新定義異步接收方式
End sub

''啟動(dòng)異步接收方式
MsgQue.BeginReceive


  消息隊(duì)列配置屬性

  關(guān)于隊(duì)列的屬性

   path屬性:它可以決定引用隊(duì)列的三種方式,路徑引用、格式名引用、標(biāo)識(shí)引用

   category屬性:標(biāo)識(shí)當(dāng)前使用的隊(duì)列的類型。Category是隊(duì)列所有者定義的GUID值。該GUID值可以有GUID生成工具產(chǎn)生或者是用戶自定義的數(shù)字值。GUID值不會(huì)唯一,這樣才可以根據(jù)相同的GUID值,把多個(gè)消息隊(duì)列劃分為不同的類別(category)。

  跟發(fā)送數(shù)據(jù)類型相關(guān)的屬性

  Formatter屬性:決定在一個(gè)隊(duì)列中如何發(fā)送和接收消息的順序,以及可以在一個(gè)消息中發(fā)送什么樣的內(nèi)容。

 和隊(duì)列交互相關(guān)的屬性
DenyShareReceive屬性:決定同一時(shí)間內(nèi)只有一個(gè)部件能夠訪問消息隊(duì)列中的消息。

 CanRead和CanWrite屬性:決定隊(duì)列是否可以被讀取或者是寫入。
MaximumQueueSize和MaximumJournalSize屬性:以千字節(jié)為單一個(gè)隊(duì)列(日志隊(duì)列)的消息最大容納量。一旦接收的消息到達(dá)這個(gè)容量,新的消息將不再被接收。
一般情況下,消息隊(duì)列的最大值為消息隊(duì)列管理員所設(shè)置,如果這個(gè)值沒有控制的話,那么缺省的消息隊(duì)列最大容量將是無限制的。
 UseJournalQueue屬性::設(shè)置是否將收到的消息拷貝到日志消息隊(duì)列中去。


__________________

千里之行始于足下

posted on 2007-03-15 12:11 true 閱讀(866) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产一区二区三区无遮挡| 亚洲精品美女在线观看播放| 国产色综合久久| 欧美性久久久| 国产欧美日韩一区二区三区在线| 欧美先锋影音| 国产欧美在线视频| 亚洲福利小视频| 久久香蕉国产线看观看av| 久久久人成影片一区二区三区观看 | 亚洲无线视频| 欧美一区在线看| 免费人成精品欧美精品| 欧美日韩一本到| 国产日韩av高清| 在线免费观看日韩欧美| 一区二区三区精品久久久| 欧美亚洲日本国产| 蜜桃久久av一区| 一片黄亚洲嫩模| 久久久国产一区二区三区| 欧美国产日韩一二三区| 国产精品免费看| 亚洲国产激情| 欧美一区二区三区在线播放| 欧美护士18xxxxhd| 午夜精品视频| 欧美精品在线播放| 国产一区视频观看| 一区二区三区高清视频在线观看| 欧美一区中文字幕| 最新中文字幕亚洲| 久久成人免费网| 国产精品高潮视频| 亚洲精选大片| 欧美成人福利视频| 亚洲女同性videos| 欧美日韩精品在线观看| 永久免费视频成人| 欧美在线亚洲一区| 宅男噜噜噜66一区二区| 久久只有精品| 国产在线播精品第三| 亚洲综合精品| 亚洲免费av观看| 美女91精品| 激情亚洲网站| 久久久久久免费| 亚洲欧美一区二区三区久久| 欧美婷婷六月丁香综合色| 亚洲人成小说网站色在线| 久久夜色精品国产亚洲aⅴ | 亚洲影院色在线观看免费| 欧美成人午夜激情| 尤物精品在线| 老司机67194精品线观看| 性欧美长视频| 国产日韩欧美黄色| 欧美一区亚洲一区| 午夜精品久久久久久久99热浪潮| 欧美午夜精品久久久久免费视| 欧美午夜精品一区| 亚洲人成啪啪网站| 亚洲第一网站| 欧美日韩国产高清| 一本色道久久综合亚洲精品按摩 | 久久亚洲综合色一区二区三区| 国产亚洲日本欧美韩国| 久久国产视频网站| 欧美在线观看天堂一区二区三区 | 一本久久综合| 99国产一区二区三精品乱码| 欧美日韩国产色视频| 国产精品99久久久久久人| 亚洲精品日韩在线| 国产精品大片| 久久久天天操| 乱码第一页成人| 一区二区免费在线播放| 中国成人黄色视屏| 国产女精品视频网站免费| 久久久久久久97| 免费久久99精品国产| 亚洲最新在线| 亚洲欧美综合| 亚洲国产日韩精品| 一区二区三区四区五区视频| 国产精品一区二区久激情瑜伽| 久久精品国产免费观看| 麻豆精品在线观看| 亚洲一卡久久| 久久久久久伊人| 国产精品99久久久久久久久| 羞羞视频在线观看欧美| 亚洲区一区二| 亚洲免费一区二区| 亚洲人成网站999久久久综合| 亚洲一区免费| 亚洲精品久久久久久久久| 正在播放亚洲| 91久久综合| 午夜精品久久99蜜桃的功能介绍| 亚洲人成网在线播放| 午夜精品美女自拍福到在线| 亚洲精品乱码久久久久久黑人 | 亚洲欧美国产精品专区久久| 在线免费不卡视频| 亚洲午夜免费视频| 91久久精品美女高潮| 亚洲你懂的在线视频| 亚洲精品一区二区三区av| 欧美制服丝袜第一页| 亚洲网站视频| 美日韩精品免费| 久久视频免费观看| 亚洲一区二区三区777| 亚洲区第一页| 久久久久国色av免费观看性色| 亚洲欧美日韩在线播放| 欧美国产日韩一区二区在线观看| 久久最新视频| 国产日韩欧美制服另类| 99re6这里只有精品| 亚洲日本在线观看| 久久综合给合| 麻豆av福利av久久av| 国产免费观看久久黄| 一区二区日韩欧美| 亚洲小少妇裸体bbw| 午夜亚洲性色视频| 欧美日韩亚洲一区二区三区在线 | 国产日韩在线视频| 亚洲一区二区三区视频| 亚洲视频网在线直播| 欧美精品一区三区| 亚洲人精品午夜| 亚洲精品视频在线播放| 米奇777在线欧美播放| 欧美成人午夜激情视频| 亚洲福利在线看| 免费观看30秒视频久久| 狂野欧美激情性xxxx| 一区二区三区亚洲| 久久久久综合网| 欧美va日韩va| 亚洲精品日日夜夜| 欧美国产日韩精品免费观看| 亚洲人www| 亚洲视频高清| 国产日韩av高清| 久久天天躁狠狠躁夜夜av| 欧美成人有码| 在线视频日本亚洲性| 国产精品日韩欧美综合| 欧美一级淫片aaaaaaa视频| 久久亚洲综合色| 亚洲美女免费精品视频在线观看| 欧美精品久久久久久久久老牛影院| 亚洲激情成人网| 午夜精品影院在线观看| 激情久久久久| 欧美日韩高清在线播放| 亚洲欧美激情四射在线日 | 亚洲黄色影院| 欧美连裤袜在线视频| 中文av一区二区| 久久久久一本一区二区青青蜜月| 亚洲国产日韩综合一区| 欧美日韩国产a| 欧美一区影院| 亚洲老板91色精品久久| 久久久www| 在线视频欧美精品| 伊伊综合在线| 欧美小视频在线观看| 久久精品国产精品亚洲精品| 国产欧美一区二区在线观看| 亚洲激情网址| 午夜欧美精品| 亚洲欧洲三级电影| 国产精品一区二区在线观看网站 | 一区二区三区四区五区精品视频 | 欧美3dxxxxhd| 亚洲免费一在线| 亚洲黑丝一区二区| 欧美一区在线直播| 99精品热视频| 亚洲二区在线视频| 国产精品永久免费视频| 欧美久久影院| 久久字幕精品一区| 欧美亚洲日本一区| 中国女人久久久| 亚洲日本成人在线观看| 久热精品视频在线观看一区| 午夜在线精品偷拍| 一区二区三区.www| 亚洲美女毛片| 亚洲激情社区| 亚洲国产导航|