全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:7501
推到 Plurk!
推到 Facebook!
[<<] [1] [2] [>>]

client端應用程式全部當在那....急

尚未結案
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-24 15:45:06 IP:61.219.xxx.xxx 未訂閱
我是用dephi5開發三層式的架構... 現在發現有十台client端連同一個ap server在建檔時會突然的當在那... 查不出原因....但其他台連另一個ap server 的郤還能運作... 這是什麼原因哩..... 十台client的資料集都是有where operat='操作者'... 所以應該不會資料被lock住吧... 請大大們能幫幫忙...
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-24 17:42:42 IP:203.204.xxx.xxx 未訂閱
引言: 我是用dephi5開發三層式的架構... 現在發現有十台client端連同一個ap server在建檔時會突然的當在那... 查不出原因....但其他台連另一個ap server 的郤還能運作... 這是什麼原因哩..... 十台client的資料集都是有where operat='操作者'... 所以應該不會資料被lock住吧... 請大大們能幫幫忙...
當在那...是指十台Client全部,還是被連的那台AppServer,如果是AppServer且用BDE連的話,那可能是BDE沒有設好、或程式有問題。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-24 18:43:06 IP:61.219.xxx.xxx 未訂閱
我是使用ado去連資料庫的 當在那..十台Client全部都的畫面都當住了.. 但ap還可動,因為我為了測試..有放二個連結資料庫及斷線的button
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-24 19:34:33 IP:203.204.xxx.xxx 未訂閱
引言: 我是使用ado去連資料庫的 當在那..十台Client全部都的畫面都當住了.. 但ap還可動,因為我為了測試..有放二個連結資料庫及斷線的button
都是執行同一功能嗎?一定是十台嗎?用程式Debug會嗎?如果固定產生那就好查,如果不是就很難查了,確定同一步驟會造成,用Debug方式找找看是哪裡的問題。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-25 09:08:16 IP:61.219.xxx.xxx 未訂閱
都是執行同一功能嗎?一定是十台嗎?用程式Debug會嗎?如果固定產生那就好查,如果不是就很難查了,確定同一步驟會造成,用Debug方式找找看是哪裡的問題。 之前是'建檔'和'稽核建檔'作業時,當機的次數較多,因為都是使用同一個table, 當稽核建檔作業一打開時,client就全部當在那了. 所以我就讓稽核建檔作業連一個唯讀的ado元件(lock type設成ltUnspecified), 只有要修改時連到另一個可以修改的ado元件(lock type設成ltPessimistic,其他是clUseClient,ctKeyset,ltPessimistic),建檔也是連這個可寫入的ado元件 目前檔機的次數是比較少了,但還是會...>< 且我在client的連結同一table的clientDataset的onReconcileError有攔錯誤訊息, 可是都沒有錯誤出來.... 昨天我在appserver該元件的datasetProvider的OnUpdateError加上show錯誤的事件 在當機時就有攔到錯誤....錯誤訊息是-2147217873,key值建入重複, 但依他們建檔的方式,(看單據的流水號) 應該是不會有新增同一單號的問題出現啊....真的很奇怪.... 現在一天要建檔的量有一二萬件,若當機的問題一直沒解決..會害他們無法如其交件... 誰能幫幫忙哩....><
speedup
資深會員


