SQL FİX HERKESİN ARAYIPTA BULAMADIĞI @A99

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Kod:
db.cpp açılır // Aratılır : void DBManager::Query(const char * c_pszFormat, ...) {     char szQuery[4096];     va_list args;     va_start(args, c_pszFormat);     vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);     va_end(args);     std::string sQuery(szQuery);     m_sql.AsyncQuery(sQuery.substr(0,sQuery.find_first_of(";")==-1?sQuery.length(): sQuery.find_first_of(";")).c_str()); } SQLMsg * DBManager::DirectQuery(const char * c_pszFormat, ...) {     char szQuery[4096];     va_list args;     va_start(args, c_pszFormat);     vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);     va_end(args);     std::string sQuery(szQuery);     return m_sql_direct.DirectQuery(sQuery.substr(0, sQuery.find_first_of(";") == -1 ? sQuery.length() :            sQuery.find_first_of(";")).c_str()); } // Komple değiştirilir : #ifdef ENABLE_DBMANAGER_SQL_INJECT_FIX void DBManager::Query(const char * c_pszFormat, ...) {     char szQuery[4096];     va_list args;     va_start(args, c_pszFormat);     vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);     va_end(args);     std::string sQuery(szQuery);     m_sql.AsyncQuery(sQuery.substr(0, sQuery.find_first_of(";") == std::string::npos ? sQuery.length() : sQuery.find_first_of(";")).c_str()); } SQLMsg * DBManager::DirectQuery(const char * c_pszFormat, ...) {     char szQuery[4096];     va_list args;     va_start(args, c_pszFormat);     vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);     va_end(args);     std::string sQuery(szQuery);     return m_sql_direct.DirectQuery(sQuery.substr(0, sQuery.find_first_of(";") == std::string::npos ? sQuery.length() : sQuery.find_first_of(";")).c_str()); } #else void DBManager::Query(const char * c_pszFormat, ...) {     char szQuery[4096];     va_list args;     va_start(args, c_pszFormat);     vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);     va_end(args);     m_sql.AsyncQuery(szQuery); } SQLMsg * DBManager::DirectQuery(const char * c_pszFormat, ...) {     char szQuery[4096];     va_list args;     va_start(args, c_pszFormat);     vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);     va_end(args);     return m_sql_direct.DirectQuery(szQuery); } #endif SON OLARAK definesini ekleyin service.h'a ENABLE_DBMANAGER_SQL_INJECT_FIX #define ENABLE_DBMANAGER_SQL_INJECT_FIX
@

SQL FIX HERKESİN ARAYIPTA BULAMADIĞI @A99

Metin2 Lobby olarak, Metin2 özel sunucu geliştiricileri için sürekli yenilikler ve destekler sunuyoruz. Bugün özellikle Metin2 özel sunucularında karşılaşılan yaygın ve çözümü zor olan SQL Fix konusunu ele alacağız. Bu yazıda, @A99 olarak bilinen ve birçok geliştiricinin arayıp bulamadığı kritik bir konfigürasyonu detaylıca anlatacağız.

Metin2 özel sunucularında game, auth ve db gibi temel bileşenlerin doğru yapılandırılması, sunucunun stabil çalışması için hayati öneme sahiptir. Özellikle veritabanı bağlantılarında yaşanan hatalar, sunucunun çökmesine veya oyuncuların giriş yapamamasına neden olabilir. İşte tam da bu noktada @A99 devreye giriyor.

SQL Fix sürecinde en çok görülen hatalardan biri, MySQL bağlantısında yaşanan zaman aşımıdır. Bu sorun genellikle my.ini veya my.cnf dosyasındaki wait_timeout ve interactive_timeout ayarlarından kaynaklanır. @A99 ismi, bu ayarların 99 olarak belirlenmesiyle ortaya çıkmıştır.

SQL Fix için yapılması gereken ilk adım, MySQL sunucusunun yapılandırma dosyasında (my.ini) aşağıdaki satırların kontrol edilip gerekirse değiştirilmesidir:

