aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Database/Implementation
diff options
context:
space:
mode:
authorMachiavelli <none@none>2010-12-19 15:48:55 +0100
committerMachiavelli <none@none>2010-12-19 15:48:55 +0100
commite2a8dfffbec626186f6b93894aec1353774ed99b (patch)
tree2465d2e4f67ee3d49335c2614470d161a1f6a470 /src/server/shared/Database/Implementation
parent14a480cb13d356e70822317df94e8fa1e7d79e84 (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')
-rwxr-xr-xsrc/server/shared/Database/Implementation/CharacterDatabase.cpp4
-rwxr-xr-xsrc/server/shared/Database/Implementation/LoginDatabase.cpp3
-rwxr-xr-xsrc/server/shared/Database/Implementation/WorldDatabase.cpp3
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);
/*
##################################