我在两台不同的物理机器上安装了两台服务器节点IBM Websphere Application Server。任何人都可以用java代码来帮助我检查服务器实例是否正在运行,或者其中一台服务器未启动并正在运行?如何检查服务器已启动?
回答
要快速且便携地执行此操作,可以检查服务器是否提供页面。
例如,您可以:
boolean isAlive = true;
try {
URL hp = new URL("http://yourserver/TestPage.html");
URLConnection hpCon = hp.openConnection();
// add more checks...
} catch (Exception e) {
isAlive = false;
}
这没有太大的复杂的方法将每个HTTP服务器的工作。下面
@ Andrea Colleoni:我相信'boolean isAlive = false;'应该是'boolean isAlive = true;'..对吗? –
对!抱歉... –
这缺少一个hpCon.connect()调用来实际建立连接。 –
希望是你想要的...
或失败:
URL url = new URL("http://google.com:666/");
HttpURLConnection httpConn = (HttpURLConnection)url.openConnection();
httpConn.setInstanceFollowRedirects(false);
httpConn.setRequestMethod("HEAD");
try{
httpConn.connect();
System.out.println("google.com : " + httpConn.getResponseCode());
}catch(java.net.ConnectException e){
System.out.println("google.com:666 is down ");
}
好运!
Fahim/Andrea我感谢你们两位的及时答复。 –
欢迎您..... –
我认为您可能需要的是使用WebSphere Thin Administrative Client,它公开了Java API并提供对WAS MBeans的访问,使您可以查询服务器/应用程序的状态(以及许多其他管理和监视任务)。
首先,你要得到一个连接被(在AdminClient
)如下:
Properties clientProps = new Properties();
clientProps.setProperty(AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP);
clientProps.setProperty(AdminClient.CONNECTOR_HOST, dmgrHostname);
clientProps.setProperty(AdminClient.CONNECTOR_PORT, dmgrSoapConnectorPort);
if (dmgrIsSecure) {
clientProps.setProperty(AdminClient.CONNECTOR_SECURITY_ENABLED, "true");
clientProps.setProperty(AdminClient.USERNAME, wasUsername);
clientProps.setProperty(AdminClient.PASSWORD, wasUserPassword);
}
AdminClient adminClient = AdminClientFactory.createAdminClient(clientProps);
接下来,你要查询有关MBean的,然后再进行相关操作。就你而言,你可能对ClusterMgr和/或J2EEApplication MBean感兴趣。下面是为群集的状态查询的例子:
AdminClient adminClient = getAdminClient(target);
ObjectName clusterMgr =
(ObjectName)adminClient.queryNames(
ObjectName.getInstance("WebSphere:*,type=ClusterMgr"), null).iterator().next();
String state = adminClient.invoke(clusterMgr, "getClusterState",
new Object[] {clusterName}, new String[] {String.class.getName()});
根据需要,如查询个人集群成员的状态,您可以调用进一步的操作。
此外,除了查询,也可以register notifications让你的程序可以在特定事件发生的通知,如集群,服务器或应用程序状态的变化。
+1良好的使用mbeans –
我们使用openConnection()
获取我们想要的URL的专用连接。它将返回抽象类URLConnection
的一个子类,具体取决于URL的公共协议,例如HttpURLConnection
。然后用方法connect()
打开通信链接
private String server = "http://testserver:9086";
try {
URLConnection hpCon = new URL(SERVER).openConnection();
hpCon.connect();
} catch (Exception e) {
// Anything you want to do when there is a failure
}
- 1. 如何使用Curator检查Zookeeper服务器是否已启动?
- 2. 如何检查远程Oracle服务器已启动并运行
- 3. IIS 6:如何检查服务器跟踪是否已启用?
- 4. 如何检查另一台服务器是否启动了JavaScript?
- 5. 如何检查Web服务器是否启动? (C#)
- 6. 如何检查服务器是否需要重新启动
- 7. 如何检查已启动的意向?
- 8. 如何检查IntentService是否已启动
- 9. 连接以检查SOAP服务已启动
- 10. 检查KSOAP2网络服务是否已启动并运行
- 11. postgres服务器已启动但无法连接到服务器
- 12. Android4.0服务已启动
- 13. Eclipse无法检测到服务器已启动
- 14. 如何检查Azure服务结构是否已启动并正在运行?
- 15. 在SQL Server启动时检查服务
- 16. 如何在linux服务器上自动启动weinre服务器
- 17. Gem服务器已启动,但无法在前端查看
- 18. 使用VBScript如何检查后台打印程序服务是否已启动,如果不启动它?
- 19. 已启动还是已绑定服务?
- 20. 如何检查WCF侦听器已启动并正在运行
- 21. 如何远程重新启动服务器并确保它已启动
- 22. Geronimo服务器已启动,但控制台未启动
- 23. 托管服务器未启动管理控制台已启动
- 24. 检测谁启动COM服务器
- 25. 如何检查活动是否由可穿戴侦听器服务启动?
- 26. Сhecking如果服务器已启用TRACE
- 27. 如何检查邮件服务器是否已配置?
- 28. 如何检查服务器投票是否已计算在内?
- 29. 如何在重新启动后检查服务?
- 30. 检查,如果网络服务已经启动并运行 - 高效
是不是WebSphere ND提供了这个框? –
我的目标是在服务器停机/挂起时得到通知。你能告诉我,ND是如何提供这些细节的? –
只需要一个已知的页面,并确保你找回来;微不足道的cron脚本或其他。 –