DB Cache 使用與活用
如何裝入獨家數據並添加新數據
壟斷加載方法爲 Proud.CDbCacheClient2.RequestExclusiveLoadData 。 您需要在參數 fieldName 和 cmpValue 中輸入查找條件以查找要加載的數據 。
使用示例 。
Proud.CDbCacheClient2.RequestExclusiveLoadNewData方法同樣是專有裝入函數, 但在將數據添加到 RootTable 後立即寫入 。
使用示例 。
單方面更改數據
Proud.CDbCacheClient2.UnilateralAddData
Proud.CDbCacheClient2.UnilateralUpdateData
Proud.CDbCacheClient2.UnilateralRemoveData
這些方法在DB cache存儲器中反映變更,之後在DBMS上以異步實際記錄,呼叫後立即返回。 此外,沒有回覆方法。
使用DBMS中首先反映的請求應答型方法和blocked方法
首先反映在DBMS上的請求響應方法和Blocked方法的使用是更改請求響應數據的方法。 呼叫後立即返回,變更只有在實際DBMS上完成記錄後,才能在DB cache的內存中反映出來。
如果您想要blocked 調用, 而不是請求響應類型, 請使用這些方法 。
Proud.CDbCacheClient2.BlockedAddData
Proud.CDbCacheClient2.BlockedUpdateData
Proud.CDbCacheClient2.BlockedRemoveData
請求響應式 SessionGuid
獨佔Client各有一個Session,DB Cache Client爲了區分各Session,使用Guid值。 請求時,通過Output參數獲取SessionGuid值,並獲取響應Event的 CCallbackArgs::m_sessionGuid獲取值。 保存outSessionGuid後進行比較,可以確認請求的session。
請求
回應
請求中的 outSessionGuid 等於回應中的 args.m_sessionGuid。
存取非專有數據方法
Proud.CDbCacheServer2StartParameter.m_allowNonExclusiveAccess 必須設定為允許非獨佔存取。
非壟斷性數據變更成功後,該數據變更將申報給曾壟斷加載的DB cache client。 爲了申報,以下方法將回電。
Proud.IDbCacheClientDelegate2.OnSomeoneAddData
Proud.IDbCacheClientDelegate2.OnSomeoneRemoveData
Proud.IDbCacheClientDelegate2.OnSomeoneModifyValue
Proud.IDbCacheClientDelegate2.OnSomeoneSetValue
爲了便於查看,將各請求和回應關係捆綁起來如下。
Proud.CDbCacheClient2.RequestNonExclusiveSnapshotData : 獲取 Snapshot
Proud.CDbCacheClient2.RequestNonExclusiveAddData : 添加數據
Proud.CDbCacheClient2.RequestNonExclusiveRemoveData : 刪除數據
Proud.CDbCacheClient2.RequestNonExclusiveModifyValue : 對數據進行特定的運算。(+, -, *, /)
Proud.CDbCacheClient2.RequestNonExclusiveSetValueIf : 請求比較並保存兩個值。
使用DB cache時的注意事項
單方向型和請求響應型(獨家數據請求響應型&Block型&非壟斷數據訪問)混用時的注意事項。
如果請求響應方法在使用期間使用單向方法,Proud.IDbCacheClientDelegate2.OnAccessError 將被回饋。
在未收到對更改後的 Data 的響應的情況下使用單向方法可能會導致錯誤的數據進入 。
活用
Last updated