プロジェクトが達成したい理由の最初の助成金は、そう、このメソッドは常にFalseを返す理由を知りませんが、基本的にisReachable使用されている多くの方法()判決を見つけるために、早期のオンライン結果を判断するために、データベースに接続できるようにする必要があることです自分だけのA書きます。最初のping IPとポート番号の方法に直接次のコードを、
パブリックブールisHostConnection(文字列IP、INTポート){
ソケットソケット=新しいソケット()。
{しようと
socket.connect(新規たInetSocketAddress(IP、ポート)、3000)。
}キャッチ(てSocketTimeoutException S){
falseを返します。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
falseを返します。
}最後に{
{試みる
socket.closeを();
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
trueを返します。
}
//以下は、リターン接続状態であります
公衆リスト<ハッシュマップの<string、オブジェクト>> getConnectionState(){
リスト<ハッシュマップの<string、オブジェクト>> listMap =新規のArrayList <HashMapの<文字列オブジェクト>>();
{試みる
リスト<FactoryDataBaseConfig> FDB = factoryDataBaseConfigService.getFactoryState()。
一覧<文字列>リスト=新しいのArrayList <文字列>();
ハッシュマップの<string、オブジェクト>マップ=新しいハッシュマップの<string、オブジェクト>();
以下のために(INT i = 0; iはfdb.size()<; iは++)を{
ブール結果= FALSE;
結果= this.isHostConnectable(fdb.get(I).getIpHost()、1433)。
IF(結果){
int型factoryState = factoryDataBaseConfigService.updateStateTrue(fdb.get(I).getOrgfk());
IF(factoryState == 1){
map.put( "状態"、TRUE)。
}他{
map.put( "状態"、偽)。
}
}他{
INT factoryState = factoryDataBaseConfigService.updateStateFalse(fdb.get(I).getOrgfk())。
IF(factoryState == 1){
map.put( "状態"、TRUE)。
}他{
map.put( "状態"、偽の);
}
list.add(fdb.get(I).getOrgname())。
}
}
map.put( "リスト"、リスト)。
listMap.add(マップ)
}キャッチ(例外e){
新規のRuntimeExceptionを投げる(e.getMessage())。
}
戻りlistMap。
}