freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

第七篇aspnet完全入門高級應用(參考版)

2024-09-09 15:50本頁面
  

【正文】 例子: 設置消息隊列對象的 UseJournalQueue 屬性,以記錄收到的消息到日志隊列中 =True 設置消息對象的 UseJournalQueue 屬性,以記錄收到的消息到系統(tǒng)日志隊列中 =True 小結 通過本章的介紹,我們對 MSMQ有了一定的了解,并且對消息隊列的操作有了一定的了解。所以作為管理人員,應該定期清理日志隊列,以防止上述現(xiàn)象的發(fā)生。日志隊列的使用有兩種方式,一種是對消息隊列對象設置 UseJournalQueue 屬性,它表示對該隊列收到的所有消息使用日志記錄方式,而對于發(fā)出的消息不做任何記錄;另一種方法是對消息對象設置UseJournalQueue 屬性,所有被發(fā)送的消息將被記錄到系統(tǒng)日志隊列中去。 在一臺機器上,都會有一個全局消息隊列,它保存任何從該機器發(fā)出的消息,而不論消息發(fā)送是否成功。我們可以從失敗確認消息中提取出一個和開始發(fā)送的消息相關的 ID 值,然后根據(jù)提出的 ID 值從日志隊列中找到發(fā)送的消息,重新創(chuàng)建一個消息對象,并再次發(fā)送。它的好處是,一但發(fā)現(xiàn)前面的操作失敗,可以從日志隊列中重新創(chuàng)建出原先的消息對象,然后再進行操作。 None 不返回任何確認消息 最后,發(fā)送消息,并檢查管理隊列,看是否有確認消息產生。 NotAcknowledgeReceive 只有發(fā)送的消息未能到達對方應用程序,才返回確認消息。 NotAcknowledgeReachQueue 只有發(fā)送的消息未能到達目的隊列,才返回確認消息。 FullReceive 無論發(fā)送消息能否到達對方應用程序,都 會返回確認消息。 Acknowledge 屬性的值可以是: 。 那么,如何設置一個消息,要求它返回確認信息呢? 首先設置一個消息對象的 AdministrationQueue 屬性,指定確認消息返回的管理隊列。 你可以把不同的確認消息發(fā)往不同的管理隊列中。確認消息也和一般的消息不一樣,它不包含消息的主體,僅僅通過消息的頭部就可以知道確認消息的意義。不過收到發(fā)送失敗的消息,未必是對方消息隊列無法到達,它有可能是在超時時間設置過小或者是無法通過對方的驗證。當消息正確到達目的隊列或應用時,它會發(fā)回發(fā)送成功的確認消息。確認消息有兩種,一種是消息隊列到達指定隊列后發(fā)出的確認消息,另一種是消息被對方應用從消息隊列中刪除。 例如: 使用 peek 方法的異步接收模式和使用 receive 方法的方式差不多,就不再多述了。當接收過程完成, . 平臺會發(fā)出一個消息,表示已經從消息隊列中接收到一個消息,然后調用第七篇 高級應用 和該消息綁定的處理函數(shù),以處理到達的消息。 在事件模型中,首先必須綁定一個消息處理函數(shù)到一個消息,它是當異步調用完成以后,你希望對它進行處理的代碼入口。 在回調處理方式中,回調函數(shù)定義了一個和 BeginPeek 或者 BeginReceive 方法綁定到一起的代理,這樣即使是在消息處理當中,代理仍然可以監(jiān)視是否有新的消息到來。 在 中,事件處理方式中,在事件處理函數(shù)中,我們使用 BeginPeek 或者是BeginReceive 方法從消息隊列中取得一條消息。一種是消息接收到以后,會發(fā)出一個事件,我們可以定義一個事件處理函數(shù),在該函數(shù)中,對接收到的消息進行處理。 例如: ?設置為超時時間為 0 =0 ?設置超時時間為無窮大 = ?以同步方式使用 Peek 方法的例子 dim MyMessageQue as New MessageQueue(“MyMachine\MyQueue”) ?指定連接的消息隊列 ?對消息隊列查詢首條消息,若無 1 秒鐘后超時返回 dim MyMessage as Message MyMessage=(1000) 異步接收方式 ,是指接收消息時,不必理會調用的消息接收方法是否成功,方法將立即返回,并繼續(xù)進行程序處 理。同樣的, Peek也可以指定超時時間(單位毫秒),一般最常用的方式是設為 0或無窮大。Peek 方法只取出消息隊列中的第一條消息,若要取得所有的消 息可以使用 GetMessages 方法或者是 GetMessagesEnumrator 方法。如果,在調用receive 方法以前使用了 DenyShareReceive 屬性拒絕其他用戶的對該隊列的 Receive 方法,就會避免上述現(xiàn)象的發(fā)生。在使用 Receive 方式時,還可以指定消息隊列的 DenyShareReceive 屬性,防止其他用戶對隊列進行操作。如果調用 receive方法的時候,消息隊列中沒有一條記錄存在,那么方法將導致程序掛起,直到有消息到達消息隊列中。 同步方式 ,我們使用 receive 方法。 4. 同樣使用 send 方法把消息對象發(fā)送至相應的隊列中。 2. 創(chuàng)建一個消息對象實例。對于復雜對象的發(fā)送,我們是通過創(chuàng)建消息的對象的實例,然后對它的屬性實行相應設置來實現(xiàn)的。 例子:以發(fā)送一個整型數(shù)和字符串為例 首先創(chuàng)建一個連接: Dim MessageQueue1 as new MessageQueue (MyMachine\MyQueue) 第七篇 高級應用 或者 Dim MessageQueue1 as New MessageQueue =”MyMachine\MyQueue”) 由于是標準數(shù)據(jù)類型,消息格式可以不指定,使用缺省的 然后發(fā)送數(shù)值1 (1) 再發(fā)送字符串“ hello world” (Hello world) 。 。但是,在 MSMQ 中消息的大小不能夠超過4MB。消息的主體可以由文本、二進制構成,根據(jù)需要還可以被加密。 UseJournalQueue 屬性 : :設置是否將收到的消息拷貝到日志消息隊列中去。一旦接收的消息到達這個容量,新的消息將不再被接收。 CanRead 和 CanWrite 屬性 :決定隊列是否可以被讀取或者是寫入。 跟發(fā)送數(shù)據(jù)類型相關的屬性 Formatter屬 性 :決定在一個隊列中如何發(fā)送和接收消息的順序,以及可以在一個消息中發(fā)送什么樣的內容。該 GUID值可以有 GUID 生成工具產生或者是用戶自定義的數(shù)字值。 使用的例子如下: =MyMachine\MyQueue () 5.創(chuàng)建消息隊列對象的實例 創(chuàng)建一個消息隊列實例的步驟如下: 1. 創(chuàng)建一個 MessageQueue 類的實例 例如: dim MyQue as New MessageQueue 第七篇 高級應用 2. 對 MessageQueue 類實例的 path 屬性進行設置 例如: =”.\MyQueue” 3.設置你需要其他 MessageQueue 類的屬性 6.消息隊列配置屬性 關于隊列的屬性 : path 屬性 :它可以決定引用隊列的三種方式,路徑引用、格式名引用、標識引用 category屬性 :標識當前使用的隊列的類型。 使用 Delete 方法的例子如下: (“MyMachine\MyQueue”) 4.清除消息隊列中的內容 有時我們需要把送入消息隊列中而尚未發(fā)出的消息清除,或者定期需對消息發(fā)送日志隊列進行清除,可 以使用消息隊列對象提供的 Purge 方法。當刪除一個隊列時,隊列中含有的所有消息將首先被刪除,然后刪除該隊列,它不會把消息隊列中的信息發(fā)往死信隊列中。 然后,根據(jù)引用消息隊列的方式設置不同的屬性。標識可以由訪問消息隊列對象的 Label屬性得到。采用標識的好處在于屏蔽了低層的具體位置,對于移植和程序修改時,應用的修改很小。 可以由消息隊列對象的 FormatName 屬性得到格式名。 。 。 。JOURNAL 或者 PRIVATE=MachineGUID\QueueNumber。 路徑引用的例子: =”.\MyQueue” 采用格式名( format name)方式引用隊列 格式名由公有私有標識串加上隊列產生的 GUID,以及其他必需的標識構成。消息隊列未連接時,只能使用格式名方式對它發(fā)送消息。因為消息隊列服務器接收到一個使用路徑方式使用消息隊列的操作請求時,會去解析出路徑和格式名( format name) ,因此它的效率上不如格式名方式使用隊列。 它可能并不唯一。 。 。 Net 中有 3 種訪問指定消息隊列的方法: 。創(chuàng)建私有消息隊列 (“MyMachine\Private$\MyPrivateQueue”) 說明:標識 Private$表示創(chuàng)建的是私有消息隊列 2. 隊列引用說明 System Messaging essageEnumerator Message (etc…) MessageEnumerator MessageQueue 第七篇 高級應用 當你創(chuàng)建了一個 MessageQueue 部件的一個實例以后,就應指明和哪個隊列進行通信。 消息隊列的操作 1. 創(chuàng)建消息隊列 。 。使用 Peek 或者是 BeginPeek 方法查看消息隊列中的消息,而不會刪除它們 。 。 。 1) 同步方式 dim Msg as Message dim Fmt As XmlMessageFormatter Fmt= CType(,XmlMessageFormatter) = new String(){} Msg=(New TimeSpan(0,0,3)) 首先定義收到消息應轉換成的格式,然后在指定時間內去接收消息 2) 異步方式 dim Fmt As XmlMessageFormatter ‘定義接收消息類型 Fmt = CType(,XmlMessageFormatter) = new String(){} ‘定義消息處理函數(shù)入口 AddHandler , 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 = () ?此時 即為所取消息對象 () ‘ 重新定義異步接收方式 第七篇 高級應用 End sub ‘ 啟動異步接收方式 消息隊列的命名空間體系結構 如圖所示: 消息隊列常用操作 : 。 2. 消息的發(fā)送 dim MsgQue as MessageQueue (Msg) 其中: Msg為任一對象。在能夠使用 MSMQ功能之前,你必須確定你的機器上安裝了 MSMQ 消息隊列組件,并確保服務正在運行中。 在 .NET產品中,提供了一個 MSMQ類庫“ ” 。當信息傳送過程中,信息發(fā)送機制具有一定功能的故障恢復能力; MSMQ 的消息傳遞機制使得消息通信的雙方具有不同的物理平臺成為可能。另一方面,采用消息傳遞機制,發(fā)送方必要再擔心接收
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1