Gaziantepteki bayi istanbuldaki server ikiside felç

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
dervis
Üye
Mesajlar: 22
Kayıt: 12 Eki 2005 01:39

Gaziantepteki bayi istanbuldaki server ikiside felç

Mesaj gönderen dervis »

Arkadaşlar istanbuldaki server da stok listelerindeki her türlü değişiklik tüm yurdda 40 tane bayi tarafından bütün gün açık olan program sayesinde an be an görüntüleniyordu(stok listesini açıp /kapatarak) hatta şu an lokal ağda yine mesajlar veriliyor güncellemeler yapılıyor her şey normal ne zamanki bi bayi (gaziantep,izmir vs)programını açıp şifrelerini giriyo(şifreleri server daki bir tablodan okutuyorum istanbulda) bağlantı sağlanıyo listeyide görüyor(serverdaki stok listesi) ancak bu arada serverda bi değişiklik oluyo silme veya ekleme(tetikleme yapılıyo) iki makinadaki programlar tak diye kitleniyo ibevent lara bakıyorum triggerlara baktım olmadı nerde hata var çözemedim bi fikri olan varmı kardeşler.....(ibquery kullanıyorum bayideki programda sonuçta sadece izliyor) serverdada o var ekleme başka bi formda ibdataset ile oluyor...
İlim bir nokta idi, onu cahiller çoğalttı......(fen,matematik,kimya,vb...)

Cahilin bilmediğini inkar etmesi adettendir....
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Connectionlarını kontrol et projende kaçtane conneciton oluştuyorsun ? FireBird db inin ayarlarına bakmanı tafsiye ederim... Bunlarda sonuç vermezse Network problemi olabilir....

kolay gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
dervis
Üye
Mesajlar: 22
Kayıt: 12 Eki 2005 01:39

Mesaj gönderen dervis »

Connectionlarını kontrol et projende kaçtane conneciton oluştuyorsun ?
(öncelikle hüso kardeş cevaplamış allah razı olsun......)
Olay firebird db de değil de benim anladığım sizinde uyandırdığınız kadarıyla 2 adet connection var bu şifre kontrol olayından sonra oldu...

şöyleki şimdi bayiilere sadece ana programdaki stok listesini görebilecekleri çok küçük, biri şifre penceresi diğeri stok listesinin penceresi olmak üzere 2 adet formdan oluşan bi program verdim.. ilkönce şifre kontrolleri kullandıkları programın içinde idi(klasik şifreleme) daha sonra bayi sayısı artınca ben şifreler içinde ana programda (xxxx.fdb de )bir tablo tanımladım kullanıcı adı ve şifre fieldlarından oluşan,bu tabloyu bayi deki programdan kontrol ettiriyorum...ve sonra stok listesini göstertiyorum ancak şunu kavrayamadım başta bu şifre table ın active olayı herzaman true mu olacak ki girilen accauntu kontrol etsin ? yada kapalımı olacakki biz okey e bastığımızda server a gidip serverdaki sifre table ı kapalıysa açsın sonra accountu kontrol etsin yada yöntem nedir büyük ihtimalle bu konudaki tecrübesizlik bu kilitlenmenin sebebi... 2- bi de anlayamadığım serverdaki program kapalı olduğunda haliyle table da kapalı yani benim programda program çalışırsa tablelar active:=true oluyo yada ben yanlış biliyorum program kapalıysa bile server ın c:\xxxx\xxxx.fdb dosyasındaki sifre table her zaman açık mı oluyo buraları çözemiyorum yada oruç beni ambele mi etti net bi şey söyleyemiyeceğim :shock:
İlim bir nokta idi, onu cahiller çoğalttı......(fen,matematik,kimya,vb...)

Cahilin bilmediğini inkar etmesi adettendir....
dervis
Üye
Mesajlar: 22
Kayıt: 12 Eki 2005 01:39

problem halen devamediyor

Mesaj gönderen dervis »

Bu yapılan ayarlardan ve forumdan bir kaç kişiyle görüşüp aldığım tavsiyeler üzerine bütün her şeyi Fibplus bileşeniyle yapmaya başladım ve gerçekten bir çok özelliği var... Ama bu da diğer ibx gibi kilitlenmeyi önleyemedi benim anlayamadığım lokal ağda lokal ipler ile çalışan gerek bayiii gerekse merkezdeki program olmak üzere neden internette kilitlenme yapıyor bu neden olabilir :cry: :cry: :cry: :duvar: :duvar: :duvar: :duvar: :duvar: ben bi yerde bi şey yapıyorum transectionlarda mı datasetlerde mi bakıyorum her şey doğru gibi...... :duvar: :duvar: :kup: :kup:
İlim bir nokta idi, onu cahiller çoğalttı......(fen,matematik,kimya,vb...)

