Serveur MS SQL et JDBC: fermeture de la connexion

Im obtenir

I/O Erreur: base de données du serveur de connexion fermée.

lors de la connexion à MS SQL server 2008 à partir de code java .


SQL server est en mode mixte et sa machine locale.Ma chaîne de connexion est
jTDS

jdbc:jtds:sqlserver://nom_machine:1433;databaseName=DB;integratedSecurity=true


trace de la pile est

java.sql.SQLException: I/O Error: DB serveur a fermé la connexion.
au net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2311)
au net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:610)
au net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:345)
au net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3.java:50)
au net.sourceforge.jtds.jdbc.Le pilote.connect(Pilote.java:184)
à java.sql.DriverManager.getConnection(Source Inconnue)
à java.sql.DriverManager.getConnection(Source Inconnue)
au com.app.mise en veille prolongée.test.(test.java:22)
au com.app.mise en veille prolongée.test.main(test.java:53)
Causés par: java.io.IOException: DB serveur a fermé la connexion.
au net.sourceforge.jtds.jdbc.SharedSocket.readPacket(SharedSocket.java:848)
au net.sourceforge.jtds.jdbc.SharedSocket.getNetPacket(SharedSocket.java:727)
au net.sourceforge.jtds.jdbc.ResponseStream.getPacket(ResponseStream.java:466)
au net.sourceforge.jtds.jdbc.ResponseStream.lire(ResponseStream.java:103)
au net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2206)
... 8 plus
Exception in thread "main" java.lang.NullPointerException
au com.app.mise en veille prolongée.test.db(test.java:36)
au com.app.mise en veille prolongée.test.main(test.java:54)

Pilote JDBC

String url ="jdbc:sqlserver://machine:1433;instance=SQLEXPRESS;databaseName=db";

stacktrace

com.microsoft.sqlserver.jdbc.SQLServerException: échec de la Connexion de l'utilisateur "username".
au com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:156)
au com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:240)
au com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:78)
au com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2636)
au com.microsoft.sqlserver.jdbc.SQLServerConnection.ouverture de session(SQLServerConnection.java:2046)
au com.microsoft.sqlserver.jdbc.SQLServerConnection.l'accès$000(SQLServerConnection.java:41)
au com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2034)
au com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4003)
au com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1550)
au com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1207)
au com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(SQLServerConnection.java:1054)
au com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:758)
au com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
à java.sql.DriverManager.getConnection(Source Inconnue)
à java.sql.DriverManager.getConnection(Source Inconnue)
au com.app.mise en veille prolongée.test.(test.java:22)
au com.app.mise en veille prolongée.test.main(test.java:53)
Exception in thread "main" java.lang.NullPointerException
au com.app.mise en veille prolongée.test.db(test.java:36)
au com.app.mise en veille prolongée.test.main(test.java:54)

pouvez-vous coller stacktrace ici ?
pourrait être un problème de configuration du serveur...
j'ai ajouté la stacktrace à la question
est-il un serveur distant? si c'est le cas, le serveur peut être configuré pour ne pas autoriser les connexions à distance. Aussi les privilèges d'un Utilisateur sur la Base de données?
Essayez d'Utiliser un pilote jdbc sql server au lieu de jtds. Aussi, vous devez apporter des modifications à l'URL de la connexion SQL. En particulier, le besoin d'un nom pour être sous la forme utilisateur@[instanceID].

OriginalL'auteur Mukthi | 2012-06-27