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.
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:
| Neden | Ne 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üşmesi | Uzaktan çalışan bilgisayarın bağlantısı kesilir; VPN geri gelince sunucuya yeniden ulaşılır. |
| Bilgisayarın uykuya geçmesi | Uyanı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ı kesmesi | Program 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:
- 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).
- Sunucuya ulaşılıp ulaşılamadığı ekranı bekletmeden, ayrı bir bağlantıyla en fazla 5 saniye denenir.
- 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).
- Bağlantı koptuğu için okunamayan listeler yeniden açılır.
- Sonuç kullanıcıya söylenir.
Ekranda görebileceğiniz bilgiler:
| Durum | Ekranda gördüğünüz |
|---|---|
| Bir işlem kopma hatası verdi, bağlantılar yenilendi | Sunucu 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 geldi | Ekranı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ıyor | Yeniden 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üresi | Bağ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 edilmesi | Ağ geri geldikten sonra en geç 120 saniye içinde (ölçümde ~45 saniye) |
| Bu kontrolün yaptığı işler | Oturumunuzun "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 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üğme | Ne olur |
|---|---|
| Yeniden Bağlan | Sunucu 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ı Kapat | Program 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 kapatmak | Program 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:
| Durum | Sonuç |
|---|---|
| Bağlantı kopuk | Bağlantı satırlar korunarak yenilenir ve kayıt tek seferde yapılır. |
| Sunucuya ulaşılamıyor | Yaklaşı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 durum | Ekranda gördüğünüz | Ne yapmalı |
|---|---|---|
| Sunucuya hiçbir şey gitmemişti | Bilgiler korundu | Kaydet'e yeniden basın. |
| Kayıt tamamlanmıştı | Evrakın kaydedildiği doğrulandı | Bir şey yapmayın. |
| Kayıt tamamlanmadı | Evrak kaydedilmedi | Evrakı 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ı kuruldu | Sunucu 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 yok | Sunucu 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). |
| Kaydedilmedi | Sunucu 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.
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:
| Durum | Ne olur |
|---|---|
| Kullanıcı Windows yöneticisi | Giriş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 eski | Eski sürücüde kalınır; ERP Yöneticisine sunucuyu yükseltme önerisi verilir. |
| Bilgisayarda hiç SQL sürücüsü yok | Program 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 etmesi | Kopmada her zaman bir bilgi penceresi görülür. | Çoğu kopmada hiçbir şey görülmez. |
| 1–8. sorulardaki korumalar | Geçerli | Geçerli |
| Açık işlem / sunucuda tutulan geçici veri | Kurtarılamaz (Bilnex bağlantıyı yeniler, işlem geri alınmıştır) | Kurtarılamaz (aynı) |
| Desteklediği sunucu | SQL Server 2016 altı dahil | SQL Server 2016 – 2025 |
| Desteklediği Windows | Windows 10 öncesi dahil | Windows 10 / 11, Windows Server 2016 ve üstü |
| Kurulum | Bugü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)
-
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.
-
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.
-
Ş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.
-
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 |
|---|---|
| 0 | Sürücü kuruldu. Program bir sonraki açılışında yeni sürücüyle bağlanacak. |
| 3010, 1641 | Sü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. |
| 1618 | Bilgisayarda 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 kodlar | Sü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.iniiçinde[Baglanti]bölümüneSurucu=Eski. - Bütün bilgisayarlarda kapatmak: aynı satır
Bilnex.Iniiç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=Eski | Sü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 istisnasi | Kopma 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 kopmasi | Kayı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
| Belirti | Olası neden | Ne 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" bilgisi | Gece 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 geliyor | Sunucuya 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ıyor | Yeni 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" diyor | Kopma 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 gelmiyor | Gü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 bitti | Windows 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ıyor | Yeni 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ıyor | Bu 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 bekledi | Ağ 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
| Konu | Ayrıntı |
|---|---|
| Windows | Yeni 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 Server | Yeni 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. |
| Paket | Microsoft 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).
| Dosya | Anahtar | Ne işe yarar | Varsayılan |
|---|---|---|---|
Bilnex.Ini | Surucu | Eski = bütün bilgisayarlarda sürücüye dokunulmaz, öneri yapılmaz. Program ilk okumada satırı Otomatik olarak kendisi yazar. | Otomatik |
POSTerminal.ini | Surucu | Eski = bu bilgisayarda sürücüye dokunulmaz, öneri yapılmaz. | Boş (otomatik) |
POSTerminal.ini | GeriDonus_<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.ini | SunucuSurum_<SUNUCU> | Otomatik: sunucunun SQL Server ana sürümü (13 = 2016 … 17 = 2025). Sunucu yükseltilince sonraki açılışta güncellenir. | Yok |
POSTerminal.ini | SurucuTeklifRet | Otomatik: kurulum önerisinin reddedildiği (Daha Sonra / UAC Hayır) tarih; 30 gün öneri yok. | Yok |
POSTerminal.ini | SurucuTeklifGosterim | Otomatik: önerinin son gösterildiği tarih; aynı gün yeniden gösterilmez. | Yok |
POSTerminal.ini | SurucuYoneticiBilgi | Otomatik: ERP Yöneticisine "bu bilgisayara kurulması önerilir" bilgisinin son tarihi; 30 günde bir. | Yok |
POSTerminal.ini | SunucuYukseltmeBilgi | Otomatik: ERP Yöneticisine "SQL Server 2016 veya üstü önerilir" bilgisinin son tarihi; 30 günde bir. | Yok |
POSTerminal.ini | SurucuDagitimDeneme | Yalnı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
- Programa giriş
- Sistemdeki Kullanıcılar — dakikalık "buradayım" bildirimi ve oturumlar
- Terminal kurulumu — istemci bilgisayarın sunucuya bağlanması
- Kurulum Sihirbazı
- Şubeli Çalışma (Replikasyon)