發表:19
回覆:259
積分:280
註冊:2003-07-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-25 13:32:57 IP:61.224.xxx.xxx 未訂閱
你應該用RemoteDataModule,3,4年沒用過了,給些建議你試試 1.由於RemoteDataModule是依附在某一隻程式之下,但必須注意主程式與RemoteDataModule是不同的Thread,因此若主Form程式碼或RemoteDataModule內的程式碼相互存取對方變數是極度危險,除非你有撰寫Thread Safe 的控制碼,不然不要把一大堆公用的東西放在主Form 2.記的把TADOConnection的 KeepConection 設成False 3.放棄用RemoteDataModule巴!改用TransactionDataModule(d5應該叫MTSDataModule),除了第一次啟用會稍慢,後續校率及承受的Client數都比較多,且OS也提供管理工具...總之.....好處多多 混心雜欲 棄修身~唉
------
唉~
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-25 16:19:14 IP:203.204.xxx.xxx 未訂閱
引言: 之前是'建檔'和'稽核建檔'作業時,當機的次數較多,因為都是使用同一個table, 當稽核建檔作業一打開時,client就全部當在那了. 所以我就讓稽核建檔作業連一個唯讀的ado元件(lock type設成ltUnspecified), 只有要修改時連到另一個可以修改的ado元件(lock type設成ltPessimistic,其他是clUseClient,ctKeyset,ltPessimistic),建檔也是連這個可寫入的ado元件 目前檔機的次數是比較少了,但還是會...>< 且我在client的連結同一table的clientDataset的onReconcileError有攔錯誤訊息, 可是都沒有錯誤出來.... 昨天我在appserver該元件的datasetProvider的OnUpdateError加上show錯誤的事件 在當機時就有攔到錯誤....錯誤訊息是-2147217873,key值建入重複, 但依他們建檔的方式,(看單據的流水號) 應該是不會有新增同一單號的問題出現啊....真的很奇怪.... 現在一天要建檔的量有一二萬件,若當機的問題一直沒解決..會害他們無法如其交件... 誰能幫幫忙哩....><
如果當機的情形是前端程式整個停掉沒有回應,且是用SocketConnection連Server且沒有用壓縮中介元件的話,就是SocketConnection的Bug,我們也曾遇過,加上壓縮中介元件後就沒有問題了。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-25 16:24:52 IP:61.221.xxx.xxx 未訂閱
speedup兄你好 我是用RemoteDataModule,原本是用apartmant創建的,但現在聽jieshu大大改 用free的方式,好像有改善當機的情況(目前還在觀查中)... 而我的主Form程式碼和RemoteDataModule只有共用上線人數一個變數而己,應該還好.... 我想請問一下TADOConnection的 KeepConection 設成False的差別是在那.... 和client端畫面突然當在那不能運作有關嗎.... TransactionDataModule....嗯我從沒用過,書上好像也沒說.... 是新版的書上才有寫嗎...或範例嗎..... ps....小妹真的很感謝各位大大的幫忙....
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-11-25 17:31:33 IP:61.221.xxx.xxx 未訂閱
用free執行序模式還是會當耶...而且都會建檔的資料都沒存入資料庫入 如圖 結果關掉後重新執行appserver後建檔的資料都不見了.... 是因為我的adoconnect用非同步模式造成的嗎 好想改回client/server 哦
speedup
資深會員


發表:19
回覆:259
積分:280
註冊:2003-07-04

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-11-25 19:10:40 IP:61.224.xxx.xxx 未訂閱
引言: speedup兄你好 我是用RemoteDataModule,原本是用apartmant創建的,但現在聽jieshu大大改 用free的方式,好像有改善當機的情況(目前還在觀查中)... 而我的主Form程式碼和RemoteDataModule只有共用上線人數一個變數而己,應該還好.... 我想請問一下TADOConnection的 KeepConection 設成False的差別是在那.... 和client端畫面突然當在那不能運作有關嗎.... TransactionDataModule....嗯我從沒用過,書上好像也沒說.... 是新版的書上才有寫嗎...或範例嗎..... ps....小妹真的很感謝各位大大的幫忙....
1.在COM 和ADO 模式中將keepConnection 設成 False 可達到Database Pooling效果,再不濟也可有效降低Database連線數,不過對你的模式是否有效就不知了 2.TransactionDataModule Delphi6才有,就是用來作COM ,Delphi5 應該叫MTS DataModule 3.印象中Delphi5 好像有兩個Update Service Pack 其中一個的Scktsrvr.exe反而會造成不穩,妳下載最新版Scktsrvr.exe 和 MIDAS.dll 試試,不過切記vup 新版Scktsrvr.exe一定要搭配新版 MIDAS.dll,不然D5 compile 出來可能不能run 4.妳是否用有狀態的寫法(ClientDataSet的PacketRecords<> -1),請改無狀態寫法,避免資料庫連線一直被佔用 混心雜欲 棄修身~唉
------
唉~
wuabc
初階會員


