清除远程服务器的ehcache

Yat*_*iya 3 java ehcache

我们如何清除ehcache远程服务器?

我的应用程序在登台环境(主机111.22.3.44和端口17000)中运行,我想编写一个实用程序方法,可以连接到给定的host:port并清除ehcache我的应用程序.该实用程序应该在Windows和Linux中都可以使用.

我使用JConsole.exe实用程序来刷新ehcache在stage-server 中创建的缓存,但是有一种情况我需要以编程方式执行它.

Yat*_*iya 5

Hurrey ...... :)我得到了ehcache在远程环境中清除的解决方案.在这里,我编写了一个Java实用程序方法,它将刷新ehcache由主机名和端口指定的给定远程机器.

public void flushEhcache() throws IOException, NamingException,  MalformedObjectNameException, NullPointerException, AttributeNotFoundException, InstanceNotFoundException, MBeanException, ReflectionException {
    String host = "111.22.3.44";
    String port = "16000";
    JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://"
        + host + ":" + port + "/jmxrmi");
    JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
    MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();        
    ObjectName beanName = new ObjectName("net.sf.ehcache:type=CacheManager,name=Your  Application Name Here");        
    mbsc.invoke(beanName, "clearAll", new Object[0], new String[0]);
    System.out.println("Flushed out ehcache succesfully");
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您不确定要使用的ObjectName.它很容易连接并获取所有现有MBean的名称,如下所示:`Set <ObjectName> names = mbsc.queryNames(null,null);` (2认同)