mirror of
https://github.com/opensim/opensim.git
synced 2026-06-29 02:25:39 +08:00
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.
This commit is contained in:
@@ -219,6 +219,8 @@ namespace OpenSim.Data.MySQL
|
||||
{
|
||||
List<InventoryItemBase> items = new List<InventoryItemBase>();
|
||||
|
||||
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());
|
||||
|
||||
Reference in New Issue
Block a user