Pilote JDBC SQL server pour SQL server 2014
Nous avons récemment migré vers SQL server 2014 avec JAVA 5 sur une machine et JAVA 6 sur l'autre (c'est une obligation). Lorsque j'essaie de me connecter à la base de données que je reçois suivante exception.
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (
com.microsoft.sqlserver.jdbc.SQLServerException:
The server version is not supported.
The target server must be SQL Server 2000 or later.
)
at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:168)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:508)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:207)
Voici la configuration:
- Système d'exploitation: Windows server 2012
- SQL server 2014
- Version de JAVA: JDK5u11 et JDK6u24
- Fichier Jar: sqljdbc.jar pour JDK5 et sqljdbc4.jar pour JDK6
La version de MS JDBC utilisez-vous? C'est peut-être trop vieille, essayez d'utiliser
Microsoft SQL Server JDBC Driver 4.1 for SQL Server
si vous ne l'avez pas déjà.
OriginalL'auteur Nayan Sonthalia | 2014-12-22
Vous devez vous connecter pour publier un commentaire.
Vous devez mettre à jour votre pilote JDBC SQL Server au moins la version 4.0 (télécharger ici). Ensuite, vous pouvez utiliser ses versions de
pour accéder à SQL Server 2014.
nous avons rencontré un problème avec sqljdbc4.jar où la composit interrogé ne fonctionnaient pas correctement becase certains changements apportés par microsoft. J'ai eu une instruction select cours d'exécution à l'intérieur d'un insert, ce qui a entraîné aucun jeu de résultats en cours de returened à l'application et une exception en java. Lorsque nous débogué plus, nous avons constaté que microsoft a changé la façon dont sqljdbc4.jar fonctionne pour composit interrogé. Nous avons donc utilisé jtds bocal en place et tous les problèmes ont été résolus. Suivez le lien pour plus de détails ----- stackoverflow.com/questions/28022701/....
Nous avons converti avec succès un très gros projet à l'aide de l'ORM, de Procédures Stockées et de JDBC requêtes de JTDS à sqljdbc4 pilote. Nous avons fait la rencontre d'une question, où JTDS était tolérante mais sqljdbc n'est pas, et c'est la nécessité pour le SET NOCOUNT on; déclaration dans la plupart des procédures stockées et de nombreux sql qui sont attendus pour renvoyer des données, mais peut ne pas renvoyer des résultats. Pour plus d'informations sur ce concept, voir: stackoverflow.com/questions/1483732/set-nocount-on-usage
Pour SQL Server 2016 un Java 8, devrait sqljdbc4.être mis à niveau?
OriginalL'auteur Gord Thompson
Nous avons jeté les
sqljdnc4.jar
et utiliséjtds jar
à la place et tout fonctionne comme un charme.Après avoir changé le disque, nous avons fait une santé mentale de l'ensemble de l'application, y compris la performance et n'a pas à faire face à toute les questions. Mais vous avez raison, d'autres applications peuvent avoir des problèmes lorsqu'ils changent de voiture à jtds.
Notez également que, selon le jtds développeur, le jtds pilote est maintenant obsolète en raison des progrès accomplis disponible int le pilote microsoft. Aucun nouveau développement est en cours sur la jtds projet et ils recommandent maintenant de passer à l'ms pilote.
avez-vous une source/lien pour cette info sur jtds?
La dernière version a été 1.3.1 publié sur 6/8/2013. Le dernier commit était sur 11/14/2014. Il y a un thread sur le JTDS section discussion de SourceFourge ici: sourceforge.net/p/jtds/discussion/129584/thread/050f9892 momo explique: "jTDS est plus développé activement. J'ai été le dernier active de développeurs pendant des années, mais actuellement je ne vois pas comment continuer le travail. J'ai encore de l'espoir, les choses peuvent changer... qui sait. En outre, Sybase et Microsoft pilotes sont beaucoup mieux maintenant (bien qu'encore loin d'être parfait, bien sûr) et la plupart des raisons pour l'utilisation d'un autre pilote, sont devenues obsolètes."
OriginalL'auteur Nayan Sonthalia