zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jahar (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (ZOOKEEPER-3070) Not Able to Change Zookeeper Logging via JMX Call
Date Thu, 28 Jun 2018 07:31:00 GMT

     [ https://issues.apache.org/jira/browse/ZOOKEEPER-3070?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

jahar resolved ZOOKEEPER-3070.
       Resolution: Not A Problem
    Fix Version/s: 3.4.5

Just found the way to achieve it. Was straight forward but I went into different direction.

Below is the code:
{quote}_JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:2167/jmxrmi");_
 _JMXConnector jmxConnector = JMXConnectorFactory.connect(url);_
 _MBeanServerConnection mbeanServerConnection = jmxConnector.getMBeanServerConnection();_
 _ObjectName mbeanName2 = new ObjectName("log4j:logger=root");_
 _System.out.println(mbeanServerConnection.getAttribute(mbeanName2, "priority"));_
 _mbeanServerConnection.setAttribute(mbeanName2, new Attribute("priority", "DEBUG"));_

> Not Able to Change Zookeeper Logging via JMX Call
> -------------------------------------------------
>                 Key: ZOOKEEPER-3070
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3070
>             Project: ZooKeeper
>          Issue Type: Improvement
>          Components: jmx
>    Affects Versions: 3.4.5
>         Environment: Using Java 8 for writing standalone code to update the MBeans in
zookeeper which is running in Windows machine for POC purpose.
> Zookeeper Version is : 3.4.5
>            Reporter: jahar
>            Priority: Blocker
>             Fix For: 3.4.5
>         Attachments: jconsole.JPG, zkpg.JPG
> Hi,
> I wanted to change the logging level of zookeeper dynamically via a JMX call programmatically.
Apache Zookeeper official page specifies that it is possible to change the Mbeans via JMX
calls and I have verified this through JConsole also.
> !zkpg.JPG!
> But the problem is that I am not able to update the Mbeans related to log4j through my
code. I do see an API which can be used to access the Mbeans related to Object "org.apache.ZooKeeperService:name0=StandaloneServer_port-1"
below is the screengrab of Jconsole and my code:
> !jconsole.JPG!
> Here goes my Code:
> {quote}public static void main(String[] args) throws Exception
>  {
>  JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:2167/jmxrmi");
>  JMXConnector jmxConnector = JMXConnectorFactory.connect(url);
>  MBeanServerConnection mbeanServerConnection = jmxConnector.getMBeanServerConnection();
>  ObjectName mbeanName = new ObjectName("org.apache.ZooKeeperService:name0=StandaloneServer_port-1");
>  ZooKeeperServerMXBean newProxyInstance = MBeanServerInvocationHandler.newProxyInstance(mbeanServerConnection,
>  mbeanName, ZooKeeperServerMXBean.class, true);
>  System.out.println(newProxyInstance.getClientPort());
>  }
> {quote}
> I dont see any API which can be used to access and update the log4J Mbeans e.g. "root".
What I want to achieve is to update the logging of zookeeper without taking a restart.
> Please advice if some API is exposed to achieve this. 

This message was sent by Atlassian JIRA

View raw message