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

請問哪位大大知道圖中的DBServer 是怎麼解的???

 
deemster
一般會員


發表:4
回覆:15
積分:3
註冊:2005-01-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-07-14 09:52:04 IP:61.218.xxx.xxx 訂閱

As Title

小弟想知道他裡面的多執行緒要怎麼控制...

有哪位大大能幫小弟解答呢??或者可以提供類似的SourceCode給小弟參考??

附加檔案:DBServerPIC.bmp
suda
一般會員


發表:17
回覆:63
積分:16
註冊:2002-05-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-07-14 13:05:31 IP:61.221.xxx.xxx 未訂閱
請問這是什麼應用程式,可以說明一下嗎
deemster
一般會員


發表:4
回覆:15
積分:3
註冊:2005-01-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-07-14 18:40:30 IP:220.132.xxx.xxx 訂閱
它是一個 AP Server ( For N-Tier )
suda
一般會員


發表:17
回覆:63
積分:16
註冊:2002-05-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-07-16 08:12:46 IP:59.126.xxx.xxx 未訂閱

麻煩請多提供該App Server的運作說明或資訊,因為不清楚APPSERVER
的Session是指DB的Session還是RemoteDataModule的Session,
如果是RemoteDataModule的Session,那就要改寫TRemoteDataModule中的
IAppserver 介面相關Function,使其中的資訊可以預先提出處理,如果有更多的
該Appserver的相關資訊那就比較好分析,例如產品名,相關運作方式等等.

suda
一般會員


發表:17
回覆:63
積分:16
註冊:2002-05-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-07-16 08:12:53 IP:59.126.xxx.xxx 未訂閱

麻煩請多提供該App Server的運作說明或資訊,因為不清楚APPSERVER
的Session是指DB的Session還是RemoteDataModule的Session,
如果是RemoteDataModule的Session,那就要改寫TRemoteDataModule中的
IAppserver 介面相關Function,使其中的資訊可以預先提出處理,如果有更多的
該Appserver的相關資訊那就比較好分析,例如產品名,相關運作方式等等.

suda
一般會員


發表:17
回覆:63
積分:16
註冊:2002-05-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-07-16 08:13:05 IP:59.126.xxx.xxx 未訂閱

麻煩請多提供該App Server的運作說明或資訊,因為不清楚APPSERVER
的Session是指DB的Session還是RemoteDataModule的Session,
如果是RemoteDataModule的Session,那就要改寫TRemoteDataModule中的
IAppserver 介面相關Function,使其中的資訊可以預先提出處理,如果有更多的
該Appserver的相關資訊那就比較好分析,例如產品名,相關運作方式等等.

suda
一般會員


發表:17
回覆:63
積分:16
註冊:2002-05-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2006-07-16 08:13:31 IP:59.126.xxx.xxx 未訂閱
麻煩請多提供該App Server的運作說明或資訊,因為不清楚APPSERVER
的Session是指DB的Session還是RemoteDataModule的Session,
如果是RemoteDataModule的Session,那就要改寫TRemoteDataModule中的
IAppserver 介面相關Function,使其中的資訊可以預先提出處理,如果有更多的
該Appserver的相關資訊那就比較好分析,例如產品名,相關運作方式等等.
suda
一般會員


發表:17
回覆:63
積分:16
註冊:2002-05-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2006-07-16 08:16:08 IP:59.126.xxx.xxx 未訂閱
Sorry,回覆的功能好像有點問題,我看沒回應多按了幾下,結果就存了一堆
deemster
一般會員


發表:4
回覆:15
積分:3
註冊:2005-01-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2006-07-16 18:53:20 IP:220.132.xxx.xxx 訂閱

^^那我順便說一下它的用途好了

它是一隻N-Tier的AP Server, 它可以經由它的ini檔, 設定連接到不同的Oracel Server

它也可以同時間裡,接收不同Client端發送出來的Quest,每一個Sesson獨立作業,不會互相影響
一但某個Oracle Server的Sesson的數量不足,它會在多開幾個Sesson來滿足Client的Quest

僅管某個Sesson Crash掉,也不會影響其它Sesson

每一個Client端送出來的SQL,它也會另外儲存在Log記錄中

