Ana içeriğe geç

V5 Bağlantı Dayanıklılığı: 10 Soruda Çalışma Mantığı

Bilnex V5'te SQL bağlantısı koptuğunda program donmaz, bağlantıyı kendisi yeniden kurar, ekranda girilmiş bilgileri korur ve hiçbir evrakı iki kez yazmaz.

Bu makale firma yöneticisi, BT sorumlusu ve bayi destek personeli içindir: programın kopmayı nasıl fark ettiğini, hangi pencereyi ne zaman gösterdiğini, kayıt sırasında neye karar verdiğini, yeni SQL sürücüsünün nasıl kurulduğunu ve bir sorun olduğunda nereye bakılacağını anlatır.

Yalnız Bilnex V5

Bu makaledeki davranışlar yalnız Bilnex V5 (BilnexErp) için geçerlidir. V2 / V3 ürünlerinin davranışı değişmedi (ayrıntı: Sınırlar).

Kopma neden olur, nasıl anlaşılır?​

Program açıkken sunucuyla arasındaki bağlantı çoğu zaman şu nedenlerden biriyle kopar:

NedenNe olur
Gece bakımı: sunucunun ya da SQL Server hizmetinin yeniden başlatılmasıSabah açık kalan programın bütün bağlantıları ölüdür.
VPN bağlantısının düşmesiUzaktan çalışan bilgisayarın bağlantısı kesilir; VPN geri gelince sunucuya yeniden ulaşılır.
Bilgisayarın uykuya geçmesiUyanınca eski bağlantılar artık çalışmaz.
Ağ cihazının (güvenlik duvarı, modem) uzun süre boşta kalan bağlantıyı kesmesiProgram dakikalarca kullanılmadıysa, ilk işlemde bağlantının koptuğu anlaşılır.
Ağın kesilmesi ya da SQL Server hizmetinin durmasıSunucuya hiç ulaşılamaz; bağlantı ancak ağ / hizmet geri gelince kurulabilir.

Eskiden görülen belirtiler: program dakikada bir 4–5 dakika donuyordu; kopmadan sonra her işlem İngilizce The connection is no longer usable because the server failed to respond to a command cancellation… ya da Cannot perform this operation on a closed dataset gibi bir hata veriyordu ve tek çare programı kapatıp açmaktı.

V5'te: ekran donmaz, İngilizce sürücü iletisi doğrudan gösterilmez. Onun yerine aşağıda metinleri verilen Türkçe bilgiler çıkar; asıl ileti, destek için her zaman bilginin sonundaki Ayrıntı: satırındadır.

Kopma ve kurtarma​

1. Program açıkken SQL bağlantısı koparsa ne olur?​

Program artık donmaz ve kalıcı hataya düşmez. Kopmayı fark edince bağlantıları kendisi yeniden kurar ve Sunucu bağlantısı kesilmişti, yeniden kuruldu gibi bir bilgi verir. Programdan çıkıp yeniden girmek gerekmez.

Nasıl çalışır:

  1. Kopma bir hata iletisiyle fark edildiyse, program önce o iletiyi açan işin bitmesini bekler (açık bir uyarı penceresi varsa o kapanana kadar).
  2. Sunucuya ulaşılıp ulaşılamadığı ekranı bekletmeden, ayrı bir bağlantıyla en fazla 5 saniye denenir.
  3. Sunucuya ulaşılıyorsa, açık bütün ekranların ve programın bağlantıları tek tek sınanır; yalnız çalışmayanlar yenilenir. Yenileme açık ekranlardaki kaydedilmemiş satırları silmez (bkz. soru 4).
  4. Bağlantı koptuğu için okunamayan listeler yeniden açılır.
  5. Sonuç kullanıcıya söylenir.

Ekranda görebileceğiniz bilgiler:

DurumEkranda gördüğünüz
Bir işlem kopma hatası verdi, bağlantılar yenilendiSunucu bağlantısı kesilmişti, yeniden kuruldu. + Son işleminiz tamamlanmamış olabilir; lütfen tekrarlayın. Açık ekranlardaki kaydedilmemiş bilgileriniz korundu. + Ayrıntı: … (Tamam)
Bir işlem kopma hatası verdi ama yenilenecek bağlantı çıkmadı (yeni sürücü bağlantıyı kendisi kurmuştu ya da kesinti geçmişti)Sunucu bağlantısında kısa bir kesinti oldu; bağlantı şu an çalışıyor. + aynı "lütfen tekrarlayın" cümlesi + Ayrıntı: …
Kimse bir şey yapmadan, sunucu bir süre ulaşılamaz olduktan sonra geri geldiEkranın köşesinde 8 saniye kalan küçük bildirim: Sunucu bağlantısı — Kesintiden sonra yeniden kuruldu. Açık ekranlarınızdaki bilgiler korundu. (Yalnız gerçekten bir bağlantı yenilendiyse çıkar.)
Kopma hatası geldi ve sunucuya ulaşılamıyorYeniden Bağlan / Programı Kapat penceresi (soru 3)

"Son işleminiz tamamlanmamış olabilir" cümlesi önemlidir: kopma sırasında açmaya çalıştığınız liste ya da çalıştırdığınız işlem yapılmamış olabilir; aynı menüyü ya da düğmeyi bir kez daha kullanın.

Toplu işlemlerde (sonuçları bir listede toplayan ekranlar), her satır için ayrı İngilizce hata yerine listeye tek satır yazılır: Sunucu bağlantısı kesildi; bu noktadan sonraki kayıtlar işlenemedi. Bağlantı yeniden kurulunca işlemi tekrar çalıştırın.

2. Eskiden program neden her dakika donuyordu, şimdi neden donmuyor?​

Program dakikada bir sunucuya "buradayım" bildirimi gönderir. Eskiden bu iş ekranla aynı yerde yapılıyordu; bağlantı koptuğunda ekran her seferinde 4–5 dakika bekliyordu. Artık bu kontrol arka planda, kendi bağlantısıyla yapılıyor; ekran hiç beklemiyor.

Nasıl çalışır:

AyrıntıDeğer
Kontrol sıklığıGirişten sonra 60 saniyede bir. Art arda iki kez ulaşılamazsa aralık 120 saniyeye çıkar; sunucu geri gelince yeniden 60 saniye.
Kendi bağlantısının bekleme süresiBağlanmak için en fazla 5 saniye, sorgu için en fazla 10 saniye. Bağlantı her turda yeniden açılıp kapatılır (havuzdaki ölü bağlantı kullanılmaz).
Kopmanın fark edilmesiÖlçümde kopmadan yaklaşık 70 saniye sonra
Düzelmenin fark edilmesiAğ geri geldikten sonra en geç 120 saniye içinde (ölçümde ~45 saniye)
Bu kontrolün yaptığı işlerOturumunuzun "son görülme" zamanını tazeler, aynı kullanıcının 2 dakikadan eski diğer oturum kaydını siler ve program tarihi parametresini sunucu tarihine göre uygular — eskisiyle aynı işler.

Sunucuya ulaşılamadığı bilinirken, kullanıcının istemediği periyodik işler (otomatik yenilemeler, hatırlatıcılar) bağlantıya hiç dokunmaz, sırası gelen tur atlanır ve bağlantı gelince kendiliğinden sürer. Böyle korunan işler: E-Ticaret otomatik aktarımının dakikalık ayar kontrolü (artık arka planda), gönderilen e-Fatura durum takibi, Ajanda hatırlatıcısı, not hatırlatması, Sipariş Durumu ekranının 30 saniyelik yenilemesi ve Depo Teslim Fişi Servisi'nin otomatik yenilemesi.

Kopukluk 2 dakikayı geçerse

Kopukluk sürdükçe oturumunuzun "son görülme" zamanı tazelenemez. Bu süre 2–2,5 dakikayı geçerse oturumunuz diğer bilgisayarlarda asılı sayılır: lisanslı kullanıcı sayımına girmez, Mesajlaşma'da çevrimdışı görünür, açık bıraktığınız evrakı başkası düzeltebilir (Sistemdeki Kullanıcılar). Bağlantı gelince ilk başarılı turda oturum yeniden canlı görünür. Bir yönetici bu arada kullanıcıyı bilerek sistemden çıkardıysa program o kaydı geri yazmaz.

3. Program kopmayı nasıl fark ediyor?​

Üç yoldan biriyle:

  • Dakikalık arka plan kontrolü sunucuya ulaşamaz.
  • Bir işlem bağlantı hatası verir.
  • Kaydet'e basıldığında yapılan ön kontrol kopukluğu yakalar.

Sunucuya hiç ulaşılamıyorsa Yeniden Bağlan / Programı Kapat penceresi çıkar.

