From 7fea52be3542c1eea884f92ea14285560923e57d Mon Sep 17 00:00:00 2001 From: Charles Krinke Date: Thu, 3 Jul 2008 22:30:16 +0000 Subject: Mantis#1661. Thank you kindly, CMickeyb for a patch that: patch attached to check for timeouts on mysql connections *before* operations occur that are likely to timeout. if timeout occurs or the connections is down, it is reconnected before the operation fails. --- OpenSim/Data/MySQL/MySQLInventoryData.cs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'OpenSim/Data/MySQL/MySQLInventoryData.cs') diff --git a/OpenSim/Data/MySQL/MySQLInventoryData.cs b/OpenSim/Data/MySQL/MySQLInventoryData.cs index 911958c..5bde40a 100644 --- a/OpenSim/Data/MySQL/MySQLInventoryData.cs +++ b/OpenSim/Data/MySQL/MySQLInventoryData.cs @@ -219,6 +219,8 @@ namespace OpenSim.Data.MySQL { List items = new List(); + database.CheckConnection(); + MySqlCommand result = new MySqlCommand("SELECT * FROM inventoryitems WHERE parentFolderID = ?uuid", database.Connection); @@ -253,6 +255,8 @@ namespace OpenSim.Data.MySQL { lock (database) { + database.CheckConnection(); + MySqlCommand result = new MySqlCommand( "SELECT * FROM inventoryfolders WHERE parentFolderID = ?zero AND agentID = ?uuid", @@ -292,6 +296,8 @@ namespace OpenSim.Data.MySQL { lock (database) { + database.CheckConnection(); + MySqlCommand result = new MySqlCommand( "SELECT * FROM inventoryfolders WHERE parentFolderID = ?zero AND agentID = ?uuid", @@ -344,6 +350,8 @@ namespace OpenSim.Data.MySQL { lock (database) { + database.CheckConnection(); + MySqlCommand result = new MySqlCommand("SELECT * FROM inventoryfolders WHERE parentFolderID = ?uuid", database.Connection); @@ -421,6 +429,8 @@ namespace OpenSim.Data.MySQL { lock (database) { + database.CheckConnection(); + MySqlCommand result = new MySqlCommand("SELECT * FROM inventoryitems WHERE inventoryID = ?uuid", database.Connection); result.Parameters.AddWithValue("?uuid", itemID.ToString()); @@ -482,6 +492,8 @@ namespace OpenSim.Data.MySQL { lock (database) { + database.CheckConnection(); + MySqlCommand result = new MySqlCommand("SELECT * FROM inventoryfolders WHERE folderID = ?uuid", database.Connection); result.Parameters.AddWithValue("?uuid", folderID.ToString()); @@ -522,6 +534,8 @@ namespace OpenSim.Data.MySQL try { + database.CheckConnection(); + MySqlCommand result = new MySqlCommand(sql, database.Connection); result.Parameters.AddWithValue("?inventoryID", item.ID.ToString()); result.Parameters.AddWithValue("?assetID", item.AssetID.ToString()); @@ -574,6 +588,8 @@ namespace OpenSim.Data.MySQL { try { + database.CheckConnection(); + MySqlCommand cmd = new MySqlCommand("DELETE FROM inventoryitems WHERE inventoryID=?uuid", database.Connection); cmd.Parameters.AddWithValue("?uuid", itemID.ToString()); @@ -600,6 +616,8 @@ namespace OpenSim.Data.MySQL "REPLACE INTO inventoryfolders (folderID, agentID, parentFolderID, folderName, type, version) VALUES "; sql += "(?folderID, ?agentID, ?parentFolderID, ?folderName, ?type, ?version)"; + database.CheckConnection(); + MySqlCommand cmd = new MySqlCommand(sql, database.Connection); cmd.Parameters.AddWithValue("?folderID", folder.ID.ToString()); cmd.Parameters.AddWithValue("?agentID", folder.Owner.ToString()); @@ -640,6 +658,8 @@ namespace OpenSim.Data.MySQL string sql = "UPDATE inventoryfolders SET parentFolderID=?parentFolderID WHERE folderID=?folderID"; + database.CheckConnection(); + MySqlCommand cmd = new MySqlCommand(sql, database.Connection); cmd.Parameters.AddWithValue("?folderID", folder.ID.ToString()); cmd.Parameters.AddWithValue("?parentFolderID", folder.ParentID.ToString()); @@ -695,6 +715,8 @@ namespace OpenSim.Data.MySQL { try { + database.CheckConnection(); + MySqlCommand cmd = new MySqlCommand("DELETE FROM inventoryfolders WHERE folderID=?uuid", database.Connection); cmd.Parameters.AddWithValue("?uuid", folderID.ToString()); @@ -719,6 +741,8 @@ namespace OpenSim.Data.MySQL { try { + database.CheckConnection(); + MySqlCommand cmd = new MySqlCommand("DELETE FROM inventoryitems WHERE parentFolderID=?uuid", database.Connection); cmd.Parameters.AddWithValue("?uuid", folderID.ToString()); -- cgit v1.1