Пример #1
0
        public virtual void TestNameNode()
        {
            int numDatanodes = 2;

            cluster = new MiniDFSCluster.Builder(config).NumDataNodes(numDatanodes).Build();
            cluster.WaitActive();
            WriteFile(cluster.GetFileSystem(), new Path("/test1"), 2);
            JMXGet jmx         = new JMXGet();
            string serviceName = "NameNode";

            jmx.SetService(serviceName);
            jmx.Init();
            // default lists namenode mbeans only
            NUnit.Framework.Assert.IsTrue("error printAllValues", CheckPrintAllValues(jmx));
            //get some data from different source
            NUnit.Framework.Assert.AreEqual(numDatanodes, System.Convert.ToInt32(jmx.GetValue
                                                                                     ("NumLiveDataNodes")));
            MetricsAsserts.AssertGauge("CorruptBlocks", long.Parse(jmx.GetValue("CorruptBlocks"
                                                                                )), MetricsAsserts.GetMetrics("FSNamesystem"));
            NUnit.Framework.Assert.AreEqual(numDatanodes, System.Convert.ToInt32(jmx.GetValue
                                                                                     ("NumOpenConnections")));
            cluster.Shutdown();
            MBeanServerConnection    mbsc  = ManagementFactory.GetPlatformMBeanServer();
            ObjectName               query = new ObjectName("Hadoop:service=" + serviceName + ",*");
            ICollection <ObjectName> names = mbsc.QueryNames(query, null);

            NUnit.Framework.Assert.IsTrue("No beans should be registered for " + serviceName,
                                          names.IsEmpty());
        }
Пример #2
0
 public static Neo4jManager Get(MBeanServerConnection server)
 {
     try
     {
         return(get(server, server.queryNames(CreateObjectName("*", typeof(Kernel)), null)));
     }
     catch (IOException e)
     {
         throw new System.InvalidOperationException("Connection failed.", e);
     }
 }
Пример #3
0
 private static Neo4jManager Get(MBeanServerConnection server, ICollection <ObjectName> kernels)
 {
     if (kernels.Count == 0)
     {
         throw new NoSuchElementException("No matching Neo4j Graph Database running on server");
     }
     else if (kernels.Count == 1)
     {
         return(new Neo4jManager(server, kernels.GetEnumerator().next()));
     }
     else
     {
         throw new NoSuchElementException("Too many matching Neo4j Graph Databases running on server");
     }
 }
Пример #4
0
 private T MakeProxy <T>(MBeanServerConnection mbs, Type beanInterface, ObjectName name)
 {
     beanInterface = typeof(T);
     try
     {
         return(beanInterface.cast(_newMXBeanProxy.invoke(null, mbs, name, beanInterface)));
     }
     catch (InvocationTargetException exception)
     {
         Exceptions.throwIfUnchecked(exception.TargetException);
         throw new Exception(exception.TargetException);
     }
     catch (Exception exception)
     {
         throw new System.NotSupportedException("Creating Management Bean proxies requires Java 1.6", exception);
     }
 }
Пример #5
0
        internal static ICollection <T> LoadAll <T>(MBeanServerConnection mbs, Type beanInterface, ObjectName query)
        {
            beanInterface = typeof(T);
            ICollection <T> beans = new LinkedList <T>();

            try
            {
                foreach (ObjectName name in mbs.queryNames(query, null))
                {
                    beans.Add(_instance.makeProxy(mbs, beanInterface, name));
                }
            }
            catch (IOException)
            {
                // fall through and return the empty collection...
            }
            return(beans);
        }
Пример #6
0
        protected internal KernelProxy(MBeanServerConnection server, ObjectName kernel)
        {
            string className = null;

            try
            {
                className = server.getMBeanInfo(kernel).ClassName;
            }
            catch (Exception)
            {
                // fall through
            }
            if (!KERNEL_BEAN_TYPE.Equals(className))
            {
                throw new System.ArgumentException("The specified ObjectName does not represent a Neo4j Kernel bean in the specified MBean server.");
            }
            this.Server = server;
            this.Kernel = kernel;
        }
Пример #7
0
        public static Neo4jManager[] GetAll(MBeanServerConnection server)
        {
            try
            {
                ISet <ObjectName>        kernels  = server.queryNames(CreateObjectName("*", typeof(Kernel)), null);
                Neo4jManager[]           managers = new Neo4jManager[kernels.Count];
                IEnumerator <ObjectName> it       = kernels.GetEnumerator();
                for (int i = 0; i < managers.Length; i++)
                {
//JAVA TO C# CONVERTER TODO TASK: Java iterators are only converted within the context of 'while' and 'for' loops:
                    managers[i] = new Neo4jManager(server, it.next());
                }
                return(managers);
            }
            catch (IOException e)
            {
                throw new System.InvalidOperationException("Connection failed.", e);
            }
        }
Пример #8
0
        public virtual void TestDataNode()
        {
            int numDatanodes = 2;

            cluster = new MiniDFSCluster.Builder(config).NumDataNodes(numDatanodes).Build();
            cluster.WaitActive();
            WriteFile(cluster.GetFileSystem(), new Path("/test"), 2);
            JMXGet jmx         = new JMXGet();
            string serviceName = "DataNode";

            jmx.SetService(serviceName);
            jmx.Init();
            NUnit.Framework.Assert.AreEqual(fileSize, System.Convert.ToInt32(jmx.GetValue("BytesWritten"
                                                                                          )));
            cluster.Shutdown();
            MBeanServerConnection    mbsc  = ManagementFactory.GetPlatformMBeanServer();
            ObjectName               query = new ObjectName("Hadoop:service=" + serviceName + ",*");
            ICollection <ObjectName> names = mbsc.QueryNames(query, null);

            NUnit.Framework.Assert.IsTrue("No beans should be registered for " + serviceName,
                                          names.IsEmpty());
        }
Пример #9
0
        /// <exception cref="System.Exception">initializes MBeanServer</exception>
        public virtual void Init()
        {
            Err("init: server=" + server + ";port=" + port + ";service=" + service + ";localVMUrl="
                + localVMUrl);
            string url_string = null;

            // build connection url
            if (localVMUrl != null)
            {
                // use
                // jstat -snap <vmpid> | grep sun.management.JMXConnectorServer.address
                // to get url
                url_string = localVMUrl;
                Err("url string for local pid = " + localVMUrl + " = " + url_string);
            }
            else
            {
                if (!port.IsEmpty() && !server.IsEmpty())
                {
                    // using server and port
                    url_string = "service:jmx:rmi:///jndi/rmi://" + server + ":" + port + "/jmxrmi";
                }
            }
            // else url stays null
            // Create an RMI connector client and
            // connect it to the RMI connector server
            if (url_string == null)
            {
                // assume local vm (for example for Testing)
                mbsc = ManagementFactory.GetPlatformMBeanServer();
            }
            else
            {
                JMXServiceURL url = new JMXServiceURL(url_string);
                Err("Create RMI connector and connect to the RMI connector server" + url);
                JMXConnector jmxc = JMXConnectorFactory.Connect(url, null);
                // Get an MBeanServerConnection
                //
                Err("\nGet an MBeanServerConnection");
                mbsc = jmxc.GetMBeanServerConnection();
            }
            // Get domains from MBeanServer
            //
            Err("\nDomains:");
            string[] domains = mbsc.GetDomains();
            Arrays.Sort(domains);
            foreach (string domain in domains)
            {
                Err("\tDomain = " + domain);
            }
            // Get MBeanServer's default domain
            //
            Err("\nMBeanServer default domain = " + mbsc.GetDefaultDomain());
            // Get MBean count
            //
            Err("\nMBean count = " + mbsc.GetMBeanCount());
            // Query MBean names for specific domain "hadoop" and service
            ObjectName query = new ObjectName("Hadoop:service=" + service + ",*");

            hadoopObjectNames = new AList <ObjectName>(5);
            Err("\nQuery MBeanServer MBeans:");
            ICollection <ObjectName> names = new TreeSet <ObjectName>(mbsc.QueryNames(query, null
                                                                                      ));

            foreach (ObjectName name in names)
            {
                hadoopObjectNames.AddItem(name);
                Err("Hadoop service: " + name);
            }
        }
Пример #10
0
 private Neo4jManager(MBeanServerConnection server, ObjectName kernel) : base(server, kernel)
 {
     this._config = CreateObjectName(ConfigurationBean.CONFIGURATION_MBEAN_NAME);
     this._proxy  = GetBean(typeof(Kernel));
 }
Пример #11
0
 private JmxDump(MBeanServerConnection mBeanServer)
 {
     this._mBeanServer = mBeanServer;
 }
Пример #12
0
 public static T Load <T>(MBeanServerConnection mbs, Type beanInterface, ObjectName name)
 {
     beanInterface = typeof(T);
     return(_instance.makeProxy(mbs, beanInterface, name));
 }