public ObjectName PreRegister(IMBeanServer server, ObjectName name) { _server = server; var timer = new Timer.Timer(); IDictionary <string, string> props = name.KeyPropertyList; props.Add("EmbeddedTimer", "true"); var timerName = new ObjectName(name.Domain, props); server.RegisterMBean(timer, timerName); _timer = _server.CreateDynamicProxy(timerName); _server.AddNotificationListener(timerName, OnTimerEvent, null, null); return(name); }
static void Main(string[] args) { IMBeanServer server = MBeanServerFactory.CreateMBeanServer(); Counter o = new Counter(); ObjectName name = new ObjectName("QuickStart:type=counter"); server.RegisterMBean(o, name); Console.WriteLine("******"); MBeanInfo info = server.GetMBeanInfo(name); Console.WriteLine("MBean description: {0}", info.Description); Console.WriteLine("MBean class name: {0}", info.ClassName); foreach (MBeanAttributeInfo attributeInfo in info.Attributes) { Console.WriteLine("Attribute {0} ({1}) [{2}{3}]: {4}", attributeInfo.Name, attributeInfo.Description, attributeInfo.Readable ? "r" : "", attributeInfo.Writable ? "w" : "", attributeInfo.Type); } foreach (MBeanOperationInfo operationInfo in info.Operations) { Console.WriteLine("Operation {0} ({1}) [{2}]", operationInfo.Name, operationInfo.Description, operationInfo.Impact); } Console.WriteLine("******"); server.AddNotificationListener(name, CounterChanged, null, null); object counter = server.GetAttribute(name, "Value"); Console.WriteLine("Counter value is {0}", counter); server.SetAttribute(name, "Value", 5); counter = server.GetAttribute(name, "Value"); Console.WriteLine("Now, counter value is {0}", counter); counter = server.Invoke(name, "Add", new object[] { 5 }); counter = server.GetAttribute(name, "Value"); Console.WriteLine("Now, counter value is {0}", counter); counter = server.Invoke(name, "Reset", new object[] { }); counter = server.GetAttribute(name, "Value"); Console.WriteLine("Now, counter value is {0}", counter); server.RemoveNotificationListener(name, CounterChanged, null, null); Console.ReadKey(); }
static void Main(string[] args) { IMBeanServer server = MBeanServerFactory.CreateMBeanServer(); Timer timer = new Timer(); ObjectName name = new ObjectName("Timer:"); server.RegisterMBean(timer, name); var timerBean = server.CreateDynamicProxy(name); timerBean.Start(); server.AddNotificationListener(name, OnTimerEvent, null, null); Console.WriteLine("******"); timerBean.AddNotification2("Type1", "Message1", 4, DateTime.Now.AddSeconds(2), new TimeSpan(0, 0, 0, 1)); //timerBean.AddNotification4("Type1", "Message1", 4, DateTime.Now.AddSeconds(2), new TimeSpan(0,0,0,1),3,true); timerBean.SendPastNotifications = true; bool exit = false; while (!exit) { ConsoleKeyInfo info = Console.ReadKey(); switch (char.ToUpper(info.KeyChar)) { case 'X': exit = true; break; case 'S': if (timerBean.IsActive) { timerBean.Stop(); } else { timerBean.Start(); } break; } } }
public void PostRegister(bool registrationDone) { _server.AddNotificationListener(MBeanServerDelegate.ObjectName, _ownName, null, null); RefreshMappings(); }