發表:6
回覆:60
積分:33
註冊:2002-10-28

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-11-26 01:15:19 IP:203.204.xxx.xxx 未訂閱
引言: .. 關掉後重新執行appserver後建檔的資料都不見了.... 是因為我的adoconnect用非同步模式造成的嗎 好想改回client/server 哦
有查過系統資源嗎(可用記憶體)? 有無可能是系統資源耗盡導致APServer無資源可用? 將AP Server與DB Server分開不同機器或許可以得到改善 P.S. Asynchronous connection應不會是好的選擇(雖然我不懂ADO)
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-11-26 09:00:10 IP:61.219.xxx.xxx 未訂閱
有查過系統資源嗎(可用記憶體)? 有無可能是系統資源耗盡導致APServer無資源可用? 將AP Server與DB Server分開不同機器或許可以得到改善 P.S. Asynchronous connection應不會是好的選擇(雖然我不懂ADO) 系統資源都還沒什麼用到,只是網路好像一直在傳輸中.... Asynchronous connection真的不是好的選擇...因為我覺得資料沒寫進去.. 就是因為使用非同步的關係..因為前幾天都不會這樣..,改了之後就變成這樣了.(被使用者恨死了,害他們要重打...) 但還沒試用在free執行緒模式下建立的apserver用同步的會不會當或當了資料能否寫入資料庫.....
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-11-26 09:09:20 IP:61.219.xxx.xxx 未訂閱
1.在COM 和ADO 模式中將keepConnection 設成 False 可達到Database Pooling效果,再不濟也可有效降低Database連線數,不過對你的模式是否有效就不知了 ==>因改了之後一直當,我就先把它改回來了.....(現在還不知是不是因為這參數才當的啦) 2.TransactionDataModule Delphi6才有,就是用來作COM ,Delphi5 應該叫MTS DataModule ==>因我們公司是買D5的,若現在改用MTS DataModule,怕不熟,客戶又趕著上線,有點風險.... 3.印象中Delphi5 好像有兩個Update Service Pack 其中一個的Scktsrvr.exe反而會造成不穩,妳下載最新版Scktsrvr.exe 和 MIDAS.dll 試試,不過切記vup 新版Scktsrvr.exe一定要搭配新版 MIDAS.dll,不然D5 compile 出來可能不能run ==>要去那捉,版主大大昨天是有給我D7的FIX BETA版的Scktsrvr.exe ,雖沒MIDAS.dll 還是可以RUN....(為什麼覺得用DELPHI寫三層很不穩哩...><) 4.妳是否用有狀態的寫法(ClientDataSet的PacketRecords<> -1),請改無狀態寫法,避免資料庫連線一直被佔用 ==>沒有哩,我是用APPLYUPDATE(0) 混心雜欲 棄修身~唉
speedup
資深會員


