Firebird ağ bağ.hak.Meğerse DeadLock Hatasıymış..Şok ol.....

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

SP2 'den olacağımı zannetmiyorum ama her şey olabilir Firevall Kapalı zaten Aynı proğramı BDE'de Çalıştıramazdım. yani SP2 deki ayarları kontrol ediceğim...
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

Evet Çalıştı Firebird Engellenenler listesine alınmış...Nasıl alınmış anlıyamadım Bana sorsun diye ayarlamıştım...ama neyse Çok sağol yanlız şimdi bir problem var tabloda değişiklik yaptığımda kayıtlarda değişiklik olmuyor..Ana Makinada 192.168.0.10:C:\Data\DATA.FDB olursa çalışıyor..fakat değişikliklerde problem oluyor verdiği hata mesajı "I/O Error for file C:\Data\DATA.FDBProğram Başkası tarafından kullanılıyor" gibi hata mesajı veriyor..Yani Bir program İki kişi tarafından kullanılıyor hatasını veriyor. Ana Makinada DataBasename de Local ve C:\Data\DATA.FDB ayarını yapamıyorum.
Kullanıcı avatarı
ozkanagiral
Üye
Mesajlar: 79
Kayıt: 17 Oca 2004 06:23
Konum: istanbul
İletişim:

Mesaj gönderen ozkanagiral »

Selam
Benim

Kod: Tümünü seç

 makinaadı:E:\Projeler\KARINCA\DATA\KARINCA.GDB
bu şekilde kayıtlı bir txt belgem var, program içinden

Kod: Tümünü seç

procedure TFrmAnaKARINCA.VeritabaniniYenidenYukle(Sender: TObject);
Var
  dosya: TextFile ;
  yol, DataTxYolu: string;
//  say : smallint;
begin
 DataTxYolu := ExtractFilePath(Application.ExeName);
 DataTxYolu:= DataTxYolu + 'Databyol.PTH';
// Database açıksa,  önce kapatmamız lazım
   if DMOD1.IBDbKARINCA.Connected = True Then
   Begin
     DMOD1.IBDbKARINCA.Connected:= False;
   End;

  AssignFile(dosya,DataTxYolu);
  {$I-}
  Reset(dosya);
  {$I+}
  if IOResult = 0 then
  begin
    ReadLn(dosya,yol);
    CloseFile(dosya);
    Try
   DMOD1.IBDbKARINCA.DatabaseName :=yol;
//      DMOD1.IBDbKARINCA.Connected := True;

   DMOD1.IBDbKARINCA.Params.Clear;
   DMOD1.IBDbKARINCA.Connected:= False;
   DMOD1.IBDbKARINCA.Params.Values['USER_NAME']:= 'SYSDBA';
   DMOD1.IBDbKARINCA.Params.Values['PASSWORD']:= 'masterkey';
   DMOD1.IBDbKARINCA.Params.Values['lc_ctype']:= 'WIN1254';
   DMOD1.IBDbOtelciKARINCA.LoginPrompt:= False;
   DMOD1.IBDbKARINCA.Connected:= True;
   DMOD1.IBTActKARINCA.Active:= True;
   DMOD1.TablolariAc;
    Except
      On exception do raise;
    end;
  end
  else
  begin
    MessageDlg('Databyol.pth dosyası bulunamadı.Program kapatılacak', mtWarning, [mbOk], 0);
    Application.Terminate;
  end;
end;
prosedürü ile bağlanıyorum ve xp sp2 kurulu firewall açık ayrıca norton internet security yüklü ve açık bağlantım ağ üzerinde tıkır tıkır çalışıyor
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Yanlış yaptiğin birşeyler var. Sana biraz Firebird Server ve Client'ı tarif edeyim.

Öncelikle Firebird Server'ı sadece 1 tek makinaya kuracaksın. Bu makinanın adı "FBServer" olsun. Veritabanı dosyan da bu makinada olacak.

Programlarının çalıştığı kullanıcı bilgisayarlarına sadece Firebird Client kuracaksın. GDS32.DLL olarak da geçer. Ancak install programında Client Only seçeneğini seçtiğinde kurulumu yapacaktır.

Client bilgisayarlarında başka çalışan FB server olmadığından emin ol.

Server'ımız FBServer makinasındaydı. VT dosyamız aynı makinada "C:\Data\Veritabanı.FDB" yolunda olsun.

İstemci makinalarda veritabanına bağlantı cümlesi olarak "FBServer:C:\Data\Veritabanı.FDB" yazman gerekir. Firewall'ların bu bağlantıyı engellemediğinden emin olmalısın. Firebird server'ının çalıştığından emin olmalısın. "Service" kurulum yaptıysan tray icon da gözükmeyecektir. Control Panel->Admin Tools->Services altında Firebird'ün çalışıp çalışmadığını görebilirsin.

Kolay gelsin.
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

evet doğru ...deneyeceğim...verdiğin faydalı bilgiler çok sağol..
SieS
Üye
Mesajlar: 166
Kayıt: 17 Haz 2003 10:41
Konum: Konya

Mesaj gönderen SieS »

Muhtemelen XP SP2 kurulu makinada (Anamkina diyelim) SP2 makina üzerinde izinsiz portları kapatıyor. Sen izin vermezsen o portlar sürekli kapalı kalıyor .
Şimdi Denetim masasından windows güvenlik duvarı (Firewall) a giriyorsun , Özel durumlar kulakçığını tıklayarak bağlantı noktası ekliyorsun .
isim kısmına FireBird port kısmınada 3050 (yanlış hatırlıyor olabilirim
bilen arkadaşım doğrusunu yazabilir)
eklersen sorunun kalmaz inşallah..

Kolay Gelsin.
Ben Toprağın Sinesinde İnsan Denilen Bir Canım
Hem Düşünür, Hem Severim Budur Taştan Faklı Yanım.
Her maddenin zevlesini bedenimde taşıyorsam.
Ben ne bir taş ne bir ağaç, insanlığımla insanım.
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

Önce Selam Kardeşlerim...Evet bir yerde hata yaptığım doğru,Önceki Hata,Programı İstemci MK'de çalıştırılmaması gibi Sistemin,firebird'i Engellenenler listesine alması Tamamen benim kontrolümdeydi sorması lazımdı,bana niye sormadı hayret.Neyse Şimdi firebird'i Önce Ana MK'ye server olarak kuruyorum(Zaten denetim masasında Firebird server maneger çalışır olarak gözüküyor) ,adını ANAMK tanımlıyorum ve Programın(kart1);Databasename özelliği;
"C:\DOSYA\DATA:FDB" olarak tanılıyorum İkinci MK'neye (MK2) Firebird'i( Firebird 1.5.2.471.win32.exe;)Seçenekler arsında;
1-Full install -clasic..........
2-Installition client......................................???????
3-Minumum Client install no server...............Ben bunu seçiyorum(Client Only diye bir seçenek yok çünkü)
4-Custom install.............................

firebird MK2'ye kuruluyor sonra Ana makinada(Delphi7)de Yaptığım programı ismini değiştirerek(kart2,Yoksa üstüne kaydeder.) Databasename özelliğini; "ANAMK:C:DOSYA\DATA.FDB"(zaten database component editor,Otomatik olarak remote oluyor) olarak tanımlayıp kaydediyorum..ve proğramı(kart2) Terminale taşıyorum.. olay bu,bir yerde hata var ama nerde...

Not:Bu yaptıklarımı birbirine bağlı 2 windows 2000 de de denedim yine aynı hatayı veriyor..Win2000'lerde Firevall filan yok.
Kullanıcı avatarı
ozkanagiral
Üye
Mesajlar: 79
Kayıt: 17 Oca 2004 06:23
Konum: istanbul
İletişim:

Mesaj gönderen ozkanagiral »

programın ismini değiştirmeni anlamadım neden üstüne kaydeder yoksa uygulama programını ana makinadan farklı isimlemi çalıştırıyorsun yani ...
Ana Makina üstünde c:\program\kart1.exe ve yine c:\program\kart2.exe yi istemci makinadan çalıştırarakmı?
benim anladığım bu ve öyle ise buna hiç gerek yok
1. Ana Makina üstünde C:\program\program.exe
Veritabanı Yolu
Ana Makina üstünde C:\program\DATA\VT.FDB
2. İstemci Makina üstünde C:\program\program.exe
Veritabanı Yolu
AnaMakinaAdı:c:\program\data\vt.fdb

Bu şekilde çalışıyor bunu denemelisin.

İyi Çalışmalar
Kullanıcı avatarı
ozkanagiral
Üye
Mesajlar: 79
Kayıt: 17 Oca 2004 06:23
Konum: istanbul
İletişim:

Mesaj gönderen ozkanagiral »

HBV yazdı:Databasename özelliği;
"C:\DOSYA\DATA:FDB" olarak tanılıyorum
bu yazdığın aynen orada yazdığın gibimi yoksa buraya yazarkenmi noktalama hatası oldu?
bir kontrol et lütfen
C:\DOSYA\DATA.FDB

İyi Çalışmalar
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

arada nokta var burada yanlış ....

................................................
Delphide programı açıyorum..ismi diyelim kart ana mk için kart'ı düzenliyorum...Terminal içinda örneğin kart 1 diyorum (Program aynı)düzenliyorum eğer aynı kart (ana MK için düzenlediğim) öbür mk'ya taşırsam hangi MK'da çalıştırdıysam o aktif oluyo öbür mk'na cevap vermiyor...işte program başkası tarafından kullanılıyor mesajı çıkıyor..Terminal için düzenlediğimi taşıdığım zaman ..ikiside çalışıyor..fakat Kayıt veya düzeltmelerde hata veriyor..yani ayrı telden çalıyorlar...
En son HBV tarafından 05 Tem 2005 03:58 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

Bir dakika önce ben Firebird deki mantığı anlıyayayım..Biz delphide hazırladığımız proğramı teminallere taşımıyormuyuz...yoksa terminallerden programın exe sini bulup çalıştırıyoruz..önce onu bir anlıyayım...

......................................
anlatamadım galiba o zaman söyle söyliyeyim ..BDE,9 terminalde çalışan paradox da yapılmış bir proğram var bunlara ben İnstall Shieldle setup hazırlıyorum..ve her terminale ayrı ayrı kuruyorum..Tabi setuplarını terminal 1 terminal 2 diye hazırlıyorum(İş gereği özel kod verib Terminallere ayrı ayrı kayıt yaptırıyorum)..program aynı exeleri değişik Örnek: program1.exe program2.exe gibi (Sonuçta aynı dataları görüyorlar)
ve tıkır tıkır çalışıyorlar... Mantık aynı değilmi? sonuçta datayı görecekler..
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

Sayın Ozkan agiral...yukarıda belirttiğiniz gibi Anamakina=C:\program\DATA.FDB İstemci Makina=192.168.0.11:C\program\DATA.FDB yaptım Ayrıca exeleri belirttiğiniz şekilde Kendi MK'nalarına kopyaladım istemci term'de Anamk.ismi veya IP:C:\program\dosya.exe,AnaMakinada=C:\program\dosya.exe olarak kopyaladım bu sefer Ana Makinanın dosya.exe' si çalıştı İstemci Makinanın ise yine aynı hata...çalışmadı.

Ben Tableyi IBExpertle hazırladım Burada istemci MK'nalar için hiç bir işlem yapılmıyormu? Çünkü "Roles" diye bir seçenek var burada kullanıcı ayarları veya tanımları yapılmıyormu?....İnterbase Console aracında İstemci MK'de,bazı ayarlar yapıldığını duydum..Açıkcası sitelerde bu konularda tam bilgi yok! veya ben bulamadım...
Cevapla