Cahilin bilmediğini inkar etmesi adettendir....
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Gaziantepten bağlanan bayi herhangi bir transaction baslatiyor mu? Gaziantep tarafinda commit olmamis bir transaction varsa bu transaction ile ilgili tablolarda islem yapamayabilirsiniz.... Bu durumu bir arastirin derim...

Bir de bu gaziantepten baglanan kisinin kullandigi program ile lokalden ve ayni sifreler ile baglanip asyni isleri yapınca bu kilitlenme olmuyormu?
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

Farklı bir çözüm:

Eğer bayiler sadece veri okuma gibi basit bir işlemi gerçekleştiriyorsa basit bir asp veya php arabirimi ile bu verilere bir web server vasıtası ile kendi web tarayıcılarından bağlanmalarını sağla,hem daha hızlı olur,hem güncelleme versiyon vs. işleri sorun yaratmaz,hem de işletim sisteminden bağımsız olur. :idea:
menderes

Mesaj gönderen menderes »

fahrettin hocamın dediği gibi bencede bu sorun transaction lardan kaynaklanıyor, çünkü ekleme ve silme işlemi gerçekleşirken bu sorun ortaya çıktığına göre....
Acizane kendi görüşüm; Bir de söylemeden geçemeyeceğim, ne hikmetse arkadaşların çoğu delphi tarafında dbeditleri çok fazla kullanıyorlar ve tableleri(üzerine çift tıklayıp fieldleri dolduruyorlar) yani veritabanı tarafında titizlikle yapılan işlemi delphi tarafında yoruyorlar gibi. Üstad larda ısrarla veritabanlarını bu yorulmalardan kurtarmak için sp üzerinde duruyorlar....veritabanının hakkını verelim diye....
Gerçekten delphi tarafında veritabanını unsurlarla devamlı açık tutmak bu gibi kilitlenmelere ve daha bir çok problem çıkmalarına sebep olabilir. Acizane fikrim delphi tarafında mümkün olduğu kadar ihtiyaç olunca veritabanını açmak işimiz bitince de veritabanı kapatmak. Çünkü aynı yolu birden fazla kod ile kullanmaya kalkınca (birde başka bir yerde sorgulamada veri tutulmuşsa) aynı böyle kilitlenmeler oluyor maalesef.
Yine soruna ışık tutma açısından, server tarafında Cached Updates True , bayiler tarafında cached updates False diyelim buradaki sorunu siz düşünün,
Herkese kolay gelsin....
Fahrettin hocam mümkün olduğu kadar sizin tecrübelerinizden faydalanmak isteriz. Herkese teşekkür ederim.
Umarım derviş arkadaş işini görmüş olur.
dervis
Üye
Mesajlar: 22
Kayıt: 12 Eki 2005 01:39

Mesaj gönderen dervis »

Öncelikle vakit ayırdığınız için teşekkür ederim

fahrettin kardeşim yazdı:Gaziantepten bağlanan bayi herhangi bir transaction baslatiyor mu?
Elbette başlatıyor zaten gaziantepteki bayii programa girerken kullanıcı adını ve şifresini yazıp okeylediği an da program istanbul daki serverda kayıtlı sifreler table ı içinden gaziantep bayisinin accauntunu kontrol ediyor onaylanırsa stok tablosunu açıp stok listesini bayiye gösteriyor...

MENDERES kardeşim de demişki ;

''bencede bu sorun transaction lardan kaynaklanıyor, çünkü ekleme ve silme işlemi gerçekleşirken bu sorun ortaya çıktığına göre.... ''

Zaten burda ilginç olanda şu lokal ağda aynı transectionlar ekleme ve silme işlemi yaparken kilitlenme yapmıyor ve çalışıyor Lokal ağ da çalışması aklımdan geçen hata ihtimallerini alt üst ediyor.... Uğraşıyorum hepsine bakacağım...


Ali Erdoğan kardeşime de teşekkür ama bu saatten sonra pişmiş aşa su katmak yeniden pişirmekten zor gelecek gibi yine de bilmiyorum... Gelişmeleri buraya aktaracağım....
İlim bir nokta idi, onu cahiller çoğalttı......(fen,matematik,kimya,vb...)

Cahilin bilmediğini inkar etmesi adettendir....
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Transaction başlatıyormu demekten asıl kastım commit edilmemis bir transaction kaliyor mu? Bir de sadece kullanıcının bilgilerini kontrol edip sorgu calistiriyorsaniz yani sadece select çalıştırıyorsanız transaction a neden gerek var ki? Eğer bir insert, update, delete işlemi yoksa bence transaction başlatmak fuzuli... Eğer bu türden bir işlem varsa da zaten az olduğu belli bunlari menderes bey in dediği gibi SP ye taşımak uzaktaki delphi clientindan kaynaklanabilecek problemleri minimize edip problemi lokalize etme şansı verecektir.
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
dervis
Üye
Mesajlar: 22
Kayıt: 12 Eki 2005 01:39

