亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

DCOM的心跳

系統 1859 0

保持 DCOM 的心跳

?

文檔版本

版本

創建時間

創建人

備注

1.0.0114.1

2003-1-14

鄭昀

第一稿

?

?

?

?

編寫目的:

??? 本文檔將說明 DCOM 的心跳給編程上的影響

概述

我們的程序員前不久遇到過這樣的一個奇怪的現象:

服務器端創建出一個 ServerA 的實例,好幾個分布式的客戶端持有這個實例的引用,類似于 ConnectionPoint 的方式。客戶端負責向服務器端的實例發送電話撥入、按鍵、掛機等消息,服務器端負責處理這些消息。但是在生產環境中,每隔一段時間,服務器端調用持有的 客戶端 實例引用時,得到一個 COM 錯誤 0x80010108 ,意思是說被調用的對象已與其客戶端斷開連接。這時客戶端卻可以調用服務器端的實例,這時候的網絡通信質量也很好。實在是看不出來會是什么原因導致這種調用模式周期性出錯。程序員報告這個時間大約是 7 分鐘。

COM+的心跳

排除了代碼錯誤的可能性后,聯想到 COM+ 的一個特性:保持心跳。 COM+ 為了實現 JIT( 即時激活 ) ,必須每隔一段時間讓 COM+ 組件的實例和調用方之間保持一個心跳,告訴調用方,我還活著。以前沒有想過它為什么要定期發送一次消息,通知對方自己健在呢?也許這是一種規則,如果不這么做的話,一定會有大麻煩。

那么是 DCOM 協議的制約了?

我們從新聞組中得到了一個模糊的說明:

After 6 minutes of non usage, the server considers the client disconnected
and drops the connection. This is a fixed timeout for DCOM that cannot be
changed.

Okay ,看樣子我們的方向是正確的。確實存在一個約定的時間間隔: 6 分鐘。我們試圖描述我們得到的第一個概念: 6 分鐘內,服務器端沒有得到來自于客戶端的消息,就默認客戶端已經消失,于是斷開連接。所以我們這之后的再次調用,就會得到 0x80010108 COM 錯誤。

更多信息

Question:

我的 Server 如何判斷 Client 是否在運行中?

Background:

DCOM 設計時就預先要考慮能處理任何形式的 Server Client 或者 Network 崩潰的組合。所以 DCOM 決定在 Client Server 之間保持一個背景“ ping ”。如果 Client 的連接丟失, NT 將在 6 分鐘之內檢測到。這時,服務器故意模擬 Client 的正常斷開情形,將 Client Server 請求的所有接口的引用計數統統釋放。

Resolution:

正因為如此,編寫 Server 的程序員不必要太過于擔心 Client 的意外崩潰。 NT 將會從根本上保證 Client 正常斷開并釋放所有引用的接口。

?

6分鐘是如何計算出來的呢?

當一個 Connection 被請求建立之后, DCOM 將在三次不成功的 ping 之后,認定本次連接超時。由于這些 ping 每隔 2 分鐘發送一次,所以 6 分鐘就是這么計算出來的。

總結:

u ????? Pinging 是一種檢測客戶端是否異常終止的著名手段

u ????? 一般在服務器端的設計中,每一個輸出的對象都有一個 pingPeriodTime 參數,和一個 numPingsToTimeout 參數

u ????? 如果 pingPeriod 時間過去,而并未接收到來自于 Client ping ,所有對接口的遠程引用計數,將被認為失效,從而可以被垃圾回收器收回。

前面說的0x80010108問題解決辦法就是每隔半分鐘就給服務器發送一個無害的消息,保證connection不被斷掉。

?

本文檔所包含的信息代表了在發布之日, ZhengYun 對所討論問題的當前看法, Zhengyun 不保證所給信息在發布之日以后的準確性。

本文檔僅供參考。對本文檔中的信息, Zhengyun 不做任何明示或默示的保證。

Written by zhengyun@tomosoft.com



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12707


DCOM的心跳


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 四虎精品福利视频精品 | 久re这里只有精品最新地址 | 高清在线一区二区三区亚洲综合 | 色妞色综合久久夜夜 | 亚洲一区二区三区影院 | 日韩一区二区三区不卡 | 日韩精品中文字幕一区三区 | 久久久精品视频在线观看 | 日韩中文字幕精品免费一区 | 成人91| 久青草中文字幕精品视频 | 欧美一级成人毛片视频 | 我想看一级黄色毛片 | 久久久久免费视频 | 久久国产香蕉视频 | 欧美影院久久 | 四虎永久在线精品国产馆v视影院 | 国产二三区| 欧美成人一区二免费视频 | 一级一片免费播放 | 国产精品欧美在线 | 好爽毛片一区二区三区四区 | 日本一级淫片a的一级欧美 日本一级淫片a免费播放 | 国产精品久久一区一区 | 国产农村妇女毛片精品久久 | 特级黄色 | 四虎影院永久网址 | 激情综合五月网 | 97xxxx| 久久国产精品-久久精品 | 欧美日韩91| 一级片在线免费看 | 国内久久久久影院精品 | a毛片在线观看 | 欧美成人鲁丝片在线观看 | 国产亚洲精品激情一区二区三区 | 国产大尺度福利视频在线 | 一区二区三区不卡在线 | 极品美女一级毛片 | 日本精品久久久一区二区三区 | 亚洲综合精品一二三区在线 |