max connection reached. MAX_ALLOW_USER

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 56

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0

230656_5cc5ddcb1c371077cdd5ff20835281ed.png



bu konuya istaneden tunganın çözümünü araştırdım, ribunum sourceyi incelediğimde tungada ribunumun çözümü paylaşmış ama ribunumdaki biraz daha detaylı
biraz daha detaylı olarak paylaşmak istedim.

desc_manager.cpp de

230648_11090a15444528bf2921775efdcbfd6e.png


230650_ba70ee9646f45de84409e499cb66c7e9.png


işaretlenen yerleri kaldırın
burdaki ribunum source incelendi
eksikbi yer olursa sourceden tamamlayabilrisiniz

Sözlerden biri
max connection reached. MAX_ALLOW_USER Hatası Nedir?
Metin2 özel sunucu geliştirme sürecinde karşılaşılan max connection reached. MAX_ALLOW_USER hatası, sunucuya bağlanmaya çalışan kullanıcı sayısının, sistem tarafından belirlenen maksimum kullanıcı sınırını aşmasından dolayı ortaya çıkar. Bu durum, hem oyun sunucusunun hem de veritabanı (DB) bağlantısının yapılandırmasında bulunan sınırlamalardan kaynaklanabilir. Özellikle yoğun trafiğe sahip Metin2 özel sunucularında bu hata sıkça görülebilir.

MAX_ALLOW_USER Nedir?
MAX_ALLOW_USER, MySQL gibi veritabanı yönetim sistemlerinde tanımlanan bir parametredir. Bu değer, bir kullanıcı hesabının aynı anda kaç bağlantı kurabileceğini belirler. Eğer bir Metin2 oyun sunucusu, auth veya game sunucusu üzerinden veritabanına bağlanırken bu sınırı aşarsa, max connection reached. MAX_ALLOW_USER hatası alınır. Bu durumda sunucu, yeni oyuncuların giriş yapmasını engeller.

Hatanın Nedenleri
- Veritabanı kullanıcı hesabı için belirlenen maksimum bağlantı sınırına ulaşılmıştır.
- Sunucu yapılandırmasında çok sayıda eşzamanlı veritabanı bağlantısı açılmıştır.
- Bağlantılar doğru kapatılmadığı için sistemde açık kalmaktadır.
- Oyun sunucusu üzerinde çok fazla oyuncu aktifse, bu da bağlantı sayısını artırabilir.

Çözüm Yöntemleri
1. Veritabanı Kullanıcı Ayarlarını Kontrol Etme: MySQL veya MariaDB sunucunuzda kullanılan auth veya game sunucusu için tanımlı kullanıcıların MAX_USER_CONNECTIONS ayarını gözden geçirin. Gerekirse bu değeri artırabilirsiniz. Örneğin:
Kod:
[B]ALTER USER 'metin2_user'@'localhost' WITH MAX_USER_CONNECTIONS 100;[/B]


2. Sunucu Yapılandırması[/COORD]
Metin2 server_src dosyalarında, auth ve game sunucularının veritabanı bağlantıları kontrol edilmeli. Bağlantıların doğru kapatıldığından emin olunmalıdır. Özellikle PyMySQL veya benzeri Python kütüphaneleriyle yapılan bağlantılar için connection.close() komutlarının uygun yerlerde çağrılması gerekir.

3. Bağlantı Havuzu Kullanımı
Python tabanlı sunucularda, örneğin py_root veya uiscript sistemlerinde, veritabanı bağlantı havuzu (connection pooling) kullanmak, bağlantı sayısını optimize edebilir. Bu sayede her işlemde yeni bağlantı açmak yerine, önceden tanımlanmış bağlantılar üzerinden işlemler yapılabilir.

Metin2 Sunucularında Performans Optimizasyonu
Sunucu performansını artırmak ve bu hatayı tekrar yaşamamak adına, game core ve db core yapıları optimize edilmelidir. Özellikle channel yapıları, çoklu sunucu sistemleri ve martysama tarzı gelişmiş sistemlerde, her kanalın veritabanı bağlantısı ayrı ayrı kontrol edilmeli ve gerekirse merkezi bağlantı yönetimi yapılmalıdır.

Hata Takibi ve Günlük Kayıtları
Auth.log veya game.log gibi dosyalarda bu hata ile ilgili detaylı günlük kayıtları incelenmelidir. Bu sayede hangi modülün veya sistem parçasının fazladan bağlantı açtığı tespit edilebilir. Özellikle C++ source edit sırasında dikkat edilmelidir ki, her bağlantı nesnesi sonlandırılmadan sistemde kalmamalıdır.

Sonuç
max connection reached. MAX_ALLOW_USER hatası, Metin2 özel sunucularında veritabanı yönetimiyle doğrudan ilişkilidir. Bu hatayı çözmek için hem veritabanı yapılandırması hem de sunucu tarafındaki kaynak kodlar dikkatlice incelenmeli. Doğru yapılandırma ile sunucunuzun daha stabil ve yüksek performanslı çalışması sağlanabilir.


What is max connection reached. MAX_ALLOW_USER Error?
The max connection reached. MAX_ALLOW_USER error occurs during Metin2 private server development when the number of users attempting to connect to the server exceeds the maximum user limit set by the system. This issue can stem from limitations in both the game server and database (DB) configurations. This error frequently appears on high-traffic Metin2 private servers.

What is MAX_ALLOW_USER?
MAX_ALLOW_USER is a parameter defined in database management systems like MySQL. It specifies how many simultaneous connections a user account is allowed to make. If a Metin2 game server, whether auth or game server, exceeds this limit while connecting to the database, the max connection reached. MAX_ALLOW_USER error will occur. In such cases, the server prevents new players from logging in.

Causes of the Error
- The maximum connection limit for the database user has been reached.
- Numerous concurrent database connections have been opened within the server configuration.
- Connections are not properly closed and remain open in the system.
- High player activity may increase the number of active connections.

Solution Methods
1. Check Database User Settings: Review the MAX_USER_CONNECTIONS setting for the user account used by your auth or game server in MySQL or MariaDB. Increase this value if necessary. For example:
Kod:
[B]ALTER USER 'metin2_user'@'localhost' WITH MAX_USER_CONNECTIONS 100;[/B]


2. Server Configuration
In Metin2 server_src files, ensure that database connections made by the auth and game servers are checked. Connections must be closed properly. Especially in Python libraries like PyMySQL, the connection.close() command should be called at appropriate points.

3. Connection Pooling Usage
In Python-based servers, such as those using py_root or uiscript systems, implementing database connection pooling can optimize the number of connections. Instead of opening new connections for each operation, predefined connections can be reused.

Performance Optimization in Metin2 Servers
To enhance server performance and prevent this error from recurring, game core and db core structures should be optimized. Particularly in multi-server setups and advanced systems like martysama, each channel's database connection should be monitored separately, and centralized connection management might be required.

Error Tracking and Log Files
Detailed logs in files such as auth.log or game.log should be reviewed. This helps identify which module or part of the system is opening excessive connections. Special attention must be paid during C++ source edits to ensure that every connection object is properly terminated and does not remain open in the system.

Conclusion
The max connection reached. MAX_ALLOW_USER error is directly related to database management in Metin2 private servers. To resolve this issue, both database configurations and the server-side source code must be carefully examined. Proper configuration ensures that your server runs more stably and with higher performance.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt