From fa50156b4c2db13fa5c425dca48d1abfac404b6b Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Mon, 17 Nov 2008 05:04:33 +0000 Subject: [PATCH] Make the messageing server re-register with all it's user servers every five minutes. This ensures that things don't get messy if a user server is restarted and the user server's operator has no control over the host the message servers run on. --- OpenSim/Grid/MessagingServer/MessageService.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/OpenSim/Grid/MessagingServer/MessageService.cs b/OpenSim/Grid/MessagingServer/MessageService.cs index 5841672ffb..77da306e5c 100644 --- a/OpenSim/Grid/MessagingServer/MessageService.cs +++ b/OpenSim/Grid/MessagingServer/MessageService.cs @@ -29,8 +29,8 @@ using System; using System.Collections; using System.Collections.Generic; using System.Net; -using System.Reflection; using System.Threading; +using System.Reflection; using OpenMetaverse; using log4net; using Nwc.XmlRpc; @@ -52,6 +52,8 @@ namespace OpenSim.Grid.MessagingServer // a dictionary of all current regions this server knows about private Dictionary m_regionInfoCache = new Dictionary(); + private System.Timers.Timer reconnectTimer = new System.Timers.Timer(300000); // 5 mins + public MessageService(MessageServerConfig cfg) { m_cfg = cfg; @@ -61,6 +63,9 @@ namespace OpenSim.Grid.MessagingServer uc.DatabaseProvider = cfg.DatabaseProvider; m_userManager.AddPlugin(cfg.DatabaseProvider, cfg.DatabaseConnect); + + reconnectTimer.Elapsed += registerWithUserServer; + reconnectTimer.Start(); } @@ -497,6 +502,11 @@ namespace OpenSim.Grid.MessagingServer return regionProfile; } + public void registerWithUserServer(object sender, System.Timers.ElapsedEventArgs e) + { + registerWithUserServer(); + } + public bool registerWithUserServer () { Hashtable UserParams = new Hashtable();