發表:19
回覆:259
積分:280
註冊:2003-07-04

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-11-26 11:32:24 IP:61.224.xxx.xxx 未訂閱
引言: 但依他們建檔的方式,(看單據的流水號) 應該是不會有新增同一單號的問題出現啊....真的很奇怪.... 現在一天要建檔的量有一二萬件,若當機的問題一直沒解決..會害他們無法如其交件...
一天一二萬筆,原始檔案不就好幾十萬筆? 如果真的要面對這麼大筆的資料,妳在MIDAS架構勢必要撰寫些程式碼來處理,以增加效率,如妳的狀況所言,若大部分的Client目的是在建立新資料,那妳的寫法因該是client啟用時,只單純取表格結構下來,讓使用者自行決定要下那些查詢參數來輸入調閱資料的範圍 另外,若妳的DataSetProvider.ResolveToDataSet若設定成Ture(建議設法),你 在BeforeApplyUpdates事件中依據前端傳來的Delta資料來下適當的SQL語法開啟AP端的ADODataSet,而不是每次都select * from XXXTable,不然的話,每次異動Ap端都重新selet all,那SQL成本將十分高昂 (PS BeforeApplyUpdates事件無法直接取得Delta參數,所以必需在Client端就把Delta包進OwnerData,另外建議的作法是直接Override InternalApplyUpdates方法,直接動手腳) 最後!若妳的系統有用到Master/Detail且master資料量很大,那很不幸的是MIDAS原始架構在這一方面效率很差,必須作大幅度改良.... 總之,盡量讓Cliet端取必要的資料即可,而不是一次就取得全部資料 混心雜欲 棄修身~唉
------
唉~
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-11-26 16:41:44 IP:61.219.xxx.xxx 未訂閱
若大部分的Client目的是在建立新資料,那妳的寫法因該是client啟用時,只單純取表格結構下來,讓使用者自行決定要下那些查詢參數來輸入調閱資料的範圍 ===>大部分的Client目的是在建立新資料沒錯, 但該使用者能修改他所建檔的資料,只要他還沒做資料匯出就能修改... 所以我目前下的sql是有加入where,建檔人員,及當時未匯出的建檔批號 (一批若為二萬件,則要整批上傳)...所以一個建檔人員可能會select出 2~3千筆 或許我是可以改用介面,不要用dbgrid,show出全部的資料,只show出單號或都不要有dbgrid,要改資料時再請使用者用查詢帶出該筆資料(使操作介面會變不方便了...)
johnny2212
初階會員


發表:34
回覆:65
積分:39
註冊:2003-04-09

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-11-27 13:41:47 IP:61.226.xxx.xxx 未訂閱
這是我個人以下的建議 1. 關掉有問題的AP,以別台來取代,若是不會發生Client當機的話,那可能就是你的硬體或OS又或是註冊碼(registry)出現問題 2. 若是當機的問題還是發生,那肯定是程式出現錯誤.你說發生在建檔的時候,以下是我個人的寫法à不要用ClientDataSet1.Insert,直接ClientDataSet1.Execute填入key值(要確實填入資料庫),在用ClientDataSet1.Edit修改它;若是取消,在用Execute將此筆殺掉,最後寫入用ClientDataSet1.ApplyUpdates雖然麻煩些,如此可保證key值決不重複(ReconcileError若出現太多,不是件好事,我個人盡量不讓它出現) 3. 最可能的部分是發生在界面程式(viewàtype library),雖然是safecall,不會raise error,但若是你的介面程式錯的太厲害,還是會使AP掛掉,解決方法是你將SourceCode Compile後直接讓Client端使用(不要只Copy執行檔),如此raiseerror 就會產生, 到時在判斷哪裡錯了
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-11-27 17:10:14 IP:61.219.xxx.xxx 未訂閱
謝謝你們大家.... 因案子很急,無法再讓使用者一直測用會當機的版本 上面命令改成client/server的版本..... 雖然昨晚己經改了介面讓使用者讀取最少量的資料.... 但...也沒經過上線測試就被要求改成client/server.... 反正我只是小小的程式設計師啦.....就這樣... 謝謝大家的幫忙.....雖然當機的真像還沒查出來.... 我現在要忙著改版上線了.....改了也好... 有問題也不再是我一個人的責任了,不用自己一個人查的要死... 一直被人問,壓力也是很大的..雖然程式是我寫的,我也覺得很對不起使用者咩 但當初也是大家同意說要走三層咩......算啦,改就改啦... 不好意思,發洩一下而己啦,我只是不喜歡做白工而己... 不過,為了使用者好.....我想還是改成client/server好了.... 至少我也學到不好..... 在此,我給把分數給版主大大....因為前幾天他被煩了很久了...sorry
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#18 引用回覆 回覆 發表時間:2003-11-27 17:21:01 IP:61.222.xxx.xxx 未訂閱
很遺憾是這樣的結局, 不過,小弟還是對於你們在研發系統的過程很有興趣了解. 不光是技術面這個層次,而是user <-> programmer <-> boss 這之間的交互作用關係,有機會也可以多交流... 這之間相關的故事可是精采多了...
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#19 引用回覆 回覆 發表時間:2003-11-27 18:42:30 IP:61.219.xxx.xxx 未訂閱
johnny2212 兄你好.....我的情況是.... 1. 關掉有問題的AP,以別台來取代,若是不會發生Client當機的話,那可能就是你的硬體或OS又或是註冊碼(registry)出現問題 ====>關掉有問題的ap後,開新的(同一台主機上),在client端上先按資料庫斷線, 再按離線...還是沒有反應....且..socket server上的連線數目還是十個人... 2. 若是當機的問題還是發生,那肯定是程式出現錯誤.你說發生在建檔的時候,以下是我個人的寫法à不要用ClientDataSet1.Insert,直接ClientDataSet1.Execute填入key值(要確實填入資料庫),在用ClientDataSet1.Edit修改它;若是取消,在用Execute將此筆殺掉,最後寫入用ClientDataSet1.ApplyUpdates雖然麻煩些,如此可保證key值決不重複(ReconcileError若出現太多,不是件好事,我個人盡量不讓它出現) ===>昨天細讀李維的ado那本,有寫到ado在三層上的應用有bug,尤其是在做異動時....他也有建議用Execute sql的方式去做異動比較好,我也有朋友也這樣說, 但實際上的效用...可能要等機會了(也許是我再接別的案子或換一家公司工作吧).... 3. 最可能的部分是發生在界面程式(viewàtype library),雖然是safecall,不會raise error,但若是你的介面程式錯的太厲害,還是會使AP掛掉,解決方法是你將SourceCode Compile後直接讓Client端使用(不要只Copy執行檔),如此raiseerror 就會產生, 到時在判斷哪裡錯了 ===>有時上ap server 上攔到很多的錯(快百),但都不太會當....,但有時是一個錯都沒有就當了....,SourceCode Compile和copy執行檔有差嗎....
Jungle
一般會員


發表:5
回覆:18
積分:9
註冊:2002-03-18