Mesaj gönderen dervis »

Evet haklısınız bayi prg da ki transection u kaldırdım gerçekten fazlalıkmış insan olayın içine gömülünce en basit şeyleri bile göremiyo çıkıp olayın bütünlüğüne yukarıdan bakma ihtimalide kalmıyor bu şekilde denediğimde izmirde ki bayi ile sorun devam ediyor ama sanki bağlantı süresi gözle görülür bi şekilde azaldı (kilitlenme bağlandıktan sonra oluyor ) Lokalden de hemen deneme şansım olduğu için denedim lokalde halen problem yok denemelerim devam ediyor....
İlim bir nokta idi, onu cahiller çoğalttı......(fen,matematik,kimya,vb...)

Cahilin bilmediğini inkar etmesi adettendir....
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

dervis yazdı:Evet haklısınız bayi prg da ki transection u kaldırdım gerçekten fazlalıkmış insan olayın içine gömülünce en basit şeyleri bile göremiyo çıkıp olayın bütünlüğüne yukarıdan bakma ihtimalide kalmıyor bu şekilde denediğimde izmirde ki bayi ile sorun devam ediyor ama sanki bağlantı süresi gözle görülür bi şekilde azaldı (kilitlenme bağlandıktan sonra oluyor ) Lokalden de hemen deneme şansım olduğu için denedim lokalde halen problem yok denemelerim devam ediyor....
Program kilitlendikten sonra bir 5-10 dakika bekle.Eğer 5-10 dk sonra işlem tamamlanıp bilgisayar çözülüyorsa bu bir hız problemi olabilir.

:idea: Ama ben hala asp/php de ısrar ediyorum :) . En fazla 1 gününü alır.Bir kaç gündür sorunlarla uğraşıyorsun...
dervis
Üye
Mesajlar: 22
Kayıt: 12 Eki 2005 01:39

Mesaj gönderen dervis »

değil 5-10 dakika,
Bırakıp camiye gittim cumadan dönüşte hem bayi hem server kilitliydi daha önce öyle yarımsaat 45 dk beklemeler yaptık acaba hızdan dolayımı falan diye ama sonra alakası olmadığını anladık mesela gaziantepteki bayi de 1024 adsl var bende ki 256 adsl sonra 512 adsl le denedik sonuç aynı bu benim prgramın yapısından kaynaklanan bişey yardımlarınızla çözeceğiz inşallah hayırlı cumalar cümleten bu arada
İlim bir nokta idi, onu cahiller çoğalttı......(fen,matematik,kimya,vb...)

Cahilin bilmediğini inkar etmesi adettendir....
dervis
Üye
Mesajlar: 22
Kayıt: 12 Eki 2005 01:39

Mesaj gönderen dervis »

Biraz önce izmirde ki arkadaş şöyle bi hata mesajı almış bende o sırada server prg ile uğraşıyordum ayarlarla falan acba geçici bi hataydı heralde ki bi daha olmamış


izmir in bana gönderdiği hata mesajı o anlık bi şeydi heralde bi daha olmamış

// tell IB to queue up the events and begin reporting them // first time this is called generates a bogus notification // to initialize the result buffer procedure TSIBEventThread.QueueEvents; begin EventsReceived := False; Signal.ResetEvent; Synchronize(SIBQueEvents); if (ResultStatus <> 0) then raise ESIBError.Create(GetIBErrorString); end;
İlim bir nokta idi, onu cahiller çoğalttı......(fen,matematik,kimya,vb...)

Cahilin bilmediğini inkar etmesi adettendir....
dervis
Üye
Mesajlar: 22
Kayıt: 12 Eki 2005 01:39

Mesaj gönderen dervis »

Sevgili felaket arkadaşlarım artık bu problemi resimlerle anlatmaya karar verdim bir de böyle deneyelim...
İşte birinci kişisel sergim....(çok beğenilirse geleneksel hale getirmeyi düşünüyorum)

Bu benim Ana formumun before connectionnunda yazan komut

1-------
procedure TANA.pFIBDatabase1BeforeConnect(Database: TFIBDatabase;
LoginParams: TStrings; var DoConnect: Boolean);
Var
RL:TStringList;
begin
RL:=TStringList.Create;
try
RL.LoadFromFile('fdb.bnt');
if pfIBDatabase1.DatabaseName=RL[0] then
finally
RL.Free;
end;
----------------------------
Bu resim server prg nin Ana menusunun üzerinde bulunan pfibdatabase1 in properties i ve events ı
Resim Resim ve transectionResim

