diff options
| author | Machiavelli <none@none> | 2010-12-19 15:48:55 +0100 |
|---|---|---|
| committer | Machiavelli <none@none> | 2010-12-19 15:48:55 +0100 |
| commit | e2a8dfffbec626186f6b93894aec1353774ed99b (patch) | |
| tree | 2465d2e4f67ee3d49335c2614470d161a1f6a470 /src/server/shared/Database/Implementation | |
| parent | 14a480cb13d356e70822317df94e8fa1e7d79e84 (diff) | |
Core/DBLayer:
- Add generic HandleMySQLErrno() method.
- Add the ability to re-execute a certain statement if errorhandler resolved the situation succesfuly.
- Add support for MySQL errno´s 2006, 2013, 2048, 2055 - fixes automatic reconnection behaviour.
- Cleanup in affected code
NOTE: You should still be smart enough to configure your worldserver and authserver´s MaxPingTime to be lower than your MySQL´s wait_time.
--HG--
branch : trunk
Diffstat (limited to 'src/server/shared/Database/Implementation')
3 files changed, 7 insertions, 3 deletions
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp index 5e5ab97e075..af7d7201d4f 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp @@ -22,7 +22,9 @@ bool CharacterDatabaseConnection::Open() if (!MySQLConnection::Open()) return false; - m_stmts.resize(MAX_CHARACTERDATABASE_STATEMENTS); + if (!m_reconnecting) + m_stmts.resize(MAX_CHARACTERDATABASE_STATEMENTS); + /* ################################## LOAD YOUR PREPARED STATEMENTS HERE diff --git a/src/server/shared/Database/Implementation/LoginDatabase.cpp b/src/server/shared/Database/Implementation/LoginDatabase.cpp index 33aa650f9d9..794f156a417 100755 --- a/src/server/shared/Database/Implementation/LoginDatabase.cpp +++ b/src/server/shared/Database/Implementation/LoginDatabase.cpp @@ -22,7 +22,8 @@ bool LoginDatabaseConnection::Open() if (!MySQLConnection::Open()) return false; - m_stmts.resize(MAX_LOGINDATABASE_STATEMENTS); + if (!m_reconnecting) + m_stmts.resize(MAX_LOGINDATABASE_STATEMENTS); /* ################################## diff --git a/src/server/shared/Database/Implementation/WorldDatabase.cpp b/src/server/shared/Database/Implementation/WorldDatabase.cpp index 2b83b210bc5..8be56873278 100755 --- a/src/server/shared/Database/Implementation/WorldDatabase.cpp +++ b/src/server/shared/Database/Implementation/WorldDatabase.cpp @@ -22,7 +22,8 @@ bool WorldDatabaseConnection::Open() if (!MySQLConnection::Open()) return false; - m_stmts.resize(MAX_WORLDDATABASE_STATEMENTS); + if (!m_reconnecting) + m_stmts.resize(MAX_WORLDDATABASE_STATEMENTS); /* ################################## |