Nasıl çalışır:

  • Dakikalık kontrol her turda yeni bir bağlantı açar. Bu yüzden ağ sağlamken yalnız ekranın kullandığı bağlantının koptuğu durumu (ör. sunucu yeniden başladı, ağ hemen geri geldi) bu kontrol göremez; onu ilk işlemdeki hata ya da Kaydet'teki ön kontrol yakalar.
  • Bir hatanın "bağlantı kopması" sayılması için sürücü iletisinde şu ifadelerden biri bulunmalıdır: TCP Provider, Named Pipes Provider, Shared Memory Provider, Session Provider, Link failure, General network error, no longer usable, command cancellation, Connection is busy, connection is broken. Diğer hatalar eskisi gibi gösterilir.
  • Kontrol yalnız dakikalık turda ulaşılamazlık gördüyse kullanıcıya pencere açılmaz; sunucu geri gelince bağlantılar sessizce yenilenir (soru 1'deki küçük bildirim).

Yeniden Bağlan / Programı Kapat penceresi — bir işlem kopma hatası verdiğinde sunucuya ulaşılamazsa, yaklaşık 5 saniye sonra çıkar:

Sunucuya ulaşılamıyor.

Ağ bağlantınızı ve SQL Server'ın çalıştığını kontrol edin. Açık ekranlardaki kaydedilmemiş bilgileriniz korunuyor; bağlantı gelince kaydedebilirsiniz.

Ayrıntı: …

DüğmeNe olur
Yeniden BağlanSunucu yeniden denenir. Ulaşılıyorsa bağlantılar yenilenir ve soru 1'deki bilgi çıkar; hâlâ ulaşılamıyorsa pencere yeniden gelir. Ağı / VPN'i düzelttikten sonra basın.
Programı KapatProgram hemen kapanır. Açık ekranlardaki kaydedilmemiş bilgiler kaybolur. Normal kapanış ölü bağlantılarla uzun süre bekleyebileceği için program bu yolu kullanır.
Pencereyi köşedeki çarpıyla kapatmakProgram açık kalır; dakikalık kontrol sunucuyu yeniden görünce bağlantılar kendiliğinden yenilenir, ya da sonraki kopma hatasında pencere yeniden gelir.

Kayıt güvenliği​

4. Ekranda girilmiş ama kaydedilmemiş bilgiler ne olur?​

Korunur. Bağlantı yenilenirken açık evraklardaki satırlar bellekte tutulur ve yeni bağlantıya taşınır. Kaldığınız yerden devam edip kaydedebilirsiniz.

Nasıl çalışır: program bağlantıyı kapatıp açmaz (bu, ekrandaki kaydedilmemiş satırları silerdi). Önce yeni bağlantıyı açar; ancak yeni bağlantı açılabildiyse ekranların verilerini ona taşır. Yeni bağlantı açılamazsa (sunucu yine gitti) hiçbir şeye dokunmaz; ekrandaki veriler eski hâlinde kalır ve sonraki deneme yeniden yapılır. Ölçümlerde eklenen, değiştirilen ve silinen satırlar, o an düzenlenmekte olan satır dahil, korunmuş ve sonraki kayıtta tam bir kez yazılmıştır.

Korunmayan tek durum: açık bir listede, sunucu tarafında imleç kullanan çok az sayıdaki ekran yeniden açılır; o ekrandaki konum ve yarım kalmış düzenleme kaybolur.

5. Kaydet'e basınca ne kontrol ediliyor?​

Bağlantı bir dakikadan uzun süredir kullanılmadıysa (ör. akşamdan açık kalan bir evrak) ya da daha önce kopma görüldüyse, kayıttan önce bağlantı denenir:

DurumSonuç
Bağlantı kopukBağlantı satırlar korunarak yenilenir ve kayıt tek seferde yapılır.
Sunucuya ulaşılamıyorYaklaşık 5 saniye içinde evrak kaydedilmedi, bilgileriniz ekranda iletisi çıkar. Bağlantı gelince Kaydet'e yeniden basın.

Nasıl çalışır:

  • Ne zaman yapılır: firma ya da sistem bağlantısı 60 saniyeden uzun süredir başarıyla kullanılmadıysa, kopma görüldüyse, dakikalık kontrol "ulaşılamıyor" diyorsa ya da evrakın verisi önceki bir kopmadan bağlantısız kaldıysa. Etkin çalışırken (evraka satır girerken program bağlantıyı sürekli kullanır) kontrol çalışmaz, kayıt hiç yavaşlamaz.
  • Ne yapılır: dakikalık kontrol yakın zamanda başarılı değilse sunucu önce ayrı bir bağlantıyla en fazla 5 saniye denenir. Sonra firma ve sistem bağlantıları sınanır; biri kopuksa programın bütün bağlantıları yenilenir. Beklerken fare imleci SQL bekleme imlecine döner.
  • Hangi ekranlarda: V5'in evrak ekranlarında (fatura, irsaliye, sipariş, teklif, çek / senet bordroları, makbuzlar ve diğer fişler) Kaydet düğmesinde, Alt+A ile kaydetmede ve kaydı tetikleyen yazdırma gibi yollarda; ayrıca BilnexErp içindeki perakende satış ekranında satış kaydedilmeden önce.

Sunucuya ulaşılamadığında çıkan ileti:

Sunucuya ulaşılamıyor; evrak kaydedilmedi. Girdiğiniz bilgiler ekranda korunuyor: bağlantı gelince Kaydet'e yeniden basın.

Ayrıntı: …

Bu durumda evrak ekranda Kaydet bekler hâlde kalır; kaydedildi sanılıp kapanmaz, perakende satışta da yeni satışa geçilmez.

6. Kayıt tam sırasında bağlantı koparsa ne olur?​

Program kaydın hangi aşamada kaldığına bakar ve dört sonuçtan birini söyler. Kayıt hiçbir durumda kendiliğinden tekrarlanmaz; böylece mükerrer fatura ya da fiş oluşmaz.

Kopma anındaki durumEkranda gördüğünüzNe yapmalı
Sunucuya hiçbir şey gitmemiştiBilgiler korunduKaydet'e yeniden basın.
Kayıt tamamlanmıştıEvrakın kaydedildiği doğrulandıBir şey yapmayın.
Kayıt tamamlanmadıEvrak kaydedilmediEvrakı kaydetmeden kapatıp yeniden açın (soru 7).
Durum belirlenemediİşlemin tamamlandığı doğrulanamadıEvrak listesinden kontrol edin; evrak yoksa yeniden girin.

Nasıl çalışır: bir evrak kaydı dört adımdır: işlemin başlatılması, evrak başlığının gönderilmesi, satırların (ve bağlı hareketlerin) gönderilmesi, işlemin onaylanması. Kopma olunca program:

  • İlk üç adımdan birindeyse, kayıttan hemen önce gönderilmeyi bekleyen satır sayısıyla kopmadan sonraki sayıyı karşılaştırır. Sayı aynıysa sunucuya hiçbir satır gitmemiştir: satırlar ekranda olduğu gibi korunur. Sayı azaldıysa bazı satırlar gitmiş ama sunucu işlemi geri almıştır.
  • Son adımdaysa (onay sırasında), sonucu ayrı bir bağlantıyla sunucuda kontrol eder: yeni evrakta evrakın sunucuda var olup olmadığına, düzeltilen evrakta "son değiştirilme" zamanının bu kayıtta yazılan değer olup olmadığına bakar.

Ekrandaki iletilerin tam metni (hepsinin sonunda Ayrıntı: satırı bulunur):

Sonuçİleti
Bilgiler korundu, bağlantı kurulduSunucu bağlantısı koptuğu için evrak kaydedilmedi. Girdiğiniz bilgiler ekranda korunuyor; bağlantı yeniden kuruldu, Kaydet'e yeniden basabilirsiniz.
Bilgiler korundu, sunucu henüz yokSunucu bağlantısı koptuğu için evrak kaydedilmedi. Girdiğiniz bilgiler ekranda korunuyor; bağlantı gelince Kaydet'e yeniden basın.
Kaydedildiği doğrulandıKayıt sırasında sunucu bağlantısı koptu; evrakın kaydedildiği doğrulandı. Evrak kaydedilmiş gibi davranır (Kaydet kapanır).
KaydedilmediSunucu bağlantısı kayıt sırasında koptu; evrak kaydedilmedi. Ekrandaki bilgiler bu hâliyle yeniden kaydedilemez: evrakı kaydetmeden kapatıp yeniden girin.
DoğrulanamadıSunucu bağlantısı kayıt sırasında koptu; işlemin tamamlandığı doğrulanamadı. Mükerrer kayıt olmaması için evrakı yeniden kaydetmeyin: önce evrak listesinden kontrol edin, kayıt yoksa evrakı kapatıp yeniden girin.

"Doğrulanamadı" sonucu, sunucuya kontrol için de ulaşılamadığında ya da evrakta kontrol edilecek bir değişiklik bulunmadığında (ör. yalnız satırlar değiştirilmişse, ya da ekran "son değiştirilme" zamanını yazmıyorsa) çıkar.

Pratik kural

Kopma sırasında bir fatura kaydediyorduysanız ve ileti "kaydedildiği doğrulandı" demiyorsa, evrak listesini açıp evrakı arayın. Listede varsa bir şey yapmayın; yoksa evrakı yeniden girin. Aynı ekranda Kaydet'e tekrar basmayın.

7. Neden "evrakı kaydetmeden kapatıp yeniden açın" diyor, neden tekrar kaydedemiyorum?​

Bazı satırlar sunucuya gitmişti, ama kopma yüzünden sunucu kaydı tamamen geri aldı. Ekran o satırları "gönderildi" saydığı için yeniden kaydetmek yalnız bir kısmını yazardı ve değişiklikler sessizce kaybolurdu. Program bu yüzden kaydı engeller; evrak kapatılıp yeniden açılınca normal kaydedilir.

Nasıl çalışır: "kaydedilmedi" ya da "doğrulanamadı" sonucundan sonra aynı evrak ekranda açık kaldıkça Kaydet şu iletiyle durur ve kayıt yapılmaz:

Bu evrakın kaydı sunucu bağlantısı koptuğu için yarıda kaldı. Ekrandaki bilgiler bu hâliyle kaydedilirse girdiğiniz değişikliklerin bir kısmı kaybolur; kayıt yapılmadı.

Evrakı kaydetmeden kapatın, evrak listesinden kontrol edip yeniden açın.

Engel; ekran kapatılınca, aynı ekranda Yeni ile yeni bir evraka geçilince ya da başka bir evrak açılınca kalkar. Düzeltmekte olduğunuz bir evraksa, yeniden açtığınızda sunucudaki son hâli gelir; değişikliklerinizi yeniden girin.

8. Çek / senet bordrosu ya da makbuz düzenlenirken kopma olursa?​

Bu ekranlar düzenleme boyunca sunucuda açık bir işlem tutar; kopmada bu işlem geri alınır. Kayıtlar tutarsız olmasın diye o an açık olan bütün evrak ekranlarının kaydı engellenir ve ekranları kaydetmeden kapatıp yeniden açmanız istenir.

Nasıl çalışır: bağlantılar yenilenirken açık işlemi geri alınmış bir bağlantı bulunursa önce şu bilgi verilir:

Bağlantı koptuğunda açık olan bir işlem (ör. çek / senet bordrosu, makbuz düzenleme) sunucuda geri alındı. Kayıtlar tutarsız olmasın diye o an açık olan evrak ekranları kaydedilmez: kaydetmeden kapatıp yeniden açın.

Ardından o an açık her evrak ekranında Kaydet'e basıldığında, ekran kapatılana kadar şu ileti çıkar ve kayıt yapılmaz:

Bu ekran açıkken sunucu bağlantısı koptu ve açık bir işlem (ör. çek / senet bordrosu, makbuz düzenleme) sunucuda geri alındı. Kayıtlar tutarsız olmasın diye bu ekran kaydedilmez; kayıt yapılmadı.

Ekranı kaydetmeden kapatıp yeniden açın.

Engel, o işlemle ilgisi olmayan bir faturayı da kapsar: işlemin hangi ekrana ait olduğu kesin bilinemediği için program tutarsız kayıt riskine girmez. Bu durum yalnız kopma anında bir bordro ya da makbuz düzenlemesi açıksa çıkar.

Sürücü ve sorun giderme​

9. Yeni SQL sürücüsü (Microsoft OLE DB Driver) ne işe yarıyor, nasıl kuruluyor?​

Yeni sürücü, boştayken kopan bağlantıyı siz hiç fark etmeden kendisi yeniden kurar. Windows 10 ve üstünde, SQL Server 2016 ve üstünde çalışır. Kurulu değilse:

DurumNe olur
Kullanıcı Windows yöneticisiGirişten sonra Şimdi Kur önerisi çıkar; kurulum Windows izni (UAC) ister ve arka planda sürer.
Kullanıcı Windows yöneticisi değilÖneri çıkmaz; ERP Yöneticisine 30 günde bir bilgi verilir.
Sunucu SQL Server 2016'dan eskiEski sürücüde kalınır; ERP Yöneticisine sunucuyu yükseltme önerisi verilir.
Bilgisayarda hiç SQL sürücüsü yokProgram girişten önce kurulumu önerir.

Program, Microsoft imzası doğrulanmış kurulum paketini program klasöründeki Utils\msoledbsql.msi'den alır. Yeni sürücü kurulana kadar program eski sürücüyle çalışır; 1–8. sorulardaki korumalar orada da geçerlidir.

Eski ve yeni sürücü farkı​

Eski sürücü: SQL Server Native Client (10 / 11)Yeni sürücü: Microsoft OLE DB Driver for SQL Server 18.7.6
Boşta kopan bağlantıKendisi kuramaz; her işlem aynı hatayı verir. Bağlantıyı Bilnex yeniler ("kesilmişti, yeniden kuruldu").Çoğu durumda sonraki işlemde kendisi kurar (ölçümde 30–50 milisaniye). Bazen kopmadan sonraki ilk işlem yine düşer, ikincisi kurar; o zaman "kısa bir kesinti oldu" bilgisi çıkar.
Kullanıcının fark etmesiKopmada her zaman bir bilgi penceresi görülür.Çoğu kopmada hiçbir şey görülmez.
1–8. sorulardaki korumalarGeçerliGeçerli
Açık işlem / sunucuda tutulan geçici veriKurtarılamaz (Bilnex bağlantıyı yeniler, işlem geri alınmıştır)Kurtarılamaz (aynı)
Desteklediği sunucuSQL Server 2016 altı dahilSQL Server 2016 – 2025
Desteklediği WindowsWindows 10 öncesi dahilWindows 10 / 11, Windows Server 2016 ve üstü
KurulumBugünkü kurulumlarda zaten var (Utils\sqlncli X64.msi)Utils\msoledbsql.msi (x64 paket 64 ve 32 bit sürücüyü birlikte kurar, Native Client'ı kaldırmaz, ek ön koşul istemez)

Veriler iki sürücüde aynı okunur: fatura, cari, stok hareketi gibi sorgularda yaklaşık 1.180 alanda alan türleri ve değerler karşılaştırılmış, fark bulunmamıştır.

Program hangi sürücüyü seçer? Her açılışta, sunucu başına bir kez, bilgisayarda kurulu olanlar arasından: önce Microsoft OLE DB Driver 18.7.5 ve üstü, sonra 19 serisi, sonra 18.6 – 18.7.4, sonra Native Client 11, sonra Native Client 10. Sunucu SQL Server 2016'dan eskiyse Native Client'ta kalınır. Yeni sürücü önce 5 saniyelik bir bağlantıyla denenir; açılmaz ama Native Client açarsa bir kez daha denenir, yine açılmazsa o bilgisayar o sunucu için eski sürücüye döner. Hangisinin seçildiğini günlük dosyasındaki Surucu: satırı söyler.

Kurulum önerisi (Windows yöneticisi)​

  1. Girişten yaklaşık 1 dakika sonra (ilk dakikalık kontrol sunucunun sürümünü okuyunca, açık bir pencere yokken) ekranın köşesinde Bağlantı sürücüsü başlıklı sabit bir bildirim çıkar: Bağlantı kopmalarına karşı Microsoft OLE DB sürücüsünün kurulması önerilir. Kurmak için tıklayın. Bildirim siz tıklayana ya da kapatana kadar durur.

  2. Tıklayınca şu soru gelir; düğmeler Şimdi Kur ve Daha Sonra:

    Microsoft OLE DB Driver for SQL Server 18.7.6 kurulsun mu?

    Bu sürücüyle ağ, VPN ya da uyku kaynaklı bağlantı kopmalarının çoğu fark edilmeden kendiliğinden düzelir. Kurulum Windows yönetici izni ister ve birkaç dakika sürer; bu sırada çalışmaya devam edebilirsiniz. Yeni sürücü programın bir sonraki açılışında kullanılır.

  3. Şimdi Kur: paket kullanıcının geçici klasörüne kopyalanır, Microsoft imzası ve ürün / sürüm bilgisi bu kopyada doğrulanır, Windows izin sorusu (UAC) çıkar. Sürücü kuruluyor; bitince bilgi verilecek. bildirimiyle kurulum arka planda sürer; programda çalışmaya devam edebilirsiniz.

  4. Kurulum bitince sonucu bildiren bir bildirim çıkar (aşağıdaki tablo). Yeni sürücü programın bir sonraki açılışında kullanılır; açık oturum değişmez.

Daha Sonra ya da UAC sorusunda Hayır: öneri 30 gün boyunca gelmez. Öneri gösterildiği gün yeniden gösterilmez.

Kurulumun sonucu (Windows Installer çıkış kodu)Bildirim
0Sürücü kuruldu. Program bir sonraki açılışında yeni sürücüyle bağlanacak.
3010, 1641Sürücü kuruldu; Windows yeniden başlatma istedi. Program bir sonraki açılışında yeni sürücüyle bağlanacak.
1602, 1223 (UAC sorusunda Hayır)Sürücü kurulumu iptal edildi; 30 gün sonra yeniden önerilecek.
1618Bilgisayarda başka bir kurulum sürdüğu için sürücü kurulamadı; yarın yeniden önerilecek. (Windows Update gibi başka bir kurulum sürüyordu.)
Diğer kodlarSürücü kurulamadı (hata kodu N). Ayrıntı için tıklayın. Tıklayınca kurulum günlüğünün yolu gösterilir; Günlüğü Aç düğmesi günlüğü açar.

Kurulum günlüğü kullanıcının geçici klasöründe, %TEMP%\BilnexSurucu\<klasör>\msoledbsql_kurulum.log dosyasındadır; bir sonraki kurulum denemesinde eskisi silinir. Paket geçici klasöre kopyalanamazsa ya da imza / sürüm doğrulaması geçmezse Sürücü kurulum paketi yerel klasöre kopyalanamadı: … iletisi çıkar ve kurulum başlamaz.

Windows yöneticisi olmayan bilgisayar ve eski sunucu​

  • Windows yöneticisi olmayan kullanıcı: kullanıcıya hiçbir şey gösterilmez. O bilgisayarda bir ERP Yöneticisi (kullanıcı tipi Yönetici olan kullanıcı ya da S) giriş yaparsa 30 günde bir Bu bilgisayara Microsoft OLE DB sürücüsünün kurulması önerilir. Ayrıntı için tıklayın. bildirimi çıkar. Tıklayınca paketin yolu gösterilir; Klasörü Aç düğmesi paketi Windows Gezgini'nde seçili açar. Paketi Windows yöneticisi elle kurar ya da bilgisayarın Windows yöneticisi programı açtığında öneri ona gelir.
  • Sunucu SQL Server 2016'dan eski: sürücü önerilmez. ERP Yöneticisine 30 günde bir Bağlantı kopmalarına karşı tam koruma için SQL Server 2016 veya üstü önerilir. Ayrıntı için tıklayın. bildirimi çıkar; tıklayınca sunucunun sürümü söylenir (ör. Sunucudaki SQL Server sürümü (SQL Server 2014) yeni bağlantı sürücüsünü desteklemiyor; program eski sürücüyle (SQL Server Native Client) çalışmaya devam ediyor…). Yeni kurulumda Kurulum Sihirbazı da sunucu testi başarılı olunca aynı uyarıyı verir; kuruluma devam edilebilir.

Hiç SQL sürücüsü olmayan bilgisayar​

Sürücüsüz bir bilgisayarda program açılırken, veritabanına bağlanmadan önce şu soru gelir (Şimdi Kur / Vazgeç):

Bu bilgisayarda SQL Server bağlantı sürücüsü kurulu değil; program veritabanına bağlanamıyor.

Microsoft OLE DB Driver for SQL Server şimdi kurulsun mu? Kurulum için Windows yönetici izni istenir.

Şimdi Kur'dan sonra UAC sorusu çıkar ve kurulum bitene kadar Microsoft OLE DB sürücüsü kuruluyor, lütfen bekleyin... penceresi diğer pencereleri kilitler. Kurulum başarılıysa program aynı açılışta yeni sürücüyle bağlanır.

Durumİleti
Windows 10'dan eski Windows…Bu Windows sürümü için SQL Server Native Client gerekir (program klasöründeki Utils\sqlncli X64.msi). Kurulum için Bilnex desteğe başvurabilirsiniz.
Paket bulunamadı…Sürücü kurulum paketi (Utils\msoledbsql.msi) program klasöründe ya da sunucudaki program klasöründe bulunamadı. Microsoft OLE DB Driver for SQL Server'ı kurun ya da Bilnex desteğe başvurun.
Başka bir kurulum sürüyor (1618)Bilgisayarda başka bir kurulum sürdüğu için sürücü kurulamadı; o kurulum bitince programı yeniden açın.
Vazgeç ya da UAC'de Hayırİleti yok; program bugünkü gibi bağlanamaz. Programı yeniden açınca soru tekrar gelir.

Paket nereden alınır?​

Program paketi iki yerde arar: çalıştığı program klasöründeki Utils\msoledbsql.msi ve sunucudaki program klasörünün (bağlantı ayarlarındaki ortak TEMPLATE klasörünün bir üstü) Utils\msoledbsql.msi dosyası. Paket, sürüm güncellemesiyle sunucudaki program klasörüne iner. Yalnız ürün adı Microsoft OLE DB Driver for SQL Server ve sürümü 18 serisinde 18.7.5 veya üstü olan bir paket kabul edilir; aynı adla başka bir dosya konursa önerilmez. Paket yoksa program öneri yapmaz ve eskisi gibi çalışır.

10. Sorun çıkarsa ne yapılır, nereye bakılır?​

  • Günlük: program klasöründe Log\<yıl-ay>\BaglantiKurtarma.log. Kopma, yenileme ve kayıt kararları buraya yazılır; parola yazılmaz.
  • Bir bilgisayarda yeni sürücüyü kapatmak: POSTerminal.ini içinde [Baglanti] bölümüne Surucu=Eski.
  • Bütün bilgisayarlarda kapatmak: aynı satır Bilnex.Ini içinde.
  • Kendiliğinden geri dönüş: yeni sürücü bir sunucuya bağlanamaz ama eskisi bağlanırsa, program o sunucu için eski sürücüye kendiliğinden döner. Giriş hiçbir durumda engellenmez.

Günlük dosyası nasıl okunur?​

Dosya, programın çalıştığı klasörün altında Log\2026-11\BaglantiKurtarma.log gibi aylık bir klasördedir. Son 12 ayın klasörleri saklanır; dosya 20 MB'ı geçince BaglantiKurtarma.old.log adıyla kenara alınır. Her satır tarih ve saatle başlar; metin Türkçe harfsiz yazılır. Bağlantı dizesi ve parola hiçbir satıra yazılmaz.

Örnek (sunucu ve klasör adları kurgusaldır):

2026-11-05 08:58:11.204  Surucu: SQLNCLI11.1 (sunucu ana surum 16) [SUNUCU\BILNEX]
2026-11-05 08:59:12.517 Surucu dagitimi: kurulum teklifi (yerel yonetici) [SQLNCLI10=0 SQLNCLI11=1 MSOLEDBSQL=- MSOLEDBSQL19=-; Windows 10; sunucu 16; yerel yonetici 1; paket \\SUNUCU\Bilnex\Utils\msoledbsql.msi]
2026-11-05 10:14:39.860 Nabiz: sunucuya ulasilamiyor - sistem: Login timeout expired | firma: Login timeout expired
2026-11-05 10:16:41.032 Nabiz: sunucuya yeniden ulasildi (2 basarisiz turdan sonra)
2026-11-05 10:16:41.155 Kurtarma: 6 baglanti sinandi, 6 yenilendi
<baglanti>: sinama "<surucu iletisi>" -> yenilendi (94 ms; ayrilip geri takilan 8, yeniden acilan 0, komut 112)
...
2026-11-05 10:31:02.408 Kayit oncesi: sunucuya ulasilamiyor - Login timeout expired
2026-11-05 10:33:15.771 Kayit kopmasi (<ekran>, adim 4): bekleyen 7 -> 7; erisim var; dogrulama 1 ; karar 0 - <surucu iletisi>

Bu örnekte bilgisayarda yalnız Native Client 11 vardır (MSOLEDBSQL=-), kullanıcı Windows yöneticisidir ve paket bulunmuştur: kurulum önerisi gösterilmiştir. Sabah 10:14'te sunucuya ulaşılamamış, iki dakika sonra ulaşılınca 6 bağlantı kendiliğinden yenilenmiştir. 10:33'teki kayıt onay adımında kopmuş, sonuç kontrol edilmiş ve evrakın kaydedildiği doğrulanmıştır (karar 0).

Satır başıAnlamı
Surucu:Bu açılışta o sunucu için seçilen sürücü ve sunucunun ana sürümü (13 = SQL Server 2016, 14 = 2017, 15 = 2019, 16 = 2022, 17 = 2025). Sonunda köşeli parantez içinde sunucu adı. (eski surucu zorlandi) = Surucu=Eski ayarı ya da geri dönüş; SQL 2016 alti = sunucu eski; … acilamadi, … acti - bu bilgisayarda eski surucuye donuldu = kendiliğinden geri dönüş; sunucuya iki surucuyle de ulasilamadi = sunucu o an yoktu, karar bir dakika sonra yeniden verilir.
Surucu: ini [Baglanti] Surucu=EskiSürücü seçimi ayarla kapatılmış.
Surucu dagitimi:Kurulum önerisinin kararı ve nedeni (aşağıdaki sorun giderme tablosuna bakın), ardından kurulu sürücüler, Windows ana sürümü (10 = Windows 10 / 11 / Server 2016+), sunucu sürümü, kullanıcının Windows yöneticisi olup olmadığı (1 / 0) ve bulunan paket. Kurulumda kurulum basladi ve msiexec cikis kodu N satırları.
Nabiz:Dakikalık kontrolün durum değişimleri: yalnız ilk "ulaşılamıyor" ve "yeniden ulaşıldı" yazılır, her tur yazılmaz. sistem / firma hangi veritabanına ulaşılamadığını gösterir.
Kurtarma:Kopma iletisi (kopma iletisi - …), kaç bağlantının sınanıp kaçının yenilendiği; altında yenilenen her bağlantı için bir satır. YENILENEMEDI = sunucu yeniden gitti. kullanici programi kapatti = Programı Kapat'a basıldı.
Kopma istisnasiKopma anında açık bağlantıların listesi (sürücü, yeniden bağlanma ayarı, hata). Destek incelemesi içindir.
Kayit oncesi:Kaydet'teki ön kontrol: ulaşılamadı, bağlantı yenilendi ya da bir engel nedeniyle kayıt yapılmadı.
Kayit kopmasiKayıt sırasında kopma: adım (1 işlem başlangıcı, 2 başlık, 3 satırlar, 4 onay), bekleyen satır sayısı önce → sonra, doğrulama (1 kaydedildi, 0 kaydedilmedi, -1 belirlenemedi) ve karar (0 kaydedildi, 1 bilgiler korundu, 2 kaydedilmedi, 3 doğrulanamadı).

Sorun giderme tablosu​

BelirtiOlası nedenNe yapılır
Sabah ilk kayıtta birkaç saniye bekleme (imleç SQL bekleme imlecine döner)Gece açık kalan programın bağlantısı bir dakikadan uzun boştaydı; Kaydet önce bağlantıyı denedi ve gerekiyorsa yeniledi.Normaldir; kayıt tek seferde yapılır. Yeni sürücü kuruluysa bekleme daha da kısalır.
Her sabah "kesilmişti, yeniden kuruldu" bilgisiGece bakımı / sunucu yeniden başlatma, ya da ağ cihazının boştaki bağlantıyı kesmesi. Bilgisayarda eski sürücü (Native Client) kullanılıyor.Bilgi zararsızdır: son işlemi tekrarlayın. Kalıcı çözüm için yeni sürücüyü kurun; günlükte Surucu: MSOLEDBSQL … görünmeli.
Yeniden Bağlan penceresi sürekli geri geliyorSunucuya gerçekten ulaşılamıyor: ağ / VPN kopuk, sunucu kapalı ya da SQL Server hizmeti durmuş.Aynı ağdaki başka bir bilgisayarın programa girebildiğine bakın. Ağı / VPN'i, sunucuyu ve SQL Server hizmetini kontrol edin; düzeldikten sonra Yeniden Bağlan. Kaydedilmemiş bilgi varsa Programı Kapat'a basmayın.
"kısa bir kesinti oldu" bilgisi ara ara çıkıyorYeni sürücü bağlantıyı kendisi kurdu ama kopmadan sonraki ilk işlem düşmüştü. Ya da hata başka bir sunucudan geldi (bkz. Sınırlar).Son işlemi tekrarlayın. Çok sık çıkıyorsa ağı inceleyin; Ayrıntı satırını ve günlüğü desteğe iletin.
"Sunucuya ulaşılamıyor; evrak kaydedilmedi"Kaydet'teki ön kontrol sunucuya 5 saniyede ulaşamadı.Bilgiler ekranda; bağlantı gelince Kaydet'e yeniden basın.
Kayıttan sonra "yarıda kaldı … kayıt yapılmadı"Önceki kayıt kopma yüzünden yarıda kaldı (soru 7).Evrakı kaydetmeden kapatın, listeden kontrol edin, yeniden açıp değişiklikleri girin.
Bütün evrak ekranları "bu ekran kaydedilmez" diyorKopma anında bir çek / senet bordrosu ya da makbuz düzenlemesi açıktı (soru 8).Açık evrak ekranlarını kaydetmeden kapatıp yeniden açın.
Şimdi Kur önerisi gelmiyorGünlükteki Surucu dagitimi: satırının nedenine bakın: surucu yeterli (zaten kurulu), … surucu onerilmez (Native Client) (sunucu SQL 2016 altı), Windows ana surum … < 10, sunucu surumu bilinmiyor, uygun paket … bulunamadi, teklif … tarihinde reddedildi (30 gun), teklif bugun gosterildi, Windows yoneticisi degil, ini [Baglanti] Surucu=Eski - bakilmadi. Satır hiç yoksa ilk dakikalık kontrol başarılı olmamıştır.Nedene göre: paketi Utils klasörüne koyun, programı Windows yöneticisi hesabıyla açın, ya da paketi elle kurun (BT sorumlusu için). Reddedilen öneriyi hemen yeniden görmek için POSTerminal.ini'deki SurucuTeklifRet satırını silin.
Kurulum "hata kodu 1603" gibi bir kodla bittiWindows Installer kurulumu tamamlayamadı (ör. kullanıcı yönetici grubunda değil).Bildirime tıklayıp Günlüğü Aç; günlüğü desteğe iletin ya da paketi bir Windows yöneticisiyle elle kurun.
Yeni sürücü kurulduktan sonra bağlanamıyorYeni sürücü bu sunucuya açılmıyor.Program bunu girişte kendisi fark eder: Native Client açıyorsa o bilgisayar o sunucu için eski sürücüye döner (günlükte eski surucuye donuldu), giriş engellenmez. Döndürmediyse o bilgisayarda POSTerminal.ini [Baglanti] bölümüne Surucu=Eski yazın ve günlüğü desteğe iletin.
Sürücü güncellendi ama program hâlâ eski sürücüyle bağlanıyorBu bilgisayarda o sunucu için geri dönüş işareti var ya da Surucu=Eski yazılı.Geri dönüş, sürücü sürümü değişince kendiliğinden yeniden denenir. Surucu=Eski satırını POSTerminal.ini'den ve Bilnex.Ini'den kaldırın; programı yeniden açın.
Bir liste ya da rapor açılırken ekran yine dakikalarca beklediAğ sessizce donmuştu (bağlantı kopmamış ama cevap gelmiyor); kullanıcının açtığı ekranlar bu durumda sürücünün zaman aşımını bekleyebilir (Sınırlar).Ağı kontrol edin. Bekleme bitince program bağlantıyı yeniler.

BT sorumlusu için​

Gereksinimler

KonuAyrıntı
WindowsYeni sürücü için Windows 10 / 11 ya da Windows Server 2016 ve üstü. Daha eski Windows'ta Native Client gerekir; korumalar yine geçerlidir.
SQL ServerYeni sürücü için SQL Server 2016 – 2025. 2016 altında program Native Client'ta kalır.
Ağ / güvenlik duvarıYeni bir port gerekmez: aynı SQL Server bağlantısı kullanılır. Program açıkken dakikada iki kısa ömürlü bağlantı açılır (sistem ve firma veritabanı); sunucuda giriş denetimi yapıyorsanız giriş günlüğü buna göre büyür. İstemcilerin sunucudaki program klasöründe Utils\msoledbsql.msi dosyasını okuyabilmesi gerekir.
PaketMicrosoft OLE DB Driver for SQL Server 18.7.6 x64, Microsoft imzalı. Sürüm güncellemesiyle Utils klasörüne gelir.

Toplu / elle kurulum: sürücüyü Windows yöneticisi olarak elle de kurabilirsiniz. Programın kullandığı sessiz kurulum komutu şudur:

msiexec /i "msoledbsql.msi" /qn /norestart IACCEPTMSOLEDBSQLLICENSETERMS=YES /l*v "msoledbsql_kurulum.log"

Kurulum yönetici yetkisi ister; yönetici olmayan bir hesaptan çalıştırılırsa hiçbir değişiklik yapmadan 1603 koduyla durur. Kurulumdan sonra program bir sonraki açılışta yeni sürücüyü kendisi seçer; ayrıca ayar gerekmez. Terminal sunucusunda yönetici olmayan kullanıcılar öneri görmediği için sürücüyü sunucunun yöneticisi kurmalıdır.

Ayarlar ([Baglanti] bölümü)

POSTerminal.ini programın çalıştığı klasördedir ve o bilgisayara özeldir. Bilnex.Ini bağlantı ayarlarında gösterilen ortak klasördedir (genellikle sunucudaki TEMPLATE klasörü) ve bütün bilgisayarlar için geçerlidir. Tarihler yyyy-aa-gg biçimindedir. Otomatik satırları program kendisi yazar; elle değiştirmeniz gerekmez, silmek o kuralı sıfırlar. <SUNUCU> sunucu adının harf ve rakam dışındaki karakterleri _ yapılmış büyük harfli hâlidir (SUNUCU\BILNEX → SUNUCU_BILNEX).

DosyaAnahtarNe işe yararVarsayılan
Bilnex.IniSurucuEski = bütün bilgisayarlarda sürücüye dokunulmaz, öneri yapılmaz. Program ilk okumada satırı Otomatik olarak kendisi yazar.Otomatik
POSTerminal.iniSurucuEski = bu bilgisayarda sürücüye dokunulmaz, öneri yapılmaz.Boş (otomatik)
POSTerminal.iniGeriDonus_<SUNUCU>Otomatik: bu bilgisayar bu sunucuda eski sürücüye döndü. Değer, açılamayan yeni sürücünün sürümüdür; sürücü güncellenince yeniden denenir. Silinirse sonraki açılışta yeniden denenir.Yok
POSTerminal.iniSunucuSurum_<SUNUCU>Otomatik: sunucunun SQL Server ana sürümü (13 = 2016 … 17 = 2025). Sunucu yükseltilince sonraki açılışta güncellenir.Yok
POSTerminal.iniSurucuTeklifRetOtomatik: kurulum önerisinin reddedildiği (Daha Sonra / UAC Hayır) tarih; 30 gün öneri yok.Yok
POSTerminal.iniSurucuTeklifGosterimOtomatik: önerinin son gösterildiği tarih; aynı gün yeniden gösterilmez.Yok
POSTerminal.iniSurucuYoneticiBilgiOtomatik: ERP Yöneticisine "bu bilgisayara kurulması önerilir" bilgisinin son tarihi; 30 günde bir.Yok
POSTerminal.iniSunucuYukseltmeBilgiOtomatik: ERP Yöneticisine "SQL Server 2016 veya üstü önerilir" bilgisinin son tarihi; 30 günde bir.Yok
POSTerminal.iniSurucuDagitimDenemeYalnız destek / test denemesi içindir: öneri kararını deneme amaçlı değiştirir, günlükte DENEME diye görünür. Canlı kullanımda bulunmamalıdır.Yok

Bağlantı ayarlarında sağlayıcı elle Native Client dışında bir şeye (ör. SQLOLEDB) çevrilmişse program sürücüye dokunmaz.

Sınırlar​

  • Yalnız Bilnex V5 (BilnexErp): V2 / V3 ürünleri (Pos, PosLite, Restoran, Plus vb.) bu korumaları içermez; eskisi gibi Native Client ile çalışır. BilnexErp içindeki perakende satış ekranı kaydetmeden önce kontrol edilir (soru 5).
  • Ayrı programlar: Replikasyon ve diğer yardımcı servisler ayrı programlardır; bu makaledeki davranışlar onlarda geçerli değildir.
  • Kullanıcının açtığı ekranlar sessiz donmada bekleyebilir: ağ bağlantıyı koparmadan cevap vermeyi keserse (veri gidiyor ama yanıt gelmiyor), o anda açılan bir liste, rapor ya da F10 araması sürücünün zaman aşımını bekleyebilir (ölçümde 4–5 dakika). Arka plan işleri ve Kaydet bu durumda beklemez; bekleme bitince program bağlantıyı yeniler.
  • Kayıt öncesi kontrol yalnız evrak ekranlarında ve perakende satışta: stok / cari kartları gibi kart ekranları ve toplu işlem ekranları bu ön kontrolden geçmez. Kopmada bunlar da Türkçe bilgi verir, bağlantılar yenilenir; son işlemi tekrarlamanız gerekir.
  • Perakende satışta kayıt sırasındaki kopma eskisi gibi Satış Kaydedilemedi ile sonuçlanır; yazarkasaya (ÖKC) gönderilmiş bir fiş için ayrıca uyarı verilmez.
  • Satırlar gönderildikten sonraki kopma ekrandaki evrakı kurtaramaz: evrak kapatılıp yeniden girilir (soru 7). Kayıt öncesi kontrol bu riskin penceresini saniyelere indirir.
  • Açık işlem kurtarılamaz: bordro / makbuz düzenlemesindeki açık işlem kopmada sunucuda geri alınır (soru 8).
  • Başka sunucudan gelen hata: merkez sunucu gibi başka bir sunucuya bağlanan bir işlem kopma hatası verirse program o sunucuya dokunmaz; "kısa bir kesinti oldu" bilgisi çıkar, asıl hata Ayrıntı satırındadır.
  • Kurtarma işlemi tekrarlamaz: program yarım kalan işinizi kendisi yeniden yapmaz; özellikle evrak kaydı hiçbir zaman otomatik tekrarlanmaz (mükerrer kayıt olmasın diye).

İlgili sayfalar​