3CX Servisleri Başlamıyor mu? Sinsi “Türkiye” Güncellemesi ve Kesin Çözümü

Son zamanlarda yaşanan bu sorunla ilgili biraz mücadele sonrası yaşananlar.

Eğer Windows Server üzerinde çalışan 3CX santralinizde bir sabah uyandığınızda servislerin durduğunu gördüyseniz ve başlatmaya çalıştığınızda “Hata 1068: Bağımlılık hizmeti veya grubu başlayamadı” uyarısı alıyorsanız, yalnız değilsiniz.

Sorunu çözmek için services.msc üzerinden 3CX PhoneSystem Database Server‘ı veya 3CX PhoneSystem 01 Configuration Server‘ı başlatmayı denediğinizde servis başlıyor gibi yapıp anında geri kapanıyorsa, geçmiş olsun; Microsoft’un meşhur “Türkiye” güncellemesi kurbanı oldunuz!

Peki ne oldu da yıllardır çalışan santral bir anda çöktü? Gelin bu sinsi sorunun kök nedenine ve kesin çözümüne birlikte bakalım.

Sorunun Kök Nedeni: “Turkey” mi, “Türkiye” mi?

Sorun aslında 3CX’in kendisinde değil, altyapısında kullandığı PostgreSQL veritabanı ile Windows’un bölgesel ayarları arasındaki bir dil uyuşmazlığından kaynaklanıyor.

Sistemi ilk kurduğunuzda PostgreSQL, Windows’un bölgesel dil kodlamasını Turkish_Turkey.1254 olarak kendi kalbine mühürler. Ancak Microsoft, yakın zamandaki Windows güncellemeleriyle uluslararası standartlara uymak adına arka plandaki İngilizce “Turkey” kelimelerini resmi olarak “Türkiye” olarak değiştirdi.

Sonuç? Windows güncellendikten sonra PostgreSQL uyanıp işletim sistemine “Bana Turkish_Turkey formatını ver” dediğinde, Windows “Ben artık öyle bir dil tanımıyorum, bende Turkish_Türkiye var” yanıtını veriyor. Dil formatını tanıyamayan veritabanı, veri bozulması riski yaşamamak için kendini güvenli moda alıp anında kapatıyor. Veritabanı kapanınca da ona bağlı olan tüm 3CX servisleri (System Service, Gateway vb.) 1068 hatası vererek çöküyor.

Log dosyalarında (3cxConfSrv.log) şu hatayı görüyorsanız, teşhis %100 doğrudur:

FATAL: database locale is incompatible with operating system DETAIL: The database was initialized with LC_COLLATE "Turkish_Turkey.1254", which is not recognized by setlocale().

Çözüm: Windows’a Eski Dili Yeniden Öğretmek

Veritabanını silip baştan kurmak (ve tüm santral yedeğini riske atmak) yerine, çok daha zarif ve kalıcı bir IT çözümü uygulayacağız: Microsoft’un kendi aracıyla Windows’a eski “Turkey” kelimesini küçük bir yamayla yeniden öğreteceğiz.

  1. Locale Builder’ı İndirin: Sunucunuza Microsoft’un resmi aracı olan Microsoft Locale Builder 2.0‘ı indirin ve kurun.
  2. Yeni Bir Dil Paketi Oluşturun: Programı açın ve ilk ekranda temel dil olarak tr-TR (Türkçe – Türkiye) seçeneğini bularak ilerleyin.
  3. İsimleri Düzenleyin: Karşınıza çıkan Local Names (Yerel İsimler) tablosunda, sadece English (İngilizce) sütununda yazan “Türkiye” kelimelerini silip yerine İngilizce alfabeyle Turkey yazın. (Native sütunundaki Türkçe isimlere dokunmayın).
  4. Yamayı Üretin: Üst menüden Build -> Build Locale Installer seçeneğine tıklayın. Program size masaüstüne kaydetmeniz için ufak bir .msi kurulum dosyası üretecek.
  5. Kurulum ve Yeniden Başlatma: Ürettiğiniz bu .msi dosyasına çift tıklayıp kurun (saniyeler sürecektir). Ardından sunucunuzu yeniden başlatın.

Mutlu Son!

Sunucunuz yeniden açıldığında Windows artık veritabanının aradığı o eski Turkish_Turkey ismini tanıyor olacak. Hizmetler (Services) menüsüne girdiğinizde tüm 3CX servislerinin tıkır tıkır çalıştığını göreceksiniz.

Not: Eğer bu işlemlerden önce veritabanı loglarında (lc_time hatası) saat formatı sorunu gördüyseniz, postgresql.conf dosyası içindeki lc_time değerini 'C' olarak değiştirmeyi de unutmayın.

Umarım bu yazı, çöken 3CX sunucusu başında soğuk terler döken bir sistem yöneticisine ilaç gibi gelir. Sorularınız varsa bize ulaşmaktan çekinmeyin! :)

Yazar: Yayınlanma Tarihi: 16 / Mart / 2026Kategori: 3CX

Makaleyi paylaşmak ister misiniz?