2009-07-27 4 views
10

Ho una situazione. Ho un'applicazione quasi pronta per il rilascio (rilascio in 2 mesi) che esegue query sul database Microsoft Sql-Server. Utilizziamo l'implementazione del driver jdbc Microsoft standard per sql-server. Funziona alla grande, senza problemi.Utilizzo del driver JTDS

Ora arriva uno sviluppatore e dice che dovremmo passare la nostra implementazione jdbc predefinita all'implementazione del driver JTDS.

Ho letto sul web un po 'del driver e dei suoi benchmark e così via, e sembra davvero migliorare un po' il driver di Microsoft.

Ma tenendo in considerazione l'uscita presto e che il driver è opensource e tutte le altre cose che al momento non ci penso in questo momento, investiresti il ​​tuo tempo per fare il passaggio?

risposta

8

Ho utilizzato il driver JTDS in produzione per circa un anno senza problemi.

Tuttavia, nel tuo caso, se hai un sistema che è stato costruito e testato con il driver JDBC MS, allora dovresti proprio attenersi a quello.

Nel frattempo, eseguire alcuni test e vedere se è possibile raccogliere dati complessi che mostrano JTDS che sovraperformano MS JDBC per i casi d'uso. Se i dati eseguono il backup di queste asserzioni, allora viene fuori un piano per iniziare a utilizzare JTDS nei cicli di sviluppo e test, per poi distribuirlo alla versione di produzione.

7

Vicino allo sblocco, n.

Più tardi, sì.

JTDS presenta vantaggi rispetto a MS, ad esempio è possibile utilizzare un account di servizio di dominio per la connessione SQL e supporta SSL crittografato.

8

Utilizziamo i driver jTDS per circa un anno. Ad oggi, posso dire quanto segue:

Pro:

  • piccolo JAR.
  • ResultSets sono più veloci. Il recupero è configurabile.
  • Cache risultati enormi su disco (il driver MS richiede di utilizzare i cursori bidirezionali lenti o i risultati delle cache in memoria, producendo occasionalmente OutOfMemoyErrors).
  • La documentazione è piccola ma sufficiente (la documentazione del driver MS è diffusa in centinaia di pagine MSDN).
  • Segnalazione di errori migliore (sempre una buona SQLException, mentre il driver MS a volte fornisce ClassCastException o altri RuntimeException).
  • Open source.

Contro:

  • Bad supporto, a causa di:
    • relativamente piccola base di utenti, dando il sostegno della comunità male.
    • Non supportato da una grande azienda, quindi se hai bisogno di una soluzione veloce, devi sperare che gli sviluppatori siano disponibili e disposti ad aiutare (e ricorda che non sono pagati per rispondere ai messaggi dei forum).
  • Poiché il protocollo MS SQL Server ha molte parti proprietarie, MS può eseguire modifiche che interrompono jTDS quando si applicano gli aggiornamenti di manutenzione sul server.
  • Non aggiornato come driver MS. Quando MS avvia una nuova versione di SQL Server, i driver JDBC vengono generalmente rilasciati insieme. jTDS deve lavorare per recuperare e potrebbero volerci mesi.
+1

Non sarei d'accordo con una base di utenti relativamente piccola, ogni azienda per cui ho lavorato ha utilizzato jTDS anziché il driver JDBC MSSQL. – mjaggard

+0

La base utente è molto piccola rispetto alla base utente del driver MS, quindi la parola "relativamente". – fernacolo

+0

Puoi fornire la fonte della tua base di utenti relativa? Non ho mai trovato che Microsoft fosse pronto a rilasciare il proprio driver e non ha visto la sua versione allineata con quella delle versioni di SQL Server. –