| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		chioucy
 
 
  註冊時間: 2004-05-26 文章: 33
 
  第 1 樓
  | 
		
			
				 發表於: 星期一 二月 06, 2006 4:40 pm    文章主題: 交易異動處理 仍有 資料遺失 之問題 | 
				     | 
			 
			
				
  | 
			 
			
				各位先進 
 
一個問題 請教各位
 
我是用 VFP 6.0 撰寫系統的
 
交易的異動 會使用 BEGIN TRANSACTION  及 END TRANSACTION 處理
 
照理論 來說  交易的異動應該會完整的寫入資料庫內
 
但是在當電腦發生當機時會有一個問題 產生!
 
 
比如我有一筆交易會異動到三個TABLE,使用TRANSACTION 處理,
 
但是在END TRANSACTION 後其實它更新的只是記憶統中資料庫的資料,尚未真正寫入硬碟內,這時如果電腦發生不明原因的當機或其他問題,使用者強迫關機後,可能發生三個TABLE只有一個TABLE資料有異動到,其他二個TABLE來不及寫入硬碟,這時候就會產生資料不一致的嚴重問題!!!
 
 
不知各位先進有何方法可以妥善解決此一問題? 還是只能乞求電腦不要當機.... | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 2 樓
  | 
		
			
				 發表於: 星期一 二月 06, 2006 4:53 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				乞求電腦不要當機.......
 
 
HELP是這樣說的.
 
 
當然你可以設計一些輔助機制來避免 _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 3 樓
  | 
		
			
				 發表於: 星期二 二月 07, 2006 12:11 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				help:
 
-------------------------------
 
儘管在正常情況下,簡單的異動交易處理能夠提供安全的資料更新動作,但是它並無法提供對系統失敗的完全保護。如果在處理 END TRANSACTION 命令期間斷電或產生其他系統插斷,則資料更新仍將失敗。 _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		chioucy
 
 
  註冊時間: 2004-05-26 文章: 33
 
  第 4 樓
  | 
		
			
				 發表於: 星期二 二月 07, 2006 8:39 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				是阿  tableupdate() 是一定要做的
 
 
但是即使於END TRANSACTION 之後發生斷電或當機 資料仍有機會造成 Table 間資料不一致啊!
 
 
我在想  在資料一致性非常重要的系統上(如金融交易系統)要如何避免呢? | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 5 樓
  | 
		
			
				 發表於: 星期二 二月 07, 2006 9:16 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				買UPS避免斷電,
 
server作業單純化避免某一程式導致系統當機,
 
系統作多phase/stage 的結帳,
 
例如a檔轉到b檔,b檔轉c檔,c檔才轉正式檔之類,然後檢查各檔有沒有遺漏之類,減少存檔遺漏,
 
或是其他方式結帳等等. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		chioucy
 
 
  註冊時間: 2004-05-26 文章: 33
 
  第 6 樓
  | 
		
			
				 發表於: 星期一 五月 22, 2006 1:25 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我最近查到二個指令 或許可以解決 END TRANSACTION  後強迫立刻把資料立刻寫回硬碟
 
 
指令如下
 
 
SET AUTOSAVE ON
 
 
FLUSH | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 7 樓
  | 
		
			
				 發表於: 星期一 五月 22, 2006 2:28 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				這樣就失去用交易的目的.
 
 
您可以想想看為什麼. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		chioucy
 
 
  註冊時間: 2004-05-26 文章: 33
 
  第 8 樓
  | 
		
			
				 發表於: 星期一 五月 22, 2006 5:17 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				SYNTECH 大大
 
 
我不太明白  如果我把 flush 指令放於END TRANSACTION 指令後面執行的話 它不是會把交易異動後的
 
tablet及index 資料表強迫寫入硬碟中嗎? (因為flush指令在foxpro中說明不多 我並不很了解其功能 請多指教) | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		kalok
 
 
  註冊時間: 2010-08-26 文章: 284
 
  第 9 樓
  | 
		
			
				 發表於: 星期四 二月 16, 2012 12:42 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				>但是即使於END TRANSACTION 之後發生斷電或當機 資料仍有機會造成 Table 間資料不一致啊! 
 
 
VFP 在斷電或當機時不能rollback, 後端資料庫是sql server的話應該OK吧 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |