Firebird ağ bağ.hak.Meğerse DeadLock Hatasıymış..Şok ol.....
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.
- ozkanagiral
- Üye
- Mesajlar: 79
- Kayıt: 17 Oca 2004 06:23
- Konum: istanbul
- İletişim:
Selam
Benim
bu şekilde kayıtlı bir txt belgem var, program içinden
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
Benim
Kod: Tümünü seç
makinaadı:E:\Projeler\KARINCA\DATA\KARINCA.GDB
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;
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.
Ö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.
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.
Ş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.
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.
Ö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.
"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.
- ozkanagiral
- Üye
- Mesajlar: 79
- Kayıt: 17 Oca 2004 06:23
- Konum: istanbul
- İletişim:
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
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
- ozkanagiral
- Üye
- Mesajlar: 79
- Kayıt: 17 Oca 2004 06:23
- Konum: istanbul
- İletişim:
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...
................................................
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.
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..
......................................
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..
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...
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...