線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1947
推到 Plurk!
推到 Facebook!

[請教] Multi-tier 架構上的問題

缺席
FlyEagle
一般會員


發表:3
回覆:1
積分:0
註冊:2003-02-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-10 15:10:01 IP:61.222.xxx.xxx 未訂閱
目前正打算寫ocx給VB程式呼叫,ocx功能有:VB傳sql,ocx回傳recordset。 VB傳sql異動資料及透過ocx至AP svr 執行stored procedure/function 系統架構如附圖所示: ocx(多個)-> dispatch svr(兩台main,backup,COM+) ocx(多個)-> ap svr(數台,COM+)-> DB(數個,oracle)    系統流程簡單說明如下: VB呼叫ocx --> ocx 透過ini file資訊以socketconnetion連結 main dispatch svr(見附圖),main dispatch svr會根據所記錄各後端AP svr的連線數, 找出最少者的連結AP Svr資訊(ip/host,port, server name)回傳給ocx,ocx再藉以連結後端AP server。 ocx連上Ap svr時會呼叫main dispatch svr將目前所連上ap server的計數加一,斷線時減一, main dispatch svr 藉以掌握後端AP svr的連線數(模擬 load balance)。 若main dispatch svr掛掉,ocx會從ini找出連dispatch svr第二順位,連至backup dispatch svr,接下來同上所述連上後端Ap server。 若main/backup dispatch svr皆掛掉,ocx會從ini讀出後端AP svr資訊(以亂數決定連哪一台),直接連後端AP svr 我的問題: 1.有需求:連不同資料庫需有不同timeout。在scktsrvr.exe不同的port分別設定其timeout, ocx再以不同port連AP server,不知這樣可好,有沒什麼缺點? 2.如何界定AP server已掛掉還是處在busy狀態 (結果都是連不上),因為掛掉與busy其後續處理程序有所不同(例如,掛掉需有程式reset COM+應用程式),所以須能判斷其差異。 3.如果main dispatch svr掛掉,所有ocx應該改連backup dispatch svr,後端AP svr計數加減一也需改連backup dispatch svr計數之。 請問如何讓所有ocx同時改連至backup dispatch svr? 我是有想過把active的dispatch svr 記錄在資料庫,ocx連過來時檢查所連dispatch svr 是否為active,若非則丟出一個例外讓ocx去接, ocx再改連另一台,但這樣做,每次ocx連dispatch svr都要額外讀取資料庫,因為程式正式上線時dispatch svr連線數會相當大, 額外存取資料庫我怕會造成效能上的問題。 請問main與backup dispatch svr其掌握的後端AP svr連線數資料如何保持一致?以便當backup dispatch svr開始服務時能有正確數據決定哪台 後端AP svr loading最輕 若以另外一支程式定時(例如每10秒)連至目前active的dispatch svr讀取資料再連至非active 的dispatch svr並寫入剛剛從active的dispatch svr讀入的資料。 這樣的作法好嗎。諸位先進能否提供您們寶貴的想法與看法呢?  4.如果要做到load balance及fail over各位是否能否能提供您寶貴意見供我作改善及實作上的參考?  以上希望諸位先進能不吝賜教,感謝大家的幫忙。
系統時間:2024-04-20 8:12:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!