GZip kontrol sorunu
0

Bu konuda 6 mesaj var

Selamlar,

 

Valla tıkandım kaldım, balatayı sıyırmak üzereyim.

 

Threaded bir fonksiyonum var. Fonksiyon veritabanından bilgiyi GZip formatında okuyor, açıp XML dosyayı alıp normal ZIP formatında tekrar sıkıştırıp işine devam ediyor. Fakat GZip formatında olmayan, direk XML string dizi de gelebilir, buna da aynı ZIP muamelesi yapması gerekiyor. Bunun için bir kontrol kodu yazmıştım zamanında, bu kod her yerde düzgün çalışıyor. Sadece ve sadece bir yerde servis modunda program saçmalıyor, arayüz tarafında ise sorun yok ama threaded değil arayüzü tarafı, aradaki tek fark bu. Servis ise arada bir tekrarlıyor bu durumu her zaman yapmıyor, bu da ilginç bir nokta...

return arr.Length >= 2 && arr[0] == 31 && arr[1] == 139;

Burası arada bir başarısız oluyor, true dönmesi gerektiği halde false dönüyor. Nereden biliyorum? Çünkü ZIP formatındaki dosyanın içeriğinde XML dosyası olması gerektiği halde GZip formatlı dosya girmiş oluyor. Bunun olabilmesi için yukarıdaki testin başarısız olması gerekiyor. Donanımdan kaynaklı olabilir diye arayüzde 1000 kere tekrar ettirdim aynı sunucuda başarısız olan kaydı, sorun çıkmadı ama arayüzdeki test threaded değildi. Veritabanına yazılan tüm kayıtlar Gzip olarak yazılıyor ve her kayıt 31 ve 139 ile başlıyor, yani veri tutarsızlığı yok. Length testi başarısız oluyor diyeceğim gene ucu donanıma dokunuyor. Adamlara da sunucuyu atın denmiyor tabii.

 

Neyi gözden kaçırıyorum anlayamadım bir türlü :(. Veritabanı güncellemesi gerektiği için servis tarafını güncelleyip log tutup duruma bakamıyorum şu anda. Sunucu Xeon işlemcili, Windows 2003 ya da 2008 tam hatırlayamadım şimdi. Kod C#, .Net 4.5 framework ile yazılıyor.

 

Var mı fikri olan?

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş

Thread'ler birbirini etkiliyor olabilir mi? "lock" statement kullanıp, return ettiğin boolean ifadesini bu şekilde set edip ve geriye bu değeri döndürmeyi denesen? 

 

Olmadıysa, log koymadan tespit etmen çok zor.

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş

Arayüzde threadler oluşturup denemem lazım ama yukarıdaki kontrol fonksiyonu (sadece o satırdan ibaret, bildirimi koymadım) tamamen izole ve güvenli. Asıl korkum log koyunca hiçbir şey elde edememek :). Bir de buradan çok daha yoğun çalışan yerler de sorun yok, burası günde bir işlem yapıyor küt başarısız :(, işlemi tekrar tetikletiyoruz elle hop başarılı zzzzzzzzzzz

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş

Güncellemeden sonra yeni eklenen bir fonksiyon çalışmayınca emin oldum. İkinci sunucuda eski sürüm başka bir servis çalışıyormuş. Halbuki defalarca sormuştum. Kaydı önce hangisi yakalarsa o öpüyor, eski sürüm yakalarsa gzipi işlemiyor tabii.

 

Kimseye güvenmeyeceksin, kendin bakacaksın da ben bunlara bakarken kim kod geliştirecek :(. Aylardır süründürüyorlar müşteriyi sırf bu sebepten.

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş

Yorum yazmak için üye olun veya giriş yapın

Yorum yazmak için üye olmanız lazım

Üye ol

Üye olun ve sitemizin tüm avantajlarından yararlanın!


Yeni bir hesap oluştur

Giriş yap

Zaten üyemiz misin? O halde giriş yap


Hemen giriş yap
0

  • Bu sayfadaki üyeler   0 üye

    Şu an bu sayfayı görüntüleyen bir üye yok