2009-07-27 30 views
10

Tengo aquí una situación. Tengo una aplicación casi lista para lanzar (lanzamiento en 2 meses) que ejecuta consultas en la base de datos del servidor Sql de Microsoft. Usamos la implementación estándar del controlador jdbc de Microsoft para el servidor sql. Funciona muy bien, sin problemas.Uso del controlador JTDS

Ahora viene un desarrollador y dice que deberíamos cambiar nuestra implementación de jdbc predeterminada a la implementación del controlador JTDS.

He leído en la web un poco sobre el controlador y sus puntos de referencia, y así sucesivamente, y realmente parece funcionar un poco mejor el controlador de Microsoft.

Pero teniendo en cuenta el lanzamiento pronto y que el controlador es de código abierto y todas las otras cosas que actualmente no pienso en este momento, ¿invertirías tu tiempo para hacer el cambio?

Respuesta

8

He usado el controlador JTDS en producción durante alrededor de un año sin ningún problema.

Sin embargo, en su caso, si tiene un sistema que ha sido creado y probado con el controlador MS JDBC, entonces realmente debe mantenerlo.

Mientras tanto, realice algunas pruebas y vea si puede recopilar las cifras que muestran que JTDS supera al MS JDBC para sus casos de uso. Si los datos respaldan estas afirmaciones, elabore un plan para comenzar a utilizar JTDS en sus ciclos de desarrollo y prueba, y finalmente impleméntelo en su versión de producción.

7

Close to release, no.

Hágalo más tarde, sí.

JTDS tiene ventajas sobre MS, como puede usar una cuenta de servicio de dominio para su conexión SQL y admite SSL encriptado.

8

Estamos utilizando controladores jTDS desde hace aproximadamente un año. A partir de hoy, puedo decir lo siguiente:

Pros:

  • más pequeño JAR.
  • ResultSets son más rápidos. La obtención es configurable.
  • Almacena en caché los resultados enormes en el disco (el controlador MS requiere que utilice cursores bidireccionales lentos o almacena en caché los resultados en la memoria, lo que ocasionalmente produce OutOfMemoyErrors).
  • La documentación es pequeña pero suficiente (la documentación del controlador de MS está distribuida en cientos de páginas de MSDN).
  • Mejor informe de errores (siempre una buena excepción SQLException, mientras que el controlador MS a veces da ClassCastException u otra RuntimeException).
  • Código abierto.

Contras:

  • mal soporte, debido a:
    • relativamente pequeña base de usuarios, dando mal apoyo de la comunidad.
    • No respaldado por una gran empresa, por lo que si necesita una solución rápida, debe esperar que los desarrolladores estén disponibles y dispuestos a ayudar (y recuerde que no se les paga por contestar los mensajes de los foros).
  • Como el protocolo del servidor MS SQL tiene muchas partes propietarias, MS puede realizar cambios que rompen jTDS cuando aplica actualizaciones de mantenimiento en el servidor.
  • No está tan actualizado como el controlador MS. Cuando MS lanza una nueva versión de SQL Server, los controladores JDBC generalmente se lanzan juntos. jTDS debe trabajar para ponerse al día y eso puede llevar meses.
+1

No estoy de acuerdo con una base de usuarios relativamente pequeña, cada compañía para la que he trabajado ha usado jTDS en lugar del controlador MSSQL JDBC. – mjaggard

+0

La base de usuarios es muy pequeña en comparación con la base de usuarios del controlador de MS, de ahí la palabra 'relativamente'. – fernacolo

+0

¿Puede proporcionar la fuente de su base de usuarios relativa? Nunca encontré a Microsoft avisado con el lanzamiento de su controlador y no he visto su lanzamiento alineado con el de las versiones de SQL Server. –

Cuestiones relacionadas