發送簡訊給我
#20 引用回覆 回覆 發表時間:2003-11-28 11:04:51 IP:202.3.xxx.xxx 未訂閱
其實主從架構及多層架構各有利弊, 那我們要如何善用主從架構及多層架構的優點呢, 以下是敝人小小的分析及看法, 希望對您未來的系統開發方向有所幫助.    1.從效率來看, 主從架構比較好, 而多層架構中間多一道手續, 就會多一些時間, 而且多層架構 APServer 的心臟不夠強的話, 粉容易掛點.    2.從開發角度來看, 也是主從架構好, 畢竟主從架構已發展多年, 至今是大家較熟悉的模式了. 開發時間大大的縮短, 成本也較少.    3.從技術來看, 也是主從架構簡單. 比較不會有一大堆技術協定之類的東東.    4.從系統發展性來看, 就是多層架構比較好, 可強迫你把系統物件化, 將來在維護上及系統擴充時, 可花較少成本達到最大效益.    5.從分散系統來看, 也是多層架構好, 把相同的商業邏輯寫在一個元件(COM+)上或WebService上(建議WebService及COM+共用,既不會在防火牆上打洞, 又可兼顧資料庫效率), 可讓ERP系統或Web上的電子商務呼叫同一商業邏輯服務, 畢竟現在已經邁入軟體服務時代了.    既然主從架構及多層架構各有利弊, 那我們要如何開發一套穩定佳, 效率快, 開發事半功倍的系統呢?????    A.首先把系統分開為 User介面開發及商業邏輯開發.    B.User介面就是使用者只輸入資料而已, 即然只是收集資料用, 所以就用主從架構囉. 即快速又不會有一些奇奇怪怪的技術要避來避去的. 可讓 user 快速地輸入大量的資料.    C.商業邏輯部份, 寫在COM+上(不過處理大量資料時, 李維老師建議: 寫在StoredProcedure上), 使用者操作系統時, 會用的商業邏輯的時間較少, 不像資料收集那樣負擔真的很大.    D.User介面一般程式師就可寫了, 而且可專注在使用者操作方便性上.    E.商業邏輯就要由資深工程師來寫, 不只要熟悉分層架構技術, 也要瞭解商業行為的各種規則.    以上給您參考, 希望對您有幫助.
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#21 引用回覆 回覆 發表時間:2003-11-28 14:01:48 IP:61.219.xxx.xxx 未訂閱
我己經單機模擬出客戶端ap當機的狀況了... 我使用同一個操作者帳號開三個client, 並使同程式讓他一直新增資料(網路流量一直有) 當我再開第四個client或第五個client時,要登入系統時... 全部都當在那了...(網路流量沒有了....表dbserver的資料只有新增到當機前) 最後只好吧ap關掉,client只要按離線再連線,新的ap就開起來了.... 我覺得是我的ap無法負荷大量的資料處理....ap server就當了,沒有服務了.. 有辦法改善嗎...或是控制他的處理量快不行時,show訊息或做排程之類的
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#22 引用回覆 回覆 發表時間:2003-11-28 14:04:24 IP:61.222.xxx.xxx 未訂閱
這麼說來,有可能不是資料庫的問題,而是作業系統的I/O滿載乎?
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#23 引用回覆 回覆 發表時間:2003-11-28 14:43:47 IP:61.219.xxx.xxx 未訂閱
這麼說來,有可能不是資料庫的問題,而是作業系統的I/O滿載乎? ..........耶,因為我是用我自己的電腦測的,但當的狀況和客戶的很像... 所以除了db在另一台電腦..... ap及client都是在我自己的電腦上run的啦.... 而ap我是用delphi執行的...有出現這個錯訊息啦... 在站上我看到一篇文章.... http://delphi.ktop.com.tw/topic.php?topic_id=20901 不知是ap的問題,還是db異動太多 lock住了, 所以才有像前幾篇的sql工具圖檔一樣...一堆資在那沒做處理...
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#24 引用回覆 回覆 發表時間:2003-11-28 15:28:07 IP:203.204.xxx.xxx 未訂閱
引言: 不知是ap的問題,還是db異動太多 lock住了, 所以才有像前幾篇的sql工具圖檔一樣...一堆資在那沒做處理...
那建議你批次存,而不要每筆存,這樣就不會產生太多異動,可在存檔時先將資料在Client存一份(用ClientDataSet.SaveToFile,避免連線中斷資料流失),等整批在存有問題時,再顯示有問題的原因,請其修正後再存,且可在輸入資料時就做資料的檢核,以免儲存時由資料庫發出,造成資料庫的負擔。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#25 引用回覆 回覆 發表時間:2003-11-28 15:55:51 IP:61.219.xxx.xxx 未訂閱
嗯.... 我現在愈來愈覺得是他們建檔的速度太快.... 資料庫來不及處理.... 因為之前也用連SQL Query Analyzer工具也動不了的情況哩, 或是我同事用SQL Query Analyzer下sql,就發生當機事件哩.. 但也好奇怪,都只是新增資料而以咩..且MSSQL真的效率那麼差哦... 我之前都用ORACLE的,但第一次遇到要那麼快速建檔的案子.... 改成批次存也行啦,但用ClientDataSet.SaveToFile,是指先存成檔案, 但資料到一定的量就批次存(如設定一批100筆),若斷線時,可從先前的檔案回存到資料庫...您的意思是這樣嗎..... 若外我覺得奇怪的是.若真的是資料庫的問題.. 那用CLIENT/SERVER怎麼不會有問題哩.... 客戶他們RUN了一天CLIENT/SERVER版的...都沒問題哩..怪怪的
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#26 引用回覆 回覆 發表時間:2003-11-28 16:27:38 IP:61.222.xxx.xxx 未訂閱
有可能是你的客戶使用相當多的人力在同一項輸入作業上,    你的ap在建立連線後是否有立即釋放呢?    這個案例很有教育性質喔,似乎不太可能client-server可以而n-tier不行唷...    不然當初borland研發midas不就....自打嘴巴...    想想,也是有可能喔... 何不情商李維李大師也來
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#27 引用回覆 回覆 發表時間:2003-11-28 16:52:30 IP:61.219.xxx.xxx 未訂閱
有可能是你的客戶使用相當多的人力在同一項輸入作業上, ==>沒錯,是專門做建檔...一次約10~15人 你的ap在建立連線後是否有立即釋放呢? ==>我試過keepConnection 設成 False 但這樣會更慢, 因為命令執行完成斷線...不太適合在這個案件吧,
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#28 引用回覆 回覆 發表時間:2003-11-28 17:59:10 IP:203.204.xxx.xxx 未訂閱
引言: 改成批次存也行啦,但用ClientDataSet.SaveToFile,是指先存成檔案, 但資料到一定的量就批次存(如設定一批100筆),若斷線時,可從先前的檔案回存到資料庫...您的意思是這樣嗎.....
批次存是User所Key的資料先不送到Server存,等User想存時,按下儲存鍵,才真的送到Server存,這樣才不會一直下命令要AppServer將資料存入資料庫,造成效率差,雖然在存檔時要等一下,但這也可讓他們稍息一下。 可在按下儲存鍵時,順便在User電腦存一份這次輸入的,是預防連線斷掉無法存檔時,還有救回的機會。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#29 引用回覆 回覆 發表時間:2003-11-28 18:00:42 IP:61.219.xxx.xxx 未訂閱
不好意思...我又來了... 我剛剛想到...若client/server可以做... 那若我在創建ap時instancing使用single(就是一個client會起來一個ap服務他) 然後測試用二個client程式快速寫檔(用程式寫存檔)...就不會有error了... 我想...若給使用者用,應該不會當了吧.. 但這樣的方式和client/server有什麼差別咩....感覺怪怪的
cosuki
一般會員


