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

請問在三層式架構中, APP Server 有連線數目的限制嗎?

答題得分者是:william
q_angus
一般會員


發表:1
回覆:3
積分:0
註冊:2008-05-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-05-29 17:26:42 IP:61.218.xxx.xxx 訂閱
小弟參考 Delphi 6 徹底研究(陳燦煌著)書中的範例, 使用 Delphi 7.0 Enterprise 寫了一個三層式架構的程式。其中 App server 在 Remote Data Module 的設定是: Multiple Instance, Treading Model 是 Apartment.。在程式裡並利用 RemoteDataModuleCreate 及 RemoteDataModuleDestroy 的事件來記錄目前的前端 Client 的連線數目。這支 App Server 只有在 Client 端執行時, 才會被啟動執行。
一般而言, 前端 Client 連上 App Server 都很正常, 但是當第十個 Client 連線時(也就是目前已有九個連線), 這第十個 Client 就無法連線上去, 甚至會導致執行 App Server 的那台電腦好像當掉的感覺, 必須將 App Server 的 Process Kill 掉之後, 那台電腦才能正常運作。這個狀況似乎屢試不爽, 不論是哪個 Client, 只要它不湊巧排第十個, 就無法連上線。Client 端除了程式本身之外, 就只有將 MIDAS.DLL 放在 C:\Windows\System32 目錄下。
請教版上的各位前輩高手: 是否小弟有哪個參數沒設定正確, 才導致 App Server 無法同時連線十人? 還是說有沒有方法可以突破這個限制?
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-29 21:03:14 IP:61.222.xxx.xxx 訂閱
跟 APP SERVER 無關
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-05-30 08:47:49 IP:147.8.xxx.xxx 未訂閱
因為 Windows 不是 Server 版吧

http://support.microsoft.com/kb/314882
q_angus
一般會員


發表:1
回覆:3
積分:0
註冊:2008-05-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-05-30 08:57:10 IP:61.218.xxx.xxx 訂閱
小弟的 App Server 的確是 run 在 Server 上, 是 Win2K Server.
一直令我困擾的就是: 為何 1~9 個 Client 端連上線都沒問題可以正常運作, 可是偏偏第十個以後就有問題, 實在詭異
不曉的各位前輩還有沒有其他的想法? 感激不盡~
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-05-30 15:14:43 IP:61.222.xxx.xxx 訂閱
Midas 並無連線限制。
查一下是否為資料庫連線限制或為 Windows 限制
q_angus
一般會員


發表:1
回覆:3
積分:0
註冊:2008-05-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-06-02 09:22:07 IP:61.218.xxx.xxx 訂閱
procedure TProj_ApSrv1.RemoteDataModuleCreate(Sender: TObject);
begin
// 增加一位前端的上線者(呼叫 MainForm 上的程序)
MainForm.UpdateClientCount(1);
end;
procedure TMainForm.UpdateClientCount(Incr: Integer);
begin
FClientCount := FClientCount Incr;
lblClientCount.Caption := IntToStr(FClientCount);
end;
上面這兩段程式是我的 App Server 中關於顯示連線數目的程式碼。我在版上爬文時, 發現有網友提問: 計算上線人數的問題, 他的程式 Client 端 connect 時, App Server在執行 因為展現部分並沒有做到的關係最簡單的方式是省略掉這一行的事件去處理例如放個去更新)
由於這位網友的寫法和我幾乎一樣, 差別是我能連上九位使用者, 於是我也 Mark 掉lblClientCount.Caption := IntToStr(FClientCount) 改使用 Timer 來更新人數。果然, 去除掉這一行, 就能連線超過十人, 真是太感謝有這個版面讓大家能意見交流! 也謝謝大家的回覆, 感恩啊~
系統時間:2024-11-21 19:26:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!