Arkadaşlar bu yukardakiler Ana prg ramın ana formunun üzerindeki transection ve database in özellikleri server dakiler yani. Bu alttaki de yine ana programdaki bağlanılması gereken stok listesinin datasetinin özellikleri

Resim

BAYİİ PRG

Şimdi de Bayi programının şifre giriş formu resmin alt kısmında üst kısmı ise query nın (fibplus) özellikleri bu query serverdaki bir tablodan şifre sorguluyor okeylenirse 2. form(frmstok) yani stok listesi açlıyor
(izmir--->İstanbul) gibi

Resim

şimdide şifre onaylandıktan sonra bayinin önünde açılması gereken stok listesinin database1 inin özellikleri c:\xxxx diye devam ediyor(db name deki ip yi dikkate almayın değerlendirme yaparken) Bu frmstok formunun üzerindeki sırayla database i transsection u dataseti....

Resim

Resim

Resim

Sevgili felaket arkadaşlarım halim bu inşallah benim yaptığım bi dalgınlık aptallık bi hata bu resimleri görür görmez size gözükürde daha fazla bunalmayız bu köşecikde başka sormak istediğiniz bi şey varsa yazın gerekirse isteyen olursa bayi prg yide bu linkten indirebilirler arkadaşlar bilmem doğrumu yapıyorum forum kurallarına uyuyormu neyse ben linki vereyim uygun değilse bi yönetici kardeş siler heralde......
http://www.oemtek.com/bayideneme.zip isteyen olursa denemek için messenger dan yada emaille isterse server İP yi verebilirim ......(dosyaya fbclient.dll koymadım)
İlim bir nokta idi, onu cahiller çoğalttı......(fen,matematik,kimya,vb...)

Cahilin bilmediğini inkar etmesi adettendir....
menderes

Mesaj gönderen menderes »

Öncelikle kolay gelsin,
Gece boyunca meselene baktım. serverde ekleme silme işlemi olunca kilitlenme başlıyor demişsin.
Bu kilitlenme hep aynı bilgisayarlardamı oluyor yoksa bahsettiğin bayilerde rast gelemi. Çünkü bayiler aynı programı kullanıyorlarsa ve de problem serverden kaynaklanıyorsa rast gele olması lazım. Yok hep aynı bilgisayarlarda oluyorsa o zaten belli o bilgisayarlardan kaynaklanan problem olabilir.
Mesela serverde ekleme silme oldu bu bayiye mesaj ile bildirilecek, o bilgisayarlar bunu bir atak gibi kabul ederse problem teşkil edebilir tabi bu benim düşüncem.
Eğer rastgele kilitlenmeler oluyor ise biraz önce dediğim gibi bu Serverden kaynaklanabilir;mesela bir kapı düşün kapıdan bir defada geçebilecek kapasite bellidir. triggerlerin ve eventlerini nasıl yaptığını bilemediğim için orada takıldım. Ama aklıma gelen internetteki hız meselesinide düşünerek eventlerinin positionlarını kontrol etmen. serverdeki olayı önce ben haber vereceğim derken kapıda sıkışabilirler. İzdiham gibi....

Bir başka mesele de ,Datacontrols bileşenleri veritabanına köprü vazifesi görürler. dataset in görevi tableden bilgi getirmek ise işini bitirir kapanır. Açık durmasına gerek yok. Çünkü başka bir formdan başka bileşenle işlem yapmak isteyebilirsin. Bu da verimi etkiler, problem olabilir. Mesela veritabanında Cari table olsun. bu cari tableyi IBTable ile dbgridde göster, başka bir form da da IBQuery ile cari tableden kayıt sil sonra IBTable nin bağlı olduğu formu aç DBGridde o kayıtın durduğunu göreceksin. O bileşeni yani IBTablenin kapatılıp açılması lazım ki gerçeği göstersin. Bunu da dikkate almanı öneririm.

Unutmadan bayi şifre girişini sorgularken müşteri kodunun countunu alma esprisini anlayamadım. Eğer kilitlenme şifre girişinde oluyorsa o query(IBTable veya IBDataset le) ve sql komutunu değiştirip bir denermisin. Kilitlenme yerine hata mesajı verecek mi bakalım. Sonucu bildirirsen sevinirim. Çünkü bu çok övülen Firebird in ya ağ problemleri var ya da biz de sorun. Aynı işi yap accesle hiç bir sorun bulamazsın onun da kapasitesi belli işte. Kafana göre yok napalım. Tekrar kolay gelsin....
Cevapla