/// <summary> /// /// </summary> /// <returns> /// returns a hashtable containing 2 keys. /// 1. expire-items /// 2. resync-items /// against these 2, associated cache keys are returned. /// </returns> internal IDictionary GetExpiredKeys() { ClusteredArrayList sqlKeyList = _sqlConPool.GetExpiredKeys(); sqlKeyList.AddRange(_oledbConPool.GetExpiredKeys()); if (sqlKeyList != null && sqlKeyList.Count > 0) { HashVector cacheKeyList = new HashVector(); ClusteredArrayList expire = new ClusteredArrayList(); ClusteredArrayList resync = new ClusteredArrayList(); IEnumerator ie = sqlKeyList.GetEnumerator(); lock (_dbKeysMappingTbl.SyncRoot) { while (ie.MoveNext()) { if (_dbKeysMappingTbl.Contains(ie.Current)) { DependencyInformation depInfo = _dbKeysMappingTbl[ie.Current] as DependencyInformation; if (depInfo != null) { if (depInfo.Hint.NeedsReSync) { resync.Add(depInfo.CacheKey); } else { expire.Add(depInfo.CacheKey); } } } } cacheKeyList["expire-items"] = expire; cacheKeyList["resync-items"] = resync; return(cacheKeyList); } } return(new HashVector()); }