- Katılım
- 23 Eki 2022
- Mesajlar
- 8,861
- Çözümler
- 13
- Tepkime puanı
- 6,494
- Puanları
- 113
- Yaş
- 28
vSRO GS Crash Fix Rehberi
vSRO sunucularında karşılaşılan GameServer (GS) Crash hataları, sunucunun beklenmedik şekilde kapanmasına neden olan en yaygın problemlerdendir. Bu tür çökmeler genellikle veritabanı (Database) yapılandırması, aşırı nesne (Object) yükü, bozuk Forgotten World kayıtları veya TimedJob tablolarındaki hatalardan kaynaklanır.Bu rehberde, en sık karşılaşılan GS Crash nedenlerini ve bunlara yönelik SQL tabanlı çözümleri bulabilirsiniz.
Önemli: Herhangi bir SQL sorgusunu çalıştırmadan önce SRO_VT_SHARD veritabanınızın tam yedeğini almanız önerilir.
1. GS Overload (Aşırı Nesne Yükü) Hatası
Sunucuda çok fazla oyuncu veya canavar aynı bölgede bulunduğunda GameServer'ın nesne belleği (Object Buffer) dolabilir. Özellikle etkinlikler, kalabalık şehirler veya yoğun spawn alanlarında bu durum rastgele GS çökmesine neden olabilir.Belirtiler
- Rastgele GS kapanması
- Kalabalık bölgelerde crash
- Event sırasında GameServer'ın kapanması
- CPU ve RAM kullanımının aniden yükselmesi
Çözüm
Spawn yoğunluğunu azaltarak GameServer üzerindeki yükü hafifletebilirsiniz.SRO_VT_SHARD veritabanında aşağıdaki SQL sorgusunu çalıştırın:
UPDATE dbo.Tab_RefNest
SET dwmaxtotalcount = dwmaxtotalcount / 2
Bu sorgu tüm spawn noktalarındaki maksimum yaratık sayısını %50 azaltarak sunucu üzerindeki yükü düşürür.
2. Forgotten World (FW) 10 Saniye Sonra Çökme Hatası
GameServer sorunsuz açılıyor ancak yaklaşık 10 saniye sonra kapanıyorsa, en yaygın nedenlerden biri bozuk Forgotten World bölge tanımlarıdır.Belirtiler
- GS açılır.
- Yaklaşık 10 saniye sonra kapanır.
- Her açılışta aynı süre sonunda crash oluşur.
Çözüm
Bozuk bölge bağlantısını devre dışı bırakmak için aşağıdaki sorguyu çalıştırın:UPDATE dbo._RefRegionBindAssocServer
SET GOD_WRECK_IN = 0
Bu işlem hatalı Forgotten World bölge atamasını sıfırlayarak çökme sorununu ortadan kaldırabilir.
3. AQ_CharDataSaver / _TIMEDJOB Hatası (Query Error 100)
Bakım sırasında veya oyuncular görev yaparken aşağıdaki hata oluşabilir:AQ_CharDataSaver
_TIMEDJOB
Query Error (100)
Bu hata genellikle _TimedJob tablosundaki bozuk veya gereksiz kayıtların birikmesinden kaynaklanır.
Belirtiler
- Query Error (100)
- GS bakım sırasında kapanıyor
- Quest işlemlerinde crash
- Bellek kullanımında artış
Çözüm
_TimedJob tablosunu temizlemek için aşağıdaki SQL sorgusunu çalıştırın:TRUNCATE TABLE _TimedJob
Bu işlem tabloyu tamamen temizleyerek bozuk zamanlanmış görev kayıtlarını kaldırır.
Not: Bu işlem tüm TimedJob kayıtlarını siler. Sunucunuzda aktif zamanlanmış görevler varsa önce yedek almanız önerilir.
4. Fatal Log Dosyalarını Kontrol Edin
Her GS Crash öncesinde oluşan hata kayıtları genellikle Fatal Log dosyalarında yer alır.Kontrol edilmesi gereken loglar:
- GS Log
- Fatal Error Log
- Agent Log
- MachineManager Log
- GlobalManager Log
İlk hata satırı genellikle gerçek sorunun kaynağını gösterir.
5. Object Sayısını Kontrol Edin
GameServer'ın desteklediği maksimum nesne (Object) sayısı yaklaşık 30.000'dir.Bu sınır aşıldığında:
- GS donabilir.
- Bellek taşması oluşabilir.
- Sunucu aniden kapanabilir.
GameServer konsolunda aşağıdaki komutu kullanarak mevcut nesne sayısını kontrol edebilirsiniz:
/worldstatus
Mümkün olduğunca toplam nesne sayısını 30.000'in altında tutmanız önerilir.
6. SQL İşlemlerinden Önce Yedek Alın
Veritabanında değişiklik yapmadan önce mutlaka SRO_VT_SHARD veritabanının tam yedeğini alın.Yedek alınması önerilen tablolar:
- _RefRegionBindAssocServer
- Tab_RefNest
- _TimedJob
- _RefObjCommon
- _RefMonster
- _RefRegion
Beklenmeyen bir durumda yedekten geri dönmek veri kaybını önleyecektir.
GS Crash Sorunlarının Yaygın Nedenleri
En sık karşılaşılan nedenler şunlardır:- Aşırı mob spawn yoğunluğu
- 30K Object limitinin aşılması
- Forgotten World bölge hataları
- _TimedJob tablosunun bozulması
- Hatalı Database kayıtları
- Eksik Resource bağlantıları
- Yanlış Region tanımları
- Bozuk NPC veya Monster kayıtları
- Bellek taşması (Memory Overflow)
- SQL veri tutarsızlıkları
