2017-03-02 6 views
0

den Code unten:"com.microsoft.sqlserver.jdbc.SQLServerException: SQL Server hat keine Antwort zurückgegeben."

package com.anonymised.anonymised.anonymised; 


import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

public class EntryPoint 
{ 
    private static Logger logger = LogManager.getLogger(EntryPoint.class); 
    private static final String JDBC_DRIVER_NAME = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 

    public static void main(String[] args) 
    { 
     logger.info("Service started!"); 

     try 
     { 
      Class.forName(JDBC_DRIVER_NAME); 
     } 
     catch (ClassNotFoundException e) 
     { 
      logger.error("The necessary JDBC driver is not available (missing dependency?)",e); 
      System.exit(CrashCodes.JDBC_DRIVER_UNAVAILABLE); 
     } 

     // Credentials for connection to the DB 
     String dbURL = "anonymised:1433"; 
     String dbDatabaseName = "anonymised"; 
     String dbUsername = "anonymised"; 
     String dbPassword = "anonymised"; 

     String connectionUrl = "jdbc:sqlserver://"+dbURL+";" + "databaseName="+dbDatabaseName+";user="+dbUsername+";password="+dbPassword+";"; 

     try 
     { 
      Connection con = DriverManager.getConnection(connectionUrl); 
     } 
     catch (SQLException e) 
     { 
      logger.error("Cannot connect to the database",e); 
      System.exit(CrashCodes.DATABASE_INITIAL_CONNECTION_FAILED); 
     } 
    } 
} 

ich folgende Ausgabe:

[main] ERROR de.anonymised.anonymised.anonymised.EntryPoint - Cannot connect to the database 
com.microsoft.sqlserver.jdbc.SQLServerException: SQL Server did not return a response. The connection has been closed. 

Der Benutzername, Passwort, usw. sind alle richtig und der Server zugegriffen werden kann (ich festgestellt, dass durch die erfolgreiche Erstellung eine Verbindung mit einem Datenbankverwaltungstool).

Warum bekomme ich dann diese Ausnahme?

+0

Wenn Sie mit Ihrem "Datenbankverwaltungstool" verbinden, gibt 'SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@ SPID' 1433 zurück? –

+0

Nein, es gibt [Null] zurück. – ghjk

+0

So bestätigt diese Verbindung nicht, dass auf den SQL Server * über TCP/IP * zugegriffen werden kann (es muss eine gemeinsame Speicher- oder Named Pipe-Verbindung verwendet werden). Die SQL Server-Instanz überwacht möglicherweise nicht Port 1433; Sie sollten überprüfen, ob TCP/IP aktiviert ist und die verwendete Portnummer bestätigen. –

Antwort

0

Ich habe den "Microsoft ODBC-Treiber für SQL Server auf MacOS"() installiert und jetzt funktioniert es. Danke für deine Antworten.

Verwandte Themen