Kann keine Verbindung zu SQL Server mithilfe von jTDS

Ich versuche eine Verbindung zu SQL Server 2008 R2, die über Java, und ich bin nicht in der Lage, dies zu tun mit jTDS 1.2.8. Das seltsame ist, dass es funktioniert, mit dem Microsoft JDBC-Treiber. Gibt es eine serverseitige Einstellung, die muss aktiviert sein, aktivieren jTDS auf ihn zugreifen? Oder bin ich einfach nur etwas fehlt in der URL?

Ich bin nicht mit der integrierten Windows-Authentifizierung, um die Anmeldeinformationen angeben, noch bin ich versucht, eine Verbindung mit SSL-Verschlüsselung (das sind Probleme, die ich fand, erzeugen kann, die Ausnahme bin ich zu sehen.)

Wenn ich den folgenden Code mit dem Microsoft-Treiber, funktioniert es wie erwartet, ich kann auf die Datenbank zugreifen ohne Probleme:

Connection connection = DriverManager.getConnection("jdbc:sqlserver://PHSSQL792\\PHSSQL792:1433", user, password);

(user und password sind Variablen, die zuvor deklariert, so kann ich sicher sein, dass ich die gleichen Werte, wenn die Verbindung mit einer der beiden Fahrer.)

Allerdings, wenn ich folgende mit der jTDS-Treiber:

Connection connection = DriverManager.getConnection("jdbc:jtds:sqlserver://PHSSQL792:1433;instance=PHSSQL792", user, password);

Bekomme ich die folgende Fehlermeldung:

java.sql.SQLException: I/O Error: DB server closed connection.
    at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2387)
    at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:614)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:356)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:185)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at database.db_access.SqlServerDatabaseTestApp.main(SqlServerDatabaseTestApp.java:28)
Caused by: java.io.IOException: DB server closed connection.
    at net.sourceforge.jtds.jdbc.SharedSocket.readPacket(SharedSocket.java:853)
    at net.sourceforge.jtds.jdbc.SharedSocket.getNetPacket(SharedSocket.java:732)
    at net.sourceforge.jtds.jdbc.ResponseStream.getPacket(ResponseStream.java:477)
    at net.sourceforge.jtds.jdbc.ResponseStream.read(ResponseStream.java:114)
    at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2281)
    at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:614)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:356)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:185)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at database.db_access.SqlServerDatabaseTestApp.main(SqlServerDatabaseTestApp.java:28)

Habe ich versucht, die Verbindung mit und ohne den Namen der Datenbank, und/oder mit/ohne den Namen der Instanz, und bekam die gleichen Ergebnisse. Irgendwelche Vorschläge?

Edit:

Andere jTDS Verbindungs-URLs, die ich ausprobiert habe (die alle Gaben mir die gleiche Fehlermeldung wie oben):

"jdbc:jtds:sqlserver://PHSSQL792:1433"
"jdbc:jtds:sqlserver://PHSSQL792:1433/pacsdb"
"jdbc:jtds:sqlserver://PHSSQL792:1433/pacsdb;instance=PHSSQL792"

Den entsprechenden Microsoft-URLS (die funktioniert):

"jdbc:sqlserver://PHSSQL792:1433"
"jdbc:sqlserver://PHSSQL792:1433;databasename=pacsdb"
"jdbc:sqlserver://PHSSQL792\\PHSSQL792:1433;databasename=pacsdb"

Also, ich kann erfolgreich eine Verbindung zu einer anderen SQL Server 2008 R2 Datenbank (auf einem anderen server) mit der jTDS-Treiber, so dass es nicht die jar.

InformationsquelleAutor cmolodo | 2014-03-05
Schreibe einen Kommentar