我在兩臺不同的物理機器上安裝了兩臺服務器節點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腳本或其他。 –