public bool SetTransExpired(int deadTime) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.SetTransExpired(deadTime)); } #pragma warning disable CS0168 // Variable ist deklariert, wird jedoch niemals verwendet catch (MySql.Data.MySqlClient.MySqlException e) { #pragma warning restore CS0168 // Variable ist deklariert, wird jedoch niemals verwendet dbm.Manager.Reconnect(); return(dbm.Manager.SetTransExpired(deadTime)); } catch (Exception e) { m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public TransactionData FetchTransaction(UUID transactionID) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.FetchTransaction(transactionID)); } #pragma warning disable CS0168 // Variable ist deklariert, wird jedoch niemals verwendet catch (MySql.Data.MySqlClient.MySqlException e) { #pragma warning restore CS0168 // Variable ist deklariert, wird jedoch niemals verwendet dbm.Manager.Reconnect(); return(dbm.Manager.FetchTransaction(transactionID)); } catch (Exception e) { m_log.Error(e.ToString()); return(null); } finally { dbm.Release(); } }
public bool updateTransactionStatus(UUID transactionID, int status, string description) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.updateTransactionStatus(transactionID, status, description)); } #pragma warning disable CS0168 // Variable ist deklariert, wird jedoch niemals verwendet catch (MySql.Data.MySqlClient.MySqlException e) { #pragma warning restore CS0168 // Variable ist deklariert, wird jedoch niemals verwendet dbm.Manager.Reconnect(); return(dbm.Manager.updateTransactionStatus(transactionID, status, description)); } catch (Exception e) { m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
private MySQLSuperManager GetLockedConnection() { int lockedCons = 0; while (true) { m_lastConnect++; // Overflow protection if (m_lastConnect == int.MaxValue) { m_lastConnect = 0; } MySQLSuperManager x = m_dbconnections[m_lastConnect % m_maxConnections]; if (!x.Locked) { x.GetLock(); return(x); } lockedCons++; if (lockedCons > m_maxConnections) { lockedCons = 0; System.Threading.Thread.Sleep(1000); // Wait some time before searching them again. m_log.Debug( "WARNING: All threads are in use. Probable cause: Something didnt release a mutex properly, or high volume of requests inbound."); } } }
public bool giveMoney(UUID transactionID, string receiverID, int amount) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.giveMoney(transactionID, receiverID, amount)); } #pragma warning disable CS0168 // Variable ist deklariert, wird jedoch niemals verwendet catch (MySql.Data.MySqlClient.MySqlException e) { #pragma warning restore CS0168 // Variable ist deklariert, wird jedoch niemals verwendet dbm.Manager.Reconnect(); return(dbm.Manager.giveMoney(transactionID, receiverID, amount)); } catch (Exception e) { m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public bool TryAddUserInfo(UserInfo user) { MySQLSuperManager dbm = GetLockedConnection(); try { if (dbm.Manager.fetchUserInfo(user.UserID) != null) { m_log.InfoFormat("[Money DB] Found user \"{0}\", now update information", user.Avatar); if (m_moneyManager.updateUserInfo(user)) { return(true); } } else if (dbm.Manager.addUserInfo(user)) { m_log.InfoFormat("[Money DB] Unable to find user \"{0}\", add it to DB successfully", user.Avatar); return(true); } return(false); } catch (Exception e) { dbm.Manager.Reconnect(); // Fumi.Iseki m_moneyManager.Reconnect(); m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public bool setTotalSale(TransactionData transaction) { if (transaction.Receiver == transaction.Sender) { return(false); } if (transaction.Sender == UUID.Zero.ToString()) { return(false); } MySQLSuperManager dbm = GetLockedConnection(); int time = (int)((DateTime.UtcNow.Ticks - TicksToEpoch) / 10000000); try { return(dbm.Manager.setTotalSale(transaction.Receiver, transaction.ObjectUUID, transaction.Type, 1, transaction.Amount, time)); } catch (MySql.Data.MySqlClient.MySqlException e) { dbm.Manager.Reconnect(); return(dbm.Manager.setTotalSale(transaction.Receiver, transaction.ObjectUUID, transaction.Type, 1, transaction.Amount, time)); } catch (Exception e) { m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public bool setTotalSale(TransactionData transaction) { if (transaction.Receiver == transaction.Sender) { return(false); } if (transaction.Sender == UUID.Zero.ToString()) { return(false); } MySQLSuperManager dbm = GetLockedConnection(); int time = (int)((DateTime.UtcNow.Ticks - TicksToEpoch) / 10000000); try { return(dbm.Manager.setTotalSale(transaction.Receiver, transaction.ObjectUUID, transaction.Type, 1, transaction.Amount, time)); } #pragma warning disable CS0168 // Variable ist deklariert, wird jedoch niemals verwendet catch (MySql.Data.MySqlClient.MySqlException e) { #pragma warning restore CS0168 // Variable ist deklariert, wird jedoch niemals verwendet dbm.Manager.Reconnect(); return(dbm.Manager.setTotalSale(transaction.Receiver, transaction.ObjectUUID, transaction.Type, 1, transaction.Amount, time)); } catch (Exception e) { m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public int getTransactionNum(string userID, int startTime, int endTime) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.getTransactionNum(userID, startTime, endTime)); } #pragma warning disable CS0168 // Variable ist deklariert, wird jedoch niemals verwendet catch (MySql.Data.MySqlClient.MySqlException e) { #pragma warning restore CS0168 // Variable ist deklariert, wird jedoch niemals verwendet dbm.Manager.Reconnect(); return(dbm.Manager.getTransactionNum(userID, startTime, endTime)); } catch (Exception e) { m_log.Error(e.ToString()); return(-1); } finally { dbm.Release(); } }
public UserInfo FetchUserInfo(string userID) { UserInfo userInfo = null; MySQLSuperManager dbm = GetLockedConnection(); try { userInfo = dbm.Manager.fetchUserInfo(userID); return(userInfo); } #pragma warning disable CS0168 // Variable ist deklariert, wird jedoch niemals verwendet catch (MySql.Data.MySqlClient.MySqlException e) { #pragma warning restore CS0168 // Variable ist deklariert, wird jedoch niemals verwendet dbm.Manager.Reconnect(); userInfo = dbm.Manager.fetchUserInfo(userID); return(userInfo); } catch (Exception e) { m_log.Error(e.ToString()); return(null); } finally { dbm.Release(); } }
public void Reconnect() { for (int i = 0; i < m_maxConnections; i++) { MySQLSuperManager msm = m_dbconnections[i]; msm.Manager.Reconnect(); } }
public bool addUser(string userID, int balance, int status, int type) { TransactionData transaction = new TransactionData(); transaction.TransUUID = UUID.Random(); transaction.Sender = UUID.Zero.ToString(); transaction.Receiver = userID; transaction.Amount = balance; transaction.ObjectUUID = UUID.Zero.ToString(); transaction.ObjectName = string.Empty; transaction.RegionHandle = string.Empty; transaction.Type = (int)TransactionType.BirthGift; transaction.Time = (int)((DateTime.UtcNow.Ticks - TicksToEpoch) / 10000000);; transaction.Status = (int)Status.PENDING_STATUS; transaction.SecureCode = UUID.Random().ToString(); transaction.CommonName = string.Empty; transaction.Description = "addUser " + DateTime.UtcNow.ToString(); bool ret = addTransaction(transaction); if (!ret) { return(false); } // MySQLSuperManager dbm = GetLockedConnection(); try { ret = dbm.Manager.addUser(userID, 0, status, type); // make Balance Table } #pragma warning disable CS0168 // Variable ist deklariert, wird jedoch niemals verwendet catch (MySql.Data.MySqlClient.MySqlException e) { #pragma warning restore CS0168 // Variable ist deklariert, wird jedoch niemals verwendet dbm.Manager.Reconnect(); ret = dbm.Manager.addUser(userID, 0, status, type); // make Balance Table } catch (Exception e) { m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } // if (ret) { ret = giveMoney(transaction.TransUUID, userID, balance); } return(ret); }
/////////////////////////////////////////////////////////////////////////////////////////////////////// // // userinfo // public bool TryAddUserInfo(UserInfo user) { MySQLSuperManager dbm = GetLockedConnection(); UserInfo userInfo = null; try { userInfo = dbm.Manager.fetchUserInfo(user.UserID); } #pragma warning disable CS0168 // Variable ist deklariert, wird jedoch niemals verwendet catch (MySql.Data.MySqlClient.MySqlException e) { #pragma warning restore CS0168 // Variable ist deklariert, wird jedoch niemals verwendet dbm.Manager.Reconnect(); userInfo = dbm.Manager.fetchUserInfo(user.UserID); } catch (Exception e) { m_log.Error(e.ToString()); dbm.Release(); return(false); } try { if (userInfo != null) { //m_log.InfoFormat("[MONEY DB]: Found user \"{0}\", now update information", user.Avatar); if (dbm.Manager.updateUserInfo(user)) { return(true); } } else if (dbm.Manager.addUserInfo(user)) { //m_log.InfoFormat("[MONEY DB]: Unable to find user \"{0}\", add it to DB successfully", user.Avatar); return(true); } m_log.InfoFormat("[MONEY DB]: WARNNING: TryAddUserInfo: Unable to TryAddUserInfo."); return(false); } catch (Exception e) { m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public TransactionData FetchTransaction(string userID, int startTime, int endTime, int lastIndex) { MySQLSuperManager dbm = GetLockedConnection(); TransactionData[] arrTransaction; uint index = 0; if (lastIndex >= 0) { index = Convert.ToUInt32(lastIndex) + 1; } try { arrTransaction = dbm.Manager.FetchTransaction(userID, startTime, endTime, index, 1); } #pragma warning disable CS0168 // Variable ist deklariert, wird jedoch niemals verwendet catch (MySql.Data.MySqlClient.MySqlException e) { #pragma warning restore CS0168 // Variable ist deklariert, wird jedoch niemals verwendet dbm.Manager.Reconnect(); arrTransaction = dbm.Manager.FetchTransaction(userID, startTime, endTime, index, 1); } catch (Exception e) { m_log.Error(e.ToString()); return(null); } finally { dbm.Release(); } // if (arrTransaction.Length > 0) { return(arrTransaction[0]); } else { return(null); } }
public TransactionData FetchTransaction(string userID, int startTime, int endTime, int lastIndex) { MySQLSuperManager dbm = GetLockedConnection(); TransactionData[] arrTransaction; try { if (lastIndex < 0) { arrTransaction = dbm.Manager.FetchTransaction(userID, startTime, endTime, 0, 1); if (arrTransaction.Length > 0) { return(arrTransaction[0]); } else { return(null); } } else { uint index = Convert.ToUInt32(lastIndex); arrTransaction = dbm.Manager.FetchTransaction(userID, startTime, endTime, index + 1, 1); if (arrTransaction.Length > 0) { return(arrTransaction[0]); } else { return(null); } } } catch (Exception e) { dbm.Manager.Reconnect(); m_log.Error(e.ToString()); return(null); } finally { dbm.Release(); } }
public bool addTransaction(TransactionData transaction) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.addTransaction(transaction)); } catch (Exception e) { dbm.Manager.Reconnect(); m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public int getTransactionNum(string userID, int startTime, int endTime) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.getTransactionNum(userID, startTime, endTime)); } catch (Exception e) { dbm.Manager.Reconnect(); m_log.Error(e.ToString()); return(-1); } finally { dbm.Release(); } }
public UserInfo FetchUserInfo(string userID) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.fetchUserInfo(userID)); } catch (Exception e) { dbm.Manager.Reconnect(); m_log.Error(e.ToString()); return(null); } finally { dbm.Release(); } }
public bool withdrawMoney(UUID transactionID, string senderID, int amount) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.withdrawMoney(transactionID, senderID, amount)); } catch (MySql.Data.MySqlClient.MySqlException e) { dbm.Manager.Reconnect(); return(dbm.Manager.withdrawMoney(transactionID, senderID, amount)); } catch (Exception e) { m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public bool ValidateTransfer(string secureCode, UUID transactionID) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.ValidateTransfer(secureCode, transactionID)); } catch (Exception e) { dbm.Manager.Reconnect(); m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public TransactionData FetchTransaction(UUID transactionID) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.FetchTransaction(transactionID)); } catch (Exception e) { dbm.Manager.Reconnect(); m_log.Error(e.ToString()); return(null); } finally { dbm.Release(); } }
public bool updateTransactionStatus(UUID transactionID, int status, string description) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.updateTransactionStatus(transactionID, status, description)); } catch (Exception e) { dbm.Manager.Reconnect(); m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public bool SetTransExpired(int deadTime) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.SetTransExpired(deadTime)); } catch (Exception e) { dbm.Manager.Reconnect(); m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public bool addUser(string userID, int balance, int status) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.addUser(userID, balance, status)); } catch (Exception e) { dbm.Manager.Reconnect(); m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public bool giveMoney(UUID transactionID, string receiverID, int amount) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.giveMoney(transactionID, receiverID, amount)); } catch (Exception e) { dbm.Manager.Reconnect(); m_log.Error(e.ToString()); return(false); } finally { dbm.Release(); } }
public int getBalance(string userID) { MySQLSuperManager dbm = GetLockedConnection(); try { return(dbm.Manager.getBalance(userID)); } catch (Exception e) { dbm.Manager.Reconnect(); m_log.Error(e.ToString()); return(0); } finally { dbm.Release(); } }
public void Initialise(string connectionString, int maxDBConnections) { m_maxConnections = maxDBConnections; if (connectionString != string.Empty) { m_moneyManager = new MySQLMoneyManager(connectionString); m_log.Info("Creating " + m_maxConnections + " DB connections..."); for (int i = 0; i < m_maxConnections; i++) { m_log.Info("Connecting to DB... [" + i + "]"); MySQLSuperManager msm = new MySQLSuperManager(); msm.Manager = new MySQLMoneyManager(connectionString); m_dbconnections.Add(i, msm); } } else { m_log.Error("[Money DB] Connection string is null,initialise database failed"); throw new Exception("Failed to initialise MySql database"); } }
public UserInfo FetchUserInfo(string userID) { UserInfo userInfo = null; MySQLSuperManager dbm = GetLockedConnection(); try { userInfo = dbm.Manager.fetchUserInfo(userID); return(userInfo); } catch (MySql.Data.MySqlClient.MySqlException e) { dbm.Manager.Reconnect(); userInfo = dbm.Manager.fetchUserInfo(userID); return(userInfo); } catch (Exception e) { m_log.Error(e.ToString()); return(null); } finally { dbm.Release(); } }
public TransactionData FetchTransaction(string userID, int startTime, int endTime, int lastIndex) { MySQLSuperManager dbm = GetLockedConnection(); TransactionData[] arrTransaction; uint index = 0; if (lastIndex >= 0) { index = Convert.ToUInt32(lastIndex) + 1; } try { arrTransaction = dbm.Manager.FetchTransaction(userID, startTime, endTime, index, 1); } catch (MySql.Data.MySqlClient.MySqlException e) { dbm.Manager.Reconnect(); arrTransaction = dbm.Manager.FetchTransaction(userID, startTime, endTime, index, 1); } catch (Exception e) { m_log.Error(e.ToString()); return(null); } finally { dbm.Release(); } // if (arrTransaction.Length > 0) { return(arrTransaction[0]); } else { return(null); } }