發表:10
回覆:40
積分:10
註冊:2003-06-05

發送簡訊給我
#30 引用回覆 回覆 發表時間:2004-03-21 20:56:50 IP:61.56.xxx.xxx 未訂閱
我發現原因了... 應該是因為我想讓appserver能在runtime時使用ado的conn的設計期屬性 去改連結字串,所以把adoconn放在form上 原本想說反正多個cliet多個所以instance多個但連結ADO CONN只會有一個SESSION 沒有差別... 但我改放回RDM時就不會再當了哩....經個一二個月上線都正常囉... 上來報告一下...都是小妹自己的錯啦....CC
sfour
一般會員


發表:5
回覆:5
積分:2
註冊:2003-05-21

發送簡訊給我
#31 引用回覆 回覆 發表時間:2004-03-31 11:28:46 IP:61.222.xxx.xxx 未訂閱
您好: 我是利用D6寫Com 元件,但是我的元件會Lock住一直轉,最後Client端就會出現傳輸時間過長的畫面. 1.利用TransactionDataModule建立元件 2.利用ADO連結Oracle,ADOConnection元件在beforeConnect前才讀取ini檔組合Connectionstring. 3.應用於WEB上.
[<<] [1] [2] [>>]
系統時間:2024-04-19 22:41:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!