我试图为JMX连接器设置请求超时时间,但似乎不起作用。
env.put("jmx.remote.x.request.waiting.timeout", new Long(30000));
但是因为它没有起作用,我通过谷歌搜索了解原因,并发现在标准JMX远程API中不支持上述环境变量。
是否有其他方法来设置请求超时时间?
env.put("jmx.remote.x.request.waiting.timeout", new Long(30000));
但是因为它没有起作用,我通过谷歌搜索了解原因,并发现在标准JMX远程API中不支持上述环境变量。
是否有其他方法来设置请求超时时间?
-Dsun.rmi.transport.tcp.responseTimeout=60000
我已经测试过了,它确实有效。在Oracle文档中,还有一些其他对客户端和服务器端通信非常有用的属性。
您可以尝试使用以下代码设置JMX连接器超时时间:
JMXConnector connectWithTimeout(JMXServiceURL url, long timeout, TimeUnit unit) {
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<JMXConnector> future = executor.submit(new Callable<JMXConnector>() {
public JMXConnector call() {
return JMXConnectorFactory.connect(url);
}
});
return future.get(timeout, unit);
}