From dee0d1e55de4d63bc330ef08bfb3af1c415db2e1 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Wed, 30 Jan 2008 17:39:40 +0000 Subject: * Print out exception information when a mysql asset fetch fails * Attempt reconnection on fetch and create exceptions. --- OpenSim/Framework/Data.MySQL/MySQLAssetData.cs | 45 +++++++++++++++++--------- 1 file changed, 29 insertions(+), 16 deletions(-) (limited to 'OpenSim/Framework') diff --git a/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs b/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs index b20c54e..d55d891 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs @@ -95,9 +95,12 @@ namespace OpenSim.Framework.Data.MySQL cmd.Dispose(); } } - catch (Exception) + catch (Exception e) { - MainLog.Instance.Warn("ASSETS", "MySql failure fetching asset"); + MainLog.Instance.Error( + "ASSETS", "MySql failure fetching asset" + Environment.NewLine + e.ToString() + + Environment.NewLine + "Attempting reconnection"); + _dbConnection.Reconnect(); } } return asset; @@ -112,20 +115,30 @@ namespace OpenSim.Framework.Data.MySQL _dbConnection.Connection); // need to ensure we dispose - using (cmd) - { - MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16); - p.Value = asset.FullID.GetBytes(); - cmd.Parameters.AddWithValue("?name", asset.Name); - cmd.Parameters.AddWithValue("?description", asset.Description); - cmd.Parameters.AddWithValue("?assetType", asset.Type); - cmd.Parameters.AddWithValue("?invType", asset.InvType); - cmd.Parameters.AddWithValue("?local", asset.Local); - cmd.Parameters.AddWithValue("?temporary", asset.Temporary); - cmd.Parameters.AddWithValue("?data", asset.Data); - cmd.ExecuteNonQuery(); - cmd.Dispose(); + try + { + using (cmd) + { + MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16); + p.Value = asset.FullID.GetBytes(); + cmd.Parameters.AddWithValue("?name", asset.Name); + cmd.Parameters.AddWithValue("?description", asset.Description); + cmd.Parameters.AddWithValue("?assetType", asset.Type); + cmd.Parameters.AddWithValue("?invType", asset.InvType); + cmd.Parameters.AddWithValue("?local", asset.Local); + cmd.Parameters.AddWithValue("?temporary", asset.Temporary); + cmd.Parameters.AddWithValue("?data", asset.Data); + cmd.ExecuteNonQuery(); + cmd.Dispose(); + } } + catch (Exception e) + { + MainLog.Instance.Error( + "ASSETS", "MySql failure creating asset" + Environment.NewLine + e.ToString() + + Environment.NewLine + "Attempting reconnection"); + _dbConnection.Reconnect(); + } } public void UpdateAsset(AssetBase asset) @@ -176,4 +189,4 @@ namespace OpenSim.Framework.Data.MySQL #endregion } -} \ No newline at end of file +} -- cgit v1.1