======================================================================

重點是,我沒有它的Source Code,不能知道他是怎麼設計的, 所以我想請教有哪位大大設計過類似的東西?

deemster
一般會員


發表:4
回覆:15
積分:3
註冊:2005-01-24

發送簡訊給我
#10 引用回覆 回覆 發表時間:2006-07-16 18:55:42 IP:220.132.xxx.xxx 訂閱

不好意思!!多補充一下

它並非外面市售的AP_Server , 它是某高科技公司的經理設計的吧??

因為無法與對方接觸,就算有,大概也沒辦法問到些什麼.....

不過可以確定的是,它是用Delphi 開發的

suda
一般會員


發表:17
回覆:63
積分:16
註冊:2002-05-10

發送簡訊給我
#11 引用回覆 回覆 發表時間:2006-07-16 20:40:31 IP:59.126.xxx.xxx 未訂閱

那這樣看起來像是DBConnection Pooling的功能,以ADO來說可以做一個ADO Connection Proxy,來轉接所有query的需求再動態配置ADO Connection,就可以達到目的,delphi有一個 MIDAS pooler 的範例,可以用它來改成你需要的功能,當然實作上還要考慮很多地方,可以的話多po一些程式的畫面或他的功能明細,不然一直猜功能很累,(我不是柯南哦) 另一方式是從RemoteDataModule 收到query時就動態分配Connection,這樣是比較簡單的作法

deemster
一般會員


發表:4
回覆:15
積分:3
註冊:2005-01-24

發送簡訊給我
#12 引用回覆 回覆 發表時間:2006-07-17 08:50:53 IP:61.218.xxx.xxx 訂閱

說真的,我也是很想提供更詳細的資料

不過它的主要畫面就是那張圖,剩下的分頁畫面,不外乎是系統的sql記錄,超過Query Timeout 的sql記錄
,或者是版權宣告等等

至於它的執行緒狀態,可以分為Init , idle , execsql , except 等等
init 是該程式啟動時,會根據 AP的INI設定檔,會直接跟Oracle資料庫連線,每一台Oracle設定幾個,就開幾個Sesson
Idle就不用解釋了吧?連線完成後的閒致狀態
execsql 為執行query狀態!! except 為例外狀態,包括Oracle連線不到啦.....反正就是掛掉的狀態

當Sesson掛掉之後,如果某個Oracle的Sesson不夠,它會主動再多開幾個Sesson來應用!!

================================================================================

想請教大大,您所提的那兩種方法,是否可以在哪找到相關的資訊或SourceCode可以供研究??

deemster
一般會員


發表:4
回覆:15
積分:3
註冊:2005-01-24

發送簡訊給我
#13 引用回覆 回覆 發表時間:2006-07-17 08:54:36 IP:61.218.xxx.xxx 訂閱

另一方式是從RemoteDataModule 收到query時就動態分配Connection,這樣是比較簡單的作法
==================================================================
再補充一個,我比較好奇上面這個是要怎麼做的??

另外努力想辦法取得那個SourceCode

suda
一般會員


發表:17
回覆:63
積分:16
註冊:2002-05-10

發送簡訊給我
#14 引用回覆 回覆 發表時間:2006-07-17 10:57:55 IP:61.221.xxx.xxx 未訂閱

===================引 用 文 章===================

另一方式是從RemoteDataModule 收到query時就動態分配Connection,這樣是比較簡單的作法
==================================================================
再補充一個,我比較好奇上面這個是要怎麼做的??

另外努力想辦法取得那個SourceCode


如果他的商業規則都是寫在Client端,而RemoteDataModule只是用來執行SQL code,那麼在RemoteDataModule處理就ok了,你只要 Override RemoteDataModule的IAppser ,攔截執行命令,繞到自己的Connection Pooler指行就ok了
Connection Pooler可以參考Delphi7\Demos\Midas\Pooler 的範例,

Client<->RemoteDataModule<->ConnectionPooler<->DBconnection

然而,商業規則若是寫在Appserver上就要用比較複雜的方式改寫 DBConnection ,這是較具擴充性的作法


系統時間:2024-04-20 15:03:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!