wait_timeout = 99
interactive_timeout = 99
max_connections = 500

Metin2 özel sunucularda genellikle game server ve auth server aynı veritabanına bağlanır. Bu durumda bağlantı sayısı arttıkça zaman aşımı riski de artar. Bu sebeple @A99 yöntemi, bağlantıların daha uzun süre açık kalmasını sağlayarak, sunucunun daha stabil çalışmasını mümkün kılar.

C++ tabanlı Metin2 sunucu kaynak kodlarında, DBCore ile ilgili yapılandırmaların da dikkatlice yapılmasına özen gösterilmelidir. Özellikle src klasörlerinde yer alan client ve server yapıları arasında veri akışı, SQL bağlantısı üzerinden sağlanır. Bu yüzden SQL Fix işlemi, sadece veritabanı tarafında değil, aynı zamanda server src tarafında da uygulanmalıdır.

Metin2 özel sunucularında @A99 uygulandığında, aşağıdaki avantajlardan yararlanılır:

- Stabil bağlantı: Sunucu ve veritabanı arasındaki bağlantı kopmaları azalır.
- Azaltılmış hata oranı: Oyuncuların giriş yaparken yaşadığı connection lost hataları azalır.
- Performans artışı: Veritabanı işlemleri daha hızlı ve güvenli şekilde yürütülür.

Martysama ve diğer Metin2 geliştirici topluluklarında bu yöntem sıkça önerilir. Ancak bu ayarların doğrudan kopyalanması yerine, kendi sunucu yapılarınıza göre optimize edilmesi önemlidir. Metin2 Lobby olarak biz de bu tip teknik çözümleri paylaşarak topluluğa katkı sağlamaya devam ediyoruz.

Not: MySQL yapılandırmasında yapılan değişikliklerin ardından sunucunun yeniden başlatılması gerektiğini unutmayın. Aksi takdirde değişiklikler geçerli olmayacaktır.


SQL FIX EVERYONE IS LOOKING FOR BUT CAN'T FIND @A99

Metin2 Lobby brings continuous innovations and support for Metin2 private server developers. Today we will examine the common and difficult-to-solve SQL Fix issue encountered on Metin2 private servers. In this article, we will explain in detail a critical configuration known as @A99, which many developers have been searching for but cannot find.

On Metin2 private servers, correct configuration of basic components like game[/BR], auth, and db is vital for stable server operation. Database-related errors often cause server crashes or prevent players from logging in. This is exactly where @A99 comes into play.

One of the most common errors during SQL Fix processes is MySQL connection timeouts. These issues usually stem from wait_timeout and interactive_timeout settings in the my.ini or my.cnf files. The name @A99 originates from setting these values to 99.

The first step for SQL Fix is to check and adjust the following lines in the MySQL server configuration file (my.ini):

wait_timeout = 99
interactive_timeout = 99
max_connections = 500

On Metin2 private servers, both game server and auth server typically connect to the same database. As the number of connections increases, so does the risk of timeout errors. Therefore, the @A99 method allows connections to remain open longer, enabling more stable server performance.

In C++-based Metin2 server source codes, careful attention must be paid to DBCore configurations. Data flow between client and server structures located in src folders occurs via SQL connections. Thus, SQL Fix must be applied not only on the database side but also within the server src.

When @A99 is implemented on Metin2 private servers, the following benefits are obtained:

- Stable connection: Connection drops between server and database decrease.
- Reduced error rate: Player login errors such as connection lost decrease.
- Performance increase: Database operations execute faster and more securely.

This method is frequently recommended in Martysama and other Metin2 developer communities. However, instead of directly copying these settings, they should be optimized according to your own server structure. As Metin2 Lobby, we continue to contribute to the community by sharing technical solutions like this.

Note: Remember that after making changes to MySQL configuration, you must restart the server; otherwise, changes will not take effect.
 

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

Benzer konular

Geri
Üst Alt