diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Data/MySQL/MySQLAssetData.cs | 112 |
1 files changed, 56 insertions, 56 deletions
diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs index 5d8da17..8569c90 100644 --- a/OpenSim/Data/MySQL/MySQLAssetData.cs +++ b/OpenSim/Data/MySQL/MySQLAssetData.cs | |||
@@ -75,6 +75,7 @@ namespace OpenSim.Data.MySQL | |||
75 | dbcon.Open(); | 75 | dbcon.Open(); |
76 | Migration m = new Migration(dbcon, Assembly, "AssetStore"); | 76 | Migration m = new Migration(dbcon, Assembly, "AssetStore"); |
77 | m.Update(); | 77 | m.Update(); |
78 | dbcon.Close(); | ||
78 | } | 79 | } |
79 | } | 80 | } |
80 | 81 | ||
@@ -144,6 +145,7 @@ namespace OpenSim.Data.MySQL | |||
144 | string.Format("[ASSETS DB]: MySql failure fetching asset {0}. Exception ", assetID), e); | 145 | string.Format("[ASSETS DB]: MySql failure fetching asset {0}. Exception ", assetID), e); |
145 | } | 146 | } |
146 | } | 147 | } |
148 | dbcon.Close(); | ||
147 | } | 149 | } |
148 | 150 | ||
149 | return asset; | 151 | return asset; |
@@ -154,65 +156,62 @@ namespace OpenSim.Data.MySQL | |||
154 | /// </summary> | 156 | /// </summary> |
155 | /// <param name="asset">Asset UUID to create</param> | 157 | /// <param name="asset">Asset UUID to create</param> |
156 | /// <remarks>On failure : Throw an exception and attempt to reconnect to database</remarks> | 158 | /// <remarks>On failure : Throw an exception and attempt to reconnect to database</remarks> |
157 | override public void StoreAsset(AssetBase asset) | 159 | override public bool StoreAsset(AssetBase asset) |
158 | { | 160 | { |
161 | string assetName = asset.Name; | ||
162 | if (asset.Name.Length > AssetBase.MAX_ASSET_NAME) | ||
163 | { | ||
164 | assetName = asset.Name.Substring(0, AssetBase.MAX_ASSET_NAME); | ||
165 | m_log.WarnFormat( | ||
166 | "[ASSET DB]: Name '{0}' for asset {1} truncated from {2} to {3} characters on add", | ||
167 | asset.Name, asset.ID, asset.Name.Length, assetName.Length); | ||
168 | } | ||
169 | |||
170 | string assetDescription = asset.Description; | ||
171 | if (asset.Description.Length > AssetBase.MAX_ASSET_DESC) | ||
172 | { | ||
173 | assetDescription = asset.Description.Substring(0, AssetBase.MAX_ASSET_DESC); | ||
174 | m_log.WarnFormat( | ||
175 | "[ASSET DB]: Description '{0}' for asset {1} truncated from {2} to {3} characters on add", | ||
176 | asset.Description, asset.ID, asset.Description.Length, assetDescription.Length); | ||
177 | } | ||
178 | |||
159 | using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) | 179 | using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) |
160 | { | 180 | { |
161 | dbcon.Open(); | 181 | dbcon.Open(); |
162 | |||
163 | using (MySqlCommand cmd = | 182 | using (MySqlCommand cmd = |
164 | new MySqlCommand( | 183 | new MySqlCommand( |
165 | "replace INTO assets(id, name, description, assetType, local, temporary, create_time, access_time, asset_flags, CreatorID, data)" + | 184 | "replace INTO assets(id, name, description, assetType, local, temporary, create_time, access_time, asset_flags, CreatorID, data)" + |
166 | "VALUES(?id, ?name, ?description, ?assetType, ?local, ?temporary, ?create_time, ?access_time, ?asset_flags, ?CreatorID, ?data)", | 185 | "VALUES(?id, ?name, ?description, ?assetType, ?local, ?temporary, ?create_time, ?access_time, ?asset_flags, ?CreatorID, ?data)", |
167 | dbcon)) | 186 | dbcon)) |
168 | { | 187 | { |
169 | string assetName = asset.Name; | ||
170 | if (asset.Name.Length > AssetBase.MAX_ASSET_NAME) | ||
171 | { | ||
172 | assetName = asset.Name.Substring(0, AssetBase.MAX_ASSET_NAME); | ||
173 | m_log.WarnFormat( | ||
174 | "[ASSET DB]: Name '{0}' for asset {1} truncated from {2} to {3} characters on add", | ||
175 | asset.Name, asset.ID, asset.Name.Length, assetName.Length); | ||
176 | } | ||
177 | |||
178 | string assetDescription = asset.Description; | ||
179 | if (asset.Description.Length > AssetBase.MAX_ASSET_DESC) | ||
180 | { | ||
181 | assetDescription = asset.Description.Substring(0, AssetBase.MAX_ASSET_DESC); | ||
182 | m_log.WarnFormat( | ||
183 | "[ASSET DB]: Description '{0}' for asset {1} truncated from {2} to {3} characters on add", | ||
184 | asset.Description, asset.ID, asset.Description.Length, assetDescription.Length); | ||
185 | } | ||
186 | |||
187 | try | 188 | try |
188 | { | 189 | { |
189 | using (cmd) | 190 | // create unix epoch time |
190 | { | 191 | int now = (int)Utils.DateTimeToUnixTime(DateTime.UtcNow); |
191 | // create unix epoch time | 192 | cmd.Parameters.AddWithValue("?id", asset.ID); |
192 | int now = (int)Utils.DateTimeToUnixTime(DateTime.UtcNow); | 193 | cmd.Parameters.AddWithValue("?name", assetName); |
193 | cmd.Parameters.AddWithValue("?id", asset.ID); | 194 | cmd.Parameters.AddWithValue("?description", assetDescription); |
194 | cmd.Parameters.AddWithValue("?name", assetName); | 195 | cmd.Parameters.AddWithValue("?assetType", asset.Type); |
195 | cmd.Parameters.AddWithValue("?description", assetDescription); | 196 | cmd.Parameters.AddWithValue("?local", asset.Local); |
196 | cmd.Parameters.AddWithValue("?assetType", asset.Type); | 197 | cmd.Parameters.AddWithValue("?temporary", asset.Temporary); |
197 | cmd.Parameters.AddWithValue("?local", asset.Local); | 198 | cmd.Parameters.AddWithValue("?create_time", now); |
198 | cmd.Parameters.AddWithValue("?temporary", asset.Temporary); | 199 | cmd.Parameters.AddWithValue("?access_time", now); |
199 | cmd.Parameters.AddWithValue("?create_time", now); | 200 | cmd.Parameters.AddWithValue("?CreatorID", asset.Metadata.CreatorID); |
200 | cmd.Parameters.AddWithValue("?access_time", now); | 201 | cmd.Parameters.AddWithValue("?asset_flags", (int)asset.Flags); |
201 | cmd.Parameters.AddWithValue("?CreatorID", asset.Metadata.CreatorID); | 202 | cmd.Parameters.AddWithValue("?data", asset.Data); |
202 | cmd.Parameters.AddWithValue("?asset_flags", (int)asset.Flags); | 203 | cmd.ExecuteNonQuery(); |
203 | cmd.Parameters.AddWithValue("?data", asset.Data); | 204 | dbcon.Close(); |
204 | cmd.ExecuteNonQuery(); | 205 | return true; |
205 | } | ||
206 | } | 206 | } |
207 | catch (Exception e) | 207 | catch (Exception e) |
208 | { | 208 | { |
209 | m_log.Error( | 209 | m_log.ErrorFormat("[ASSET DB]: MySQL failure creating asset {0} with name \"{1}\". Error: {2}", |
210 | string.Format( | 210 | asset.FullID, asset.Name, e.Message); |
211 | "[ASSET DB]: MySQL failure creating asset {0} with name {1}. Exception ", | 211 | dbcon.Close(); |
212 | asset.FullID, asset.Name) | 212 | return false; |
213 | , e); | ||
214 | } | 213 | } |
215 | } | 214 | } |
216 | } | 215 | } |
217 | } | 216 | } |
218 | 217 | ||
@@ -227,24 +226,22 @@ namespace OpenSim.Data.MySQL | |||
227 | { | 226 | { |
228 | try | 227 | try |
229 | { | 228 | { |
230 | using (cmd) | 229 | // create unix epoch time |
231 | { | 230 | int now = (int)Utils.DateTimeToUnixTime(DateTime.UtcNow); |
232 | // create unix epoch time | 231 | cmd.Parameters.AddWithValue("?id", asset.ID); |
233 | int now = (int)Utils.DateTimeToUnixTime(DateTime.UtcNow); | 232 | cmd.Parameters.AddWithValue("?access_time", now); |
234 | cmd.Parameters.AddWithValue("?id", asset.ID); | 233 | cmd.ExecuteNonQuery(); |
235 | cmd.Parameters.AddWithValue("?access_time", now); | ||
236 | cmd.ExecuteNonQuery(); | ||
237 | } | ||
238 | } | 234 | } |
239 | catch (Exception e) | 235 | catch (Exception e) |
240 | { | 236 | { |
241 | m_log.Error( | 237 | m_log.Error( |
242 | string.Format( | 238 | string.Format( |
243 | "[ASSETS DB]: Failure updating access_time for asset {0} with name {1}. Exception ", | 239 | "[ASSETS DB]: Failure updating access_time for asset {0} with name {1}. Exception ", |
244 | asset.FullID, asset.Name), | 240 | asset.FullID, asset.Name), |
245 | e); | 241 | e); |
246 | } | 242 | } |
247 | } | 243 | } |
244 | dbcon.Close(); | ||
248 | } | 245 | } |
249 | } | 246 | } |
250 | 247 | ||
@@ -277,6 +274,7 @@ namespace OpenSim.Data.MySQL | |||
277 | } | 274 | } |
278 | } | 275 | } |
279 | } | 276 | } |
277 | dbcon.Close(); | ||
280 | } | 278 | } |
281 | 279 | ||
282 | bool[] results = new bool[uuids.Length]; | 280 | bool[] results = new bool[uuids.Length]; |
@@ -336,11 +334,12 @@ namespace OpenSim.Data.MySQL | |||
336 | { | 334 | { |
337 | m_log.Error( | 335 | m_log.Error( |
338 | string.Format( | 336 | string.Format( |
339 | "[ASSETS DB]: MySql failure fetching asset set from {0}, count {1}. Exception ", | 337 | "[ASSETS DB]: MySql failure fetching asset set from {0}, count {1}. Exception ", |
340 | start, count), | 338 | start, count), |
341 | e); | 339 | e); |
342 | } | 340 | } |
343 | } | 341 | } |
342 | dbcon.Close(); | ||
344 | } | 343 | } |
345 | 344 | ||
346 | return retList; | 345 | return retList; |
@@ -357,6 +356,7 @@ namespace OpenSim.Data.MySQL | |||
357 | cmd.Parameters.AddWithValue("?id", id); | 356 | cmd.Parameters.AddWithValue("?id", id); |
358 | cmd.ExecuteNonQuery(); | 357 | cmd.ExecuteNonQuery(); |
359 | } | 358 | } |
359 | dbcon.Close(); | ||
360 | } | 360 | } |
361 | 361 | ||
362 | return true; | 362 | return true; |
@@ -364,4 +364,4 @@ namespace OpenSim.Data.MySQL | |||
364 | 364 | ||
365 | #endregion | 365 | #endregion |
366 | } | 366 | } |
367 | } \ No newline at end of file | 367 | } |