Ana SayfaRestoran OtomasyonuMasaüstü OtomasyonSambaPOS Restoran Otomasyonunda 'Masaüstü ve El Terminali SQL Bağlantı Zaman Aşımı (Timeout...

SambaPOS Restoran Otomasyonunda ‘Masaüstü ve El Terminali SQL Bağlantı Zaman Aşımı (Timeout Expired)’ Çözüm Rehberi

Author

Date

Category

Soru: Garson Masada Siparişi Onaylarken SambaPOS Neden ‘Timeout Expired’ Hatası Verir ve Sistem Donar?

Cevap: Çok katlı restoranlarda, büyük bahçeli kafelerde ve yoğun paket servis kasalarında garsonlar el terminalleriyle (Android tablet veya Windows el bilgisayarı) sipariş girip ‘Kapat / Onayla’ butonuna bastığında ekranın 15-30 saniye boyunca dönerek donması ve ardından ekrana ‘Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding’ (Yürütme Zaman Aşımına Uğradı / Sunucu Yanıt Vermiyor) kırmızı penceresinin gelerek siparişi masaya kaydetmemesi servis akışını kilitleyen en yaygın veritabanı darboğazıdır. Kasiyer ana kasanın çalıştığını söyler ancak terminaller sürekli kilitlenir. Bu arıza internet kesintisi değil; Microsoft SQL Server Express veritabanındaki Adisyon İşlem Kilitlenmelerinin (Command Timeout) 30 saniye tavanına vurması veya SQL Transaction Log (.ldf) Dosyasının Şişerek Diski Kilitlemesidir.

SQL Server Execution Timeout Kilitlenmesinin Nedenleri

SambaPOS istemcileri ana sunucudaki SQL Server a ADO.NET veri sağlayıcısıyla bağlanır:

  • Standart olarak her SQL sorgusunun tamamlanması için izin verilen maksimum bekleme süresi tam 30 saniyedir.
  • Log Dosyası Boğulması: Veritabanının SAMBAPOS5_log.ldf işlem günlüğü dosyası bakım yapılmadığı için 50 GB – 100 GB boyutuna fırladığında; SQL Server her sipariş girişinde bu devasa kütüğe yazmak için saniyelerce diski kilitler.
  • Terminaller 30 saniye içinde ‘Sipariş Kaydedildi’ cevabı alamayınca zaman aşımı bayrağını çeker ve işlemi iptal eder.

1. Adım: SambaPOS Bağlantı Dizesinde (Connection String) Timeout Süresini 90 Saniyeye Çıkarma

Terminallerin erken pes etmesini engellemek için zaman aşımı eşiği yükseltilir:

  1. Hata veren el terminalinde ve ana kasada C:ProgramDataSAMBAPOSSambaPOS5SambaSettings.txt dosyası Not Defteri ile açılır.
  2. Veritabanı bağlantı dizesinin sonuna şu iki parametre eklenir:
Connection Timeout=60;Command Timeout=90;

Bu ayar, anlık ağ gecikmelerinde veya yoğun hesap kapatma anlarında terminalin bekleme süresini 90 saniyeye esneterek zaman aşımı hatası vermesini engeller.

2. Adım: Şişen SQL Server Log (.ldf) Dosyasını Küçültme (Shrink Log)

Veritabanını ferahlatacak en kritik bakım işlemi SSMS üzerinden yürütülür:

T-SQL Log Temizleme Protokolü:
USE [master];
GO
-- Kurtarma modelini basite çekin:
ALTER DATABASE [SAMBAPOS5] SET RECOVERY SIMPLE;
GO
USE [SAMBAPOS5];
GO
-- Şişen 50 GB lık log dosyasını 10 MB a indirin:
DBCC SHRINKFILE (SAMBAPOS5_log, 10);
GO
-- Tablo indekslerini tazeleyin:
EXEC sp_updatestats;
GO

Komut çalıştığı saniyede diskte onlarca gigabaytlık yer açılır; SQL Server ın disk yazma gecikmesi 500 milisaniyeden 2 milisaniyeye çakılır.

3. Adım: SQL Server Maksimum Bellek Sınırı (Max Server Memory) Kuralı

SQL Server ın ana kasanın tüm RAM ini tüketip Windows u kilitlemesini önlemek için: SSMS te sunucu adına sağ tıklanır -> Properties > Memory sekmesinden ‘Maximum Server Memory’ değeri kasanın toplam RAM inin %70 ine (Örn: 16 GB RAM varsa 11.000 MB a) sabitlenir. El terminallerinden sipariş girildiğinde ekranın tek bir saniye dahi beklemeden siparişi anında onayladığı doğrulanır.

Restoran otomasyonu SQL performans ayarları, SambaPOS el terminali hızlandırma, veritabanı bakım anlaşmaları ve sunucu optimizasyonunda BaykalSoft Veritabanı Hizmetleri uzman kadromuzla iletişime geçebilirsiniz.

Önceki Gönderiler

Önceki Yorumlar