我们如何ehcache
在远程服务器上清除?
我的应用程序在登台环境(主机111.22.3.44
和端口17000
)中运行,我想编写一个实用方法,可以连接到给定host:port
并清除ehcache
我的应用程序。该实用程序应该可以在 Windows 和 Linux 中运行。
我使用JConsole.exe
实用程序来刷新ehcache
在 stage-server 中创建的缓存,但是有一种情况我需要以编程方式进行。
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");
}