Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
MySql & Process Monitor & UDF
#1
Delphi'de yazdığım bir DLL'i (UDF = User Defined Function) MySQL içinde kullanıyorum. Kendi sistemimde hiç bir sorun yaşamaz iken, bir başka sistemde Delphi'de yazdığım metodları MySQL içinden kullanmaya çalışır iken bir modülün bulunamadığına ilişkin hata aldım. Aklıma ilk olarak "DLL'imi mi bulamıyor acaba ?" sorusu geldi. Bu bağlamda, DLL'imin yerini kontrol ettim, olması gerektiği gibi \lib\plugin altında idi. My.ini dosyasında mı bir problem var acaba diye kontrol ettim ve hiç bir fark bulamadım. Acaba yükleyemediği , bulamadığı modül ne idi ?

Bütün iş MySQL içinde gerçekleştiği için (benim DLL'imi MySQL yüklemeye çalışıyor ve bir hata alıyordu) mysql'in EXE 'sini takibe almayı düşündüm. Bunun için sysinternals'in procmon (Process Monitor) uygulamasını kullandım. Filtre olarak ilgili EXE'yi verince, kısa bir zaman sonra hatayı gözlemledim. Hata borlandmm.dll dosyasının bulunamaması idi. Yazdığım DLL'de ShareMem unit'înin uses'da ekli olmasından kaynaklı bu DLL'e ihtiyaç var idi. Karşı sistemde de bu dll olmayınca modül bulunamadı hatası alıyordum. Çözüm basit; borlandmm.dll dosyasını karşı sisteme atmak ya da ShareMem unit'inden kurtulmak (tabii proje dosyasındaki açıklamaları okuyarak dikkat etmek kaydı ile).

Velhasıl, bunca şeyi neden yazdım ? Hata bulup tespit etmenin de bir sanat olduğunu ifade edebilmek için. Hatalar bulunup, düzeltilebilirler. Sizler yeterki azimli olun ve neyi nasıl ve nerede arayacağınızı bilin. İşte bu amaç ile belki sizlere de ileride faydası olur niyeti ile, bu tecrübemi paylaşmak istedim.

Hatasız günler dilerim...
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#2
"Hiç hata yapmayan insan hiçbir şey yapmayan insandır"
(H.Roosevelt)
There's no place like 127.0.0.1
WWW
Cevapla
#3
Teşekkürler @Tuğrul HELVACI bey tecrübenizi bizimle paylaştığınız için. Hataların kaynaklarını (basit ve derleyicinin şuarada bir hata var dediği hususlar hariç Smile ) bulmak ayrı bir sanat ve tecrübe gerektiriyor. Sistemi ve işleyişi bilmek birinci aşama, ilgili noktaları analiz edebilmek ve sonuç çıkarmak ise ikinci aşama olarak değerlendirelebilir.
Zaman zaman kontrol ettiğimiz sistemlerde daha önceden karşılaşmadığımız bir problemle uğraşırken (donanımsal veya yazılımsal olabilir) genelde, üçüncü kişiler; ofis arkadaşımız, müşteri, kullanıcı vs. "neden çalışmıyor" "sorun nedir", "ne kadar sürer" gibi sorular sorup sinirlenme katsayımızı yükseltirler. Anlamadıkları nokta, bizde zaten bu soruların cevaplarını bulmaya çalışıyoruz. Nedeni bulduktan sonra zaten çözümde bulunmuş oluyor. Bu aşamadan sonra zaman ile ilgili kestirimler yapılabilir.
Hülasa problemin kendisi zaten ayrı bir stres kaynağı, sorulan sorular ise tuzu biberi.
Cevapla
#4
@Tuğrul HELVACI farklı bir bakış açısı sunduğunuz için teşekkürler.
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#5
2 gündür benim test ortamında oluşturamadığım, nedenini hala bulamadığım son kullanıcıda da çok nadir olan nasıl olduğu belli olmayan bir hata ile karşılaşıyorum, bazı hatalar adamı çileden çıkarmıyor değil
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi