2014-12-03 21 views
5

Il mio metodo deve tentare di connettersi ad un altro server DB. Quando eseguo la mia applicazione su Linux Server, tutto andava bene. Quando ho eseguito su sistema operativo Windows - ho java.net.SocketTimeoutException: Read timed outVerifica connessione tramite AS400

private boolean pingServer(String host) { 
    String username = "username"; 
    String password = "password"; 
    boolean successful; 

    AS400 as400 = new AS400(host, username, password); 
    SocketProperties socketProperties = as400.getSocketProperties(); 
    socketProperties.setLoginTimeout(TIMEOUT_MILLISEC); 
    socketProperties.setSoTimeout(TIMEOUT_MILLISEC); 

    as400.setSocketProperties(socketProperties); 
    try{ 
     successful = as400.validateSignon(); 
    } catch (AS400SecurityException e) { 
     successful = true; 
    } catch (IOException e) { 
     successful = false; 
    } catch (TransactionException e) { 
     successful = false; 
    } 
    as400.disconnectAllServices(); 
    as400 = null; 
    return successful; 
} 

Qualcuno mi può dare qualche consiglio? Grazie.

risposta

2

Le connessioni AS/400 utilizzano molte porte di rete che devono essere disponibili.

Provare a disabilitare tutti i firewall tra l'utente e il server e riprovare. Questo include il firewall del software (potrebbe far parte della suite antivirus) sul sistema Windows

+1

Inoltre, non è necessario impostare le proprietà del socket. –

+0

Grazie per la risposta. Ma non posso disattivare i firewall. Forse sai un altro modo, che può aiutarmi? –

+1

In tal caso sarà necessario l'aiuto degli amministratori di AS/400. –