* Tweaking master uuid exception to make it clearer what just went wrong (user server timeout)

* Increasing GetUserProfile requests only to 6 seconds from 3
* Not completely sure what effect this will have, though probably not much
* At some point one will have to accept that if the grid servers are taking many many seconds to respond, running using that grid will not be viable.
* Perhaps there should be a big warning up front if grid request times are slower than n seconds.
0.6.0-stable
Justin Clarke Casey 2008-03-26 18:06:29 +00:00
parent c538ea5024
commit 14ee78b3af
1 changed files with 40 additions and 10 deletions

View File

@ -106,7 +106,7 @@ namespace OpenSim.Region.Communications.OGS1
}
else
{
m_log.Warn("[INTERGRID]: Got invalid queryID from userServer");
m_log.Warn("[OGS1 USER SERVICES]: Got invalid queryID from userServer");
}
return pickerlist;
}
@ -188,13 +188,18 @@ namespace OpenSim.Region.Communications.OGS1
}
catch (WebException e)
{
m_log.Warn("Error when trying to fetch Avatar Picker Response: " +
m_log.Warn("[OGS1 USER SERVICES]: Error when trying to fetch Avatar Picker Response: " +
e.Message);
// Return Empty picker list (no results)
}
return pickerlist;
}
/// <summary>
/// Get a user profile from the user server
/// </summary>
/// <param name="avatarID"></param>
/// <returns>null if the request fails</returns>
public UserProfileData GetUserProfile(string name)
{
try
@ -204,19 +209,26 @@ namespace OpenSim.Region.Communications.OGS1
IList parameters = new ArrayList();
parameters.Add(param);
XmlRpcRequest req = new XmlRpcRequest("get_user_by_name", parameters);
XmlRpcResponse resp = req.Send(m_parent.NetworkServersInfo.UserURL, 3000);
XmlRpcResponse resp = req.Send(m_parent.NetworkServersInfo.UserURL, 6000);
Hashtable respData = (Hashtable) resp.Value;
return ConvertXMLRPCDataToUserProfile(respData);
}
catch (WebException e)
{
m_log.Warn("Error when trying to fetch profile data by name from remote user server: " +
e.Message);
m_log.ErrorFormat(
"[OGS1 USER SERVICES]: Error when trying to fetch profile data by name from remote user server: {0}",
e);
}
return null;
}
/// <summary>
/// Get a user profile from the user server
/// </summary>
/// <param name="avatarID"></param>
/// <returns>null if the request fails</returns>
public UserProfileData GetUserProfile(LLUUID avatarID)
{
try
@ -226,16 +238,18 @@ namespace OpenSim.Region.Communications.OGS1
IList parameters = new ArrayList();
parameters.Add(param);
XmlRpcRequest req = new XmlRpcRequest("get_user_by_uuid", parameters);
XmlRpcResponse resp = req.Send(m_parent.NetworkServersInfo.UserURL, 3000);
XmlRpcResponse resp = req.Send(m_parent.NetworkServersInfo.UserURL, 6000);
Hashtable respData = (Hashtable) resp.Value;
return ConvertXMLRPCDataToUserProfile(respData);
}
catch (Exception e)
{
Console.WriteLine("Error when trying to fetch profile data by uuid from remote user server: " +
e.Message);
m_log.ErrorFormat(
"[OGS1 USER SERVICES]: Error when trying to fetch profile data by uuid from remote user server: {0}",
e);
}
return null;
}
@ -244,24 +258,40 @@ namespace OpenSim.Region.Communications.OGS1
// TODO: implement
}
/// <summary>
/// Retrieve the user information for the given master uuid.
/// </summary>
/// <param name="uuid"></param>
/// <returns></returns>
public UserProfileData SetupMasterUser(string firstName, string lastName)
{
return SetupMasterUser(firstName, lastName, String.Empty);
}
/// <summary>
/// Retrieve the user information for the given master uuid.
/// </summary>
/// <param name="uuid"></param>
/// <returns></returns>
public UserProfileData SetupMasterUser(string firstName, string lastName, string password)
{
UserProfileData profile = GetUserProfile(firstName, lastName);
return profile;
}
/// <summary>
/// Retrieve the user information for the given master uuid.
/// </summary>
/// <param name="uuid"></param>
/// <returns></returns>
public UserProfileData SetupMasterUser(LLUUID uuid)
{
UserProfileData data = GetUserProfile(uuid);
if (data == null)
{
throw new Exception("[OGS1 USER SERVICES]: Unknown master user " + uuid);
throw new Exception(
"Could not retrieve profile for master user " + uuid + ". User server did not respond to the request.");
}
return data;
@ -497,7 +527,7 @@ namespace OpenSim.Region.Communications.OGS1
}
catch (WebException e)
{
m_log.Warn("Error when trying to fetch Avatar's friends list: " +
m_log.Warn("[OGS1 USER SERVICES]: Error when trying to fetch Avatar's friends list: " +
e.Message);
// Return Empty list (no friends)
}