示例#1
0
        private static MBeanServerConnection Connect(JMXServiceURL url, string username, string password)
        {
            IDictionary <string, object> environment = new Dictionary <string, object>();

            if (!string.ReferenceEquals(username, null) && !string.ReferenceEquals(password, null))
            {
                environment[JMXConnector.CREDENTIALS] = new string[] { username, password };
            }
            else if (!string.ReferenceEquals(username, null) || !string.ReferenceEquals(password, null))
            {
                throw new System.ArgumentException("User name and password must either both be specified, or both be null.");
            }
            try
            {
                try
                {
                    return(JMXConnectorFactory.connect(url, environment).MBeanServerConnection);
                }
                catch (SecurityException)
                {
                    environment[RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE] = new SslRMIClientSocketFactory();
                    return(JMXConnectorFactory.connect(url, environment).MBeanServerConnection);
                }
            }
            catch (IOException e)
            {
                throw new System.InvalidOperationException("Connection failed.", e);
            }
        }
示例#2
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public static JmxDump connectTo(String jmxAddress) throws java.io.IOException
        public static JmxDump ConnectTo(string jmxAddress)
        {
            JMXServiceURL url     = new JMXServiceURL(jmxAddress);
            JMXConnector  connect = JMXConnectorFactory.connect(url);

            return(new JmxDump(connect.MBeanServerConnection));
        }
示例#3
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);
            }
        }