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