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)
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
Vous devez vous connecter pour publier un commentaire.
Votre Chaîne de Connexion et d'authentification des erreurs. si c'est le mode de mélange de ne pas utiliser l'authentification SQL
Essayer cette
Nom de l'ordinateur : janaka-pc Nom d'Utilisateur SQL : sa Mot de passe SQL
: 1234 Base De Données : Janak_DB
Code sql Conncetion dans JDBC
Classe.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://janaka-PC;utilisateur=sa;mot de passe=1234;database=Janak_DB");
OriginalL'auteur janaka aravinda
Vous avez des problèmes dans vos chaînes de connexion
Pour jTDS:
jdbc:jtds:sqlserver://nom_machine:1433;databaseName=DB;useNTLMv2=true;domain=groupe de travail
Vous pouvez lire http://jtds.sourceforge.net/faq.html#windowsAuth qui sont nécessaires pour la connexion Unique de la bibliothèque pour NTLM pour le travail.
"integratedSecurity=true" que vous avez fournies pour jdts est valide lorsque vous utilisez le pilote JDBC
jdbc:sqlserver://machine:1433;instance=SQLEXPRESS;databaseName=db;integratedSecurity=true
Si im la configuration de useNTLMv2=false leur im obtenir même la connexion a échoué erreur.
Mais je peux en mesure d'accéder au système de tables en DB
Pour le jdts cas, avez-vous l'installer (copier) le ntmlauth.dll fichier? Vous pouvez lire à ce sujet dans la readme.sso
oui j'ai placé cette dll dans les jre.
OriginalL'auteur Serkan Arıkuşu
Vous avez une erreur d'authentification sur le MS SQL côté.
Si vous n'êtes pas dans le contrôle de la façon d'acquérir la connexion (c'est à dire, vous êtes à l'aide d'une source de données ou un Pool de Connexion), l'URL de connexion doit contenir le login et le mot de passe à utiliser, comme:
Si l'application est en cours d'exécution sur une machine Windows et que vous voulez utiliser les informations d'identification de l'utilisateur, vous pouvez spécifier le
domain
paramètre avec ou sansuseNTLMv2
.Enfin, si vous êtes sur une machine windows, mais que vous souhaitez authentifier l'utilisateur à l'encontre d'un domaine, vous devez fournir le nom d'utilisateur, mot de passe et les paramètres du domaine. Vous pouvez lire tout ça dans le jtds FAQ, spécialement le Format d'URL section.
OriginalL'auteur Soronthar