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

網絡服務器軟件開發/中間件開發,關注ACE/ICE/boost

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

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

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

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

在微軟的.net平臺上利用其提供的MSMQ功能,可以輕松創建或者刪除消息隊列、發送或者接收消息、甚至于對消息隊列進行管理。

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

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

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

  將MSMQ類庫引入ASP.NET文件

  1. 對消息隊列的創建

   dim MsgQue as MessageQueue

   MsgQue=New MessageQueue(MsgPath)

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


  2. 消息的發送

   dim MsgQue as MessageQueue

   MsgQue.Send(Msg)

   其中:Msg為任一對象。

  3. 消息的接收

  消息的接收又分成同步和異步方式兩種,同步接收在規定時間內從消息隊列中取出收到的第一條消息,當消息隊列中沒有消息時,程序處于等待狀態;異步接收方式則是定義了一個事件處理函數,當消息隊列中第一個消息到達時立即觸發該函數。

  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))

  首先定義收到消息應轉換成的格式,然后在指定時間內去接收消息

  2) 異步方式



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

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

''定義消息處理函數
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)
''此時Msg.Body即為所取消息對象
MsgQue.BeginReceive()
''重新定義異步接收方式
End sub

''啟動異步接收方式
MsgQue.BeginReceive


  消息隊列配置屬性

  關于隊列的屬性

   path屬性:它可以決定引用隊列的三種方式,路徑引用、格式名引用、標識引用

   category屬性:標識當前使用的隊列的類型。Category是隊列所有者定義的GUID值。該GUID值可以有GUID生成工具產生或者是用戶自定義的數字值。GUID值不會唯一,這樣才可以根據相同的GUID值,把多個消息隊列劃分為不同的類別(category)。

  跟發送數據類型相關的屬性

  Formatter屬性:決定在一個隊列中如何發送和接收消息的順序,以及可以在一個消息中發送什么樣的內容。

 和隊列交互相關的屬性
DenyShareReceive屬性:決定同一時間內只有一個部件能夠訪問消息隊列中的消息。

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


__________________

千里之行始于足下

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

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   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>
            欧美伊人精品成人久久综合97| 在线午夜精品| 欧美另类在线观看| 亚洲高清免费| 亚洲第一福利在线观看| 老司机免费视频一区二区三区| 免费影视亚洲| 极品中文字幕一区| 欧美中文在线免费| 欧美日韩免费观看一区=区三区| 亚洲专区国产精品| 韩国女主播一区| 99www免费人成精品| 亚洲国产欧美日韩| 欧美一区二区三区免费观看视频| 亚洲美女av网站| 欧美日韩国产精品自在自线| 国产一区二区三区奇米久涩 | 一区二区三区国产在线观看| 日韩一级网站| 欧美激情小视频| 欧美在线高清| 国产视频久久久久| 午夜欧美不卡精品aaaaa| 日韩视频在线免费| 欧美激情精品久久久久久黑人| 亚洲国产精品一区在线观看不卡| 日韩午夜黄色| 国产亚洲在线| 欧美日韩国产小视频在线观看| 亚洲欧美国产一区二区三区| 欧美ab在线视频| 国内成人精品2018免费看| 欧美金8天国| 久久国产精品久久久久久久久久| 亚洲承认在线| 久久天堂av综合合色| 母乳一区在线观看| 亚洲国产一区在线| 久久精品亚洲精品| 宅男精品视频| 亚洲黄色有码视频| 国产欧美日本一区视频| 欧美a一区二区| 欧美国产日韩一区二区在线观看| 99精品免费| 亚洲国产三级| 在线免费观看日本一区| 国产色产综合色产在线视频 | 亚洲免费激情| 亚洲国产乱码最新视频| 久久久精品国产一区二区三区 | 久久国产精品久久久久久久久久| 日韩亚洲精品电影| 亚洲福利视频专区| 一区二区在线观看av| 国产日韩一区在线| 国产精品青草久久| 国产精品大片免费观看| 欧美人交a欧美精品| 免费在线观看精品| 免费成人黄色av| 亚洲欧洲精品成人久久奇米网| 免费不卡在线视频| 麻豆成人91精品二区三区| 久久久久欧美精品| 久久久久久久综合色一本| 欧美亚洲一级片| 久久精品久久综合| 久久综合九色99| 欧美va亚洲va国产综合| 亚洲欧美日本国产有色| 亚洲一区国产精品| 亚洲欧美日韩一区二区三区在线| 亚洲永久精品国产| 亚洲欧美bt| 欧美在线短视频| 狼人天天伊人久久| 亚洲国产综合91精品麻豆| 日韩性生活视频| 午夜精品一区二区三区四区 | 精品白丝av| 亚洲人成在线播放网站岛国| 亚洲第一黄色网| 黄色亚洲免费| 亚洲日韩成人| 亚洲尤物影院| 久久亚洲欧洲| av成人天堂| 亚洲国产另类精品专区| 好看的日韩av电影| 国内成人精品2018免费看 | 欧美日韩国产成人在线观看| 亚洲欧美日韩国产成人精品影院| 亚洲人午夜精品| 亚洲娇小video精品| 久久在精品线影院精品国产| 亚洲专区欧美专区| 9l视频自拍蝌蚪9l视频成人| 最新亚洲视频| 国产乱码精品一区二区三| 欧美视频一区| 99精品国产99久久久久久福利| 亚洲一区中文| 欧美激情精品久久久久久黑人| 亚洲啪啪91| 亚洲伦理中文字幕| 久久久久国产精品一区| 免费在线欧美视频| 亚洲天堂av图片| 老司机精品视频网站| 欧美福利在线观看| 中日韩美女免费视频网站在线观看| 亚洲最新在线视频| 一区二区三区四区国产精品| 亚洲一级影院| 亚洲一区二区三区四区五区午夜| 久久综合久久久| 亚洲国产成人在线| 欧美福利电影网| 欧美色综合网| 麻豆精品在线视频| 欧美高清不卡| 久久精品一本久久99精品| 午夜在线观看免费一区| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 亚洲欧美日产图| 国产午夜精品理论片a级大结局| 久久久xxx| 欧美日韩国产美女| 久久免费的精品国产v∧| 久久久久久**毛片大全| 另类成人小视频在线| 久久精品国产亚洲a| 欧美日韩中文字幕在线| 亚洲第一精品电影| 在线日韩日本国产亚洲| 亚洲欧美日韩人成在线播放| 9国产精品视频| 欧美成人一区在线| 久久米奇亚洲| 国产伦精品一区二区三区免费迷| 亚洲色图在线视频| 亚洲国产精品电影在线观看| 久久久久久久久久久久久9999| 久久九九国产精品| 国内久久精品| 久热精品视频在线| 久久影视精品| 亚洲欧洲偷拍精品| 男人的天堂亚洲| 在线日本欧美| 欧美午夜剧场| 欧美一区二区三区的| 欧美专区在线| 99精品国产高清一区二区| 欧美gay视频| 亚洲图片在线| 久久综合福利| 亚洲视频日本| 亚洲第一免费播放区| 欧美美女视频| 久久久精品性| 中文在线一区| 亚洲国产99| 久久久久久国产精品一区| 狠狠色伊人亚洲综合成人| 欧美国产91| 久久久之久亚州精品露出| 一本色道综合亚洲| 亚洲国产第一页| 久久精品导航| 亚洲一区二区av电影| 亚洲激情六月丁香| 狠狠入ady亚洲精品经典电影| 欧美另类变人与禽xxxxx| 欧美在线免费视频| 在线综合视频| 亚洲欧美精品中文字幕在线| 亚洲国产精品一区二区三区| 久久亚洲精品视频| 欧美成人在线网站| 久久精品一区蜜桃臀影院| 亚洲自拍三区| 久久精品国产视频| 免费在线观看日韩欧美| 久久综合一区| 欧美电影免费观看网站| 蜜桃伊人久久| 亚洲国产高清自拍| 红桃视频国产一区| 99在线精品观看| 99国产精品99久久久久久粉嫩| 亚洲精品色图| 亚洲欧美一区二区在线观看| 欧美日韩国产色综合一二三四| 蜜桃av一区二区| 国产精品区二区三区日本 | 一区免费在线| 在线一区观看|