こんにちは、クラスターoamサーバーのどれがオンラインであるかオフラインであるかを監視しようとすると問題が発生します。aSDKのAccessClientクラスのgetServerDiagnosticInfo()メソッドを使用しますが、返されるハッシュテーブルにはキー(サーバーの名前とポート)のみが含まれます)および別のHashTable(HashTableのサブタイプであるObKeyMapVal)を含む値ですが、このオブジェクトには、APIドキュメントに記載されているように、ヘルス、サーバーポート、サーバー名、および接続数が含まれている必要があると思いますが、サイズと内容を印刷すると「0」と[](空)のみを出力します
スニペット:
try{
AccessClient ac = AccessClient.createDefaultInstance("/dir",AccessClient.CompatibilityMode.OAM_10G);
Hashtable info = ac.getServerDiagnosticInfo();
Set<?> servers = info.keySet();
Collection<?> serverInfo = info.values();
System.out.println("Num of servers: " + servers.size());
Iterator it = servers.iterator();
Object servidor = null;
Object dato = null;
while(it.hasNext()){
servidor = it.next();
System.out.println("Server: " + servidor);
dato = info.get(servidor);
System.out.println("Data: " + dato);
ObKeyValMap ob = (ObKeyValMap) dato;
System.out.println("Size: " + ob.keySet().size());
System.out.println("Is Empty: " + ob.keySet().isEmpty());
System.out.println("Properties: " + ob.keySet());
}
ac.shutdown();
} catch (oracle.security.am.asdk.AccessException e) {
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
そして、次の出力を得ました:
サーバー数: 2
サーバー: myserver1.com5575 データ: {} サイズ: 0 空です: true プロパティ: []
サーバー: myserver2.com5575 データ: {} サイズ: 0 空です: true プロパティ: []
ご協力いただきありがとうございます !!!