Genel Özel Durumlar (Windows Server AppFabric Önbelleğe Alma)

Önbellek istemcisi yöntem çağrısı sırasında bir hata oluştuğunda, önbellek istemcisi DataCacheException sınıfının bir örneğini oluşturur. ErrorCode özelliği hata türünü içerir.

Her önbellek istemcisi API'sinin yaygın olan birkaç hatadan biriyle karşılaşma olasılığı vardır:

Uygulama kodunuz bu hataların oluşma beklentisiyle tasarlanmalıdır. Aşağıdaki bilgilerde, her bir hatayla ilgili olarak durumları uygun şekilde ele almanıza yardımcı olacak ek ayrıntılar sağlanmıştır.

Timeout

Zaman aşımı oluştuğunda, Timeout hata kodu ile DataCacheException nesnesi oluşturulur. Zaman aşımı, önbellek istemcisinin yapılandırılan zamanaşımı ayarları dahilinde sunucudan bir yanıt almadığını gösterir. Bu duruma, istemci ve sunucu arasındaki ağ sorunları gibi çeşitli sorunlar neden olmuş olabilir.

Zaman aşımı hatası oluşsa bile sunucunun istenen işlemi başarıyla işlemiş olabileceğini unutmayın. Örneğin, requestTimeout değeri 10000 milisaniyeye ayarlanmış önbellek istemcisi olan bir uygulama düşünün. Uygulama, yeni önbellek öğesi eklemek için Ekleme API'sine çağrı yapar. Bu çağrı on saniyeden uzun sürerse, uygulama zaman aşımı hatası alır. Ancak, sunucu ekleme işlemini tamamlamış ve ondan sonra zaman aşımı süresi geçmeden istemciye yanıt verememiş olabilir. Hata işleyicisinde, uygulamanın bu olasılığı dikkate alması gerekir. Hata işleyicisi sadece nesneyi yeniden eklemeyi denerse, bu durum KeyAlreadyExists hata koduyla başka bir özel duruma yol açabilir.

Uygulama tasarımı gereksinimlerine bağlı olarak, önbellek istemcisi zaman aşımı sürelerini uzatabilir veya kısaltabilirsiniz. Zaman aşımı süresini yapılandırma hakkında daha fazla bilgi için bkz. Önbellek İstemcisi Zaman Aşımlarını Yapılandırma (Windows Server AppFabric Önbelleğe Alma).

RetryLater

RetryLater hata kodu önbellek kümesinin geçici olarak isteği yerine getiremediğini gösterir. Örneğin, önbellek kümesi yönetici tarafından yapılandırılıyorsa bu hatayla karşılaşılabilir.

Bu tür bir hatada, DataCacheException nesnesinin SubStatus özelliğine ait değerin gözlenmesi önemlidir. Bu özellik, hatanın nedenini açıklayan ek bilgiler sağlar. Örneğin, önbellek kümesi durdurulursa, oluşturulan DataCacheException nesnesinin ErrorCode özelliği RetryLater değerine ve SubStatus özelliği CacheServerUnavailable değerine ayarlı olur. İstekle ilişkilendirilen Windows Hesabı'na önbellek kümesinde izin verilmediyse veya önbellek konaklarındaki güvenlik duvarı düzgün yapılandırılmadıysa, aynı SubStatus değeri görülür.

Hedef sunuculardan birinde veya birden fazlasında yeterli miktarda kullanılabilir bellek olmadığında RetryLater hata kodu da oluşabilir. Bu durumda, SubStatus özelliği Throttled olarak ayarlanır. Kısıtlanan önbellek sunucusuna neden olabilecek birkaç etmen vardır.

  • get-cacheconfig Windows Powershell komutuyla önbellek ayarlarını denetleyin. EvictionType değeri, LRU yerine None olarak ayarlanan önbelleklere bakın. Çıkarma devre dışı bırakılırsa, önbellek kümesi sunucunun belleği azaldığında önbelleğe alınan öğeleri çıkaramaz.

  • Önbellek sunucularında kullanılabilir belleği kullanıyor olabilecek diğer işlemlere bakmak için Windows Görev Yöneticisi'ni veya Performans İzleyicisi'ni kullanın.

  • Uygulamanın önbellek kullanımını inceleyin. Eklenen nesnelerin ortalama hız, boyut ve zaman aşımı değerlerinin tümü önbellek kümesinde gereken toplam bellek miktarını etkiler.

  • Özel bölgeleri kullanmayı deneyin. Bölge tek bir önbellek sunucusunda bulunduğundan, bölgedeki öğeler tüm önbellek konaklarına yayılamaz. Tek bir önbellek sunucusunda bir veya daha fazla büyük bölge bulunuyorsa, bu sunucu, diğer önbellek sunucularında kullanılabilir bellek olsa bile kısıtlanmış durumda olabilir.

ConnectionTerminated

ConnectionTerminated hata kodu önbellek istemcisi ile önbellek kümesi arasındaki bağlantının durdurulduğunu gösterir. Ağ hataları veya önbellek sunucularının kapatılması dahil bu hatanın çeşitli olası nedenleri vardır. Zaman aşımı hatalarında olduğu gibi ConnectionTerminated hatası istenen işlemin başarılı veya başarısız olduğunu yansıtmaz. Hata işleyicisinin her iki olasılığı da dikkate alması gerekir.

Ayrıca bkz.

Kavramlar

Özel Durum İşlemeye Genel Bakış (Windows Server AppFabric Önbelleğe Alma)

  2011-12-05