Kafadan cevapla başlayayım yazıya: Çok!
Bilenler bilirler, bizim Gayet.Net, Resin üzerinde koşar. Açıldığı günden beri. Arka planda da Postgresql database kullanır.
IBM’den kapasitemizi artırmak için, hem donanım, hem de yazılım satın aldık.
Donanım geçişi büyük oranda tamamlandı. Yazılım için de birinci adım, Resin’den Websphere’a geçmek olarak planlandı.
Ancaak… Gel gelelim, öyle acayip problemlerle karşılaştık ki, olacak iş değil. Nelerle uğraştığımı şimdi yazmak istiyorum, çünkü en nihayetinde dün gece uygulamayı WebSphere üzerinde koşturmayı başardık. Tarihe 30 Ağustos 2007 zaferi olarak yazabiliriz bunu.
Çıkan acayip problemler:
- Gayet.Net’te kredi kartı bilgileri, şifreli olarak saklanır. İlk problem burada çıktı.
Sorun: Kredi kartı bilgileri okunamıyor… Acayip bir yerde acayip bir exception sallıyor.
Çözüm: Sonunda anlaşıldı ki, encryption algoritması, ismiyle bulunuyor. İsim de büyük harften küçük harfe çevriliyor. Burada, ismin içinde I geçiyor. Biz de Türk olduğumuz için, “default” karakter setini Türkçeye çevirmişiz. Adam ismi alıp küçük harfe çeviriyor… Büyük I, oluyor küçük ı. Java’daki bir bug tabii bu… Koddan default karakter seti değiştiren şeyleri kaldırdık. - Kredi kartı işlemleri için Garanti Bankası ile çalışıyoruz…
Sorun: Garanti Bankası’na bağlanmıyor bölüm 1…
Çözüm: Soket bağlantısı kuramıyor. Garanti Bankası’nın zamanında bize verdiği JPay denen Java library’si, aslında içinde yapılmaması gereken her türlü maymunluğun yapıldığı iğrenç bir kod parçasıymış. Çöpe attım onu. Yazdım yenisini standartlara uygun olarak. Oldu. - Garanti Bankası derdi, bölüm ikiii.
Sorun: Bağlanıyor, ama Garanti Bankası’na güvenmiyorum diyor…
Çözüm: Bu sefer akıllı bir şey söyledi. Bir kaç saatte derdini anladık. Garanti Bankası’nın sertifikasını yükleyince WebSphere’a, sorun çözüldü. - Resim upload edilen yerlerde, Türkçe karakter arızası…
Sorun: Resim de geliyorsa, (multipart upload) Türkçe karakterde arıza çıkıyor.
Çözüm: Resin’de Resin’e bırakmıştık multipart handle etme işini. WebSphere aynı imkanları sağlamıyor. Onun için Apache Commons library’si kattık, standart oldu. Yalnız, beraber gelen form field’ları decode ederken karakter seti vermeyi unutmuşuz. Verdik. Oldu. - Netscaler, bize SSL offload imkanı sağlıyor, kullandık.
Sorun: WebSphere bunun secure bağlantı olduğunu anlamıyor..
Çözüm: Bir yerinde bir ayar varmış, şöyle bir header gelirse anla secure olduğunu diye. Bulduk, yaptık, oldu. - Jgroups kullanıyoruz, server’lar arası haberleşme için…
Sorun: Çalışmıyor şerrefsiz WebSphere üzerinde.
Çözüm: JVM’e preferIpV4Stack demek gerekirmiş. Yoksa IPv6’ya bind etmeyi deneyip gümlermiş WebSphere üzerinde. Yaptık, oldu. - Signup sayfamız var, siteye üye olmak için.
Sorun: Çalışmıyor. Çalışmayı bırak, WebSphere crash ediyor. %100 CPU yer hale gelip, sinir katsayısı yükseltiyor.
Çözüm: Dört gün uğraştım bununla. Sonunda anlaşıldı ki, eğer bir spring:bind tag’i birden fazla kullanılırsa, o compilation bitmiyor. Sebebi meçhul. Her seferinde crash ettirdiği için, en ufak şeyi denemek 15 dakika sürdü. Hiçbir debug metodu aleti de işe yaramadı… Sonunda JSP dosyasını kesip biçip sonuca ulaştım… - Ajax kullanıyoruz ya sitede…
Sorun: Ajax ile request yaparken, yazının içinde Türkçe karakter varsa, bum.
Çözüm: Efendim, Ajax request’in içinde gönderdiğimiz şeyleri, Javascript’in escape() fonskiyonunu kullanarak escape’liyoruz… Resin de bu lisandan, POST request geldiğinde anlıyor. WebSphere anlamıyor. İçinde %uXXXX tipinde karakterler olunca, kızıyor… Sonuçta oturdum yarım saatte Java tarafında Javascript’in escape() fonksiyonunun tersini yazdım. İşi WebSphere’a bırakmadım. Çalıştı, başka şansı kalmadığından. - Sitenin belli yerlerini password ile koruyorduk…
Sorun: WebSphere’da kolay yolu yok!
Çözüm: Yok gerçekten. Yani, şu URL’lere girmek için şu password lazım demek için, yaklaşık 40,000 dereden su getirme ihtiyacı var. Security’i enable edince server’lar birbirleriyle konuşamaz oldu falan. En sonunda, password ile koruma meselesini uygulama tarafında çözdüm. WebSphere ile 3 saat tepiştik, sonra bu işi bir saatte hallettim. Bildiğin yol en iyi yoldur!
İşte, basit olması gereken bir mesele, bu kadar komplikasyon çıkardı. Anlatsan, bu kadar anlatılır. Canıma okudu. Bittiğine seviniyorum.
Bir cevap yazın