Colorful Life2010

CFLOCK参考说明(中)
Weather:多云,东北风3-4级,最高气温8℃

用法
ColdFusion Server是一個多執行緒(multi-thread)的網頁應用伺服器, 在同一時間可以同時處理多個網頁請求. 使用<CFLOCK>去保證同時執行請求時不會不一致地處理分享資料的結構, 檔案, 或CFX tags.
注意下列:

  • 在建構修改分享資料的CFML周圍使用<CFLOCK>能確保修改是依序地發生, 而不是同時發生.
  • 在建構檔案操作周圍使用<CFLOCK>能保證檔案修改不會失敗, 因為檔案被其他應用程式或ColdFusion tags為了寫入而開啟.
  • 在使用CFX周圍使用<CFLOCK>能保證不以執行緒安全(thread-safe)方式執行的CFXs能被ColdFusion安全地使用. 這個通常只應用在以C++使用CFAPI開發的CFXs. 一個維持及處理分享(全域)資料結構的C++ CFX必須讓執行緒安全(thread-safe)安全地去以ColdFusion運作. 然而寫入執行緒安全C++ CFXs需要高階知識. 一個CFML自訂tag包裝器(Wrapper)能被使用在CFX周圍去讓它執行執行緒安全.

範圍
當您顯示, 設定, 或更新一個分享範圍內的變數時, 使用Scope屬性去確認這個範圍是Server, Application, 或Session.
在ColdFusion Administrator / Server Settings / Locking內, 能讓您依照範圍設定鎖定的特性. 下表顯示哪些特色適用於Server, Application, 及Session範圍.

特色(Feature) 有效性(Availability) Server Application Session
不自動檢查或鎖定   Yes Yes Yes
完全檢查   Yes Yes Yes
自動讀取鎖定   Yes Yes Yes
單一執行緒的Sessions       Yes

 您所選擇的每一項特色有另外意義:

  • 不自動檢查或鎖定 : 沒有讀取或寫入被鎖定, 或為了正確保護被檢查. 只有當已經執行過完全檢查, 並知道沒有錯誤要處理後才選擇這一項. 而所有的鎖定都是由程式計劃性處理. 這項特色提供最快的執行效能.
  • 完全檢查 : 所有的鎖定存取都被偵測. 當您在偵錯模式時選擇這一項. 這項特色會讓執行效能變慢
  • 自動讀取鎖定 : 所有的讀取都被鎖定. 未被鎖定的寫入會造成錯誤. 這項特色會讓執行效能變相當慢
  • 單一執行緒的Sessions : 這個請求必須在另一個做相同處理的Session的請求之前完成. 這項特色對執行效能可能有影響, 視請求型式而定. 例如, 如果一應用程式有多個立刻能重新顯示的網頁框架(Frames) , 如此會造成多個請求排隊等候處理, 這樣總計的反應時間可能增加

 如果您以Name屬性而不是以Scope屬性去建立一新鎖定, 而且在ColdFusion Administrator內將完全鎖定檢查設成有作用. ColdFusion會傳回一個錯誤

  • 如果已命名的鎖定是設成Application範圍, 不要對這個Application範圍指定完全檢查
  • 如果鎖定是設成Session範圍, 不要對這個Session範圍指定完全鎖定檢查
  • 如果鎖定是設成Server範圍, 不要對這個Server範圍指定完全鎖定檢查
历史上的今天: [2007/11/16]妖精和妖怪~

[CFLOCK参考说明(中)]的回复

Post a Comment~