Avatar billede Slettet bruger
20. oktober 2003 - 15:31 Der er 27 kommentarer og
1 løsning

Forbinde til MS SQL Server vha, jtds driver

Hej eksperter.

Jeg sidder her og er ved at rykke håret ud af hovedet på mig selv. Jeg er ved at lave et program, som connecter til en SQL-server - og dette fungerede perfekt, indtil jeg flyttede databasen hjem til mig selv (installerede en MS SQL Server 2000 Evaluation) sådan så jeg kunne arbejde hjemmefra. Men nu får jeg følgende fejl:

commonServices.technicalServices.exceptions.UncatagorizedSQLException: ( JDBCTemplate.query(psc) with PreparedStatementCreator [commonServices.technicalServices.mapperFramework.mappers.Cat1Mapper$2@138c63] ): encountered SQLException [Connection refused: connect]

Jeg har oprettet brugeren og denne har også et login, og connecter med følgende string: "jdbc:jtds:sqlserver://192.168.1.10:1433/torms;PROGNAME=torms;USER=xxxx;PASSWORD=xxxx"

Jeg er 100% sikker på at brugernavn og password er korrekt,  jeg har konfigureret serverens sikkerhed-tab til at være: [x] Authentication SQL Server and Windows. og Audit level er sat til none... Hvad gør jeg lige galt her, det fungerer jo ikke helt efter hensigten da jeg får en connection refused. Jeg mener jo blot at jeg burde kunne connecte uden problemer.

100 point til det rigtige svar, sæt igang :-)
Avatar billede arne_v Ekspert
20. oktober 2003 - 15:41 #1
Hvad er jtds driveren for en ?

Og hvorfor bruger du ikke Microsofts ?
Avatar billede bennytordrup Nybegynder
20. oktober 2003 - 15:46 #2
Du forsøger at connecte til en instance ved navn torms. Er det også instancenavnet hjemme? Hvad med at bruge (local) i stedet for IP-adressen (forudsat, at det er på lokal-maskinen)
Avatar billede Slettet bruger
20. oktober 2003 - 15:51 #3
JTDS er: jtds.sourceforge.net/

Erhmmm... benny.tordrup, ifølge hvad jeg kan se på jtds' hjemmeside, så er torms navnet på den database jeg ønsker at benytte mig af. Ikke instance-name. ? Eller har jeg fået noget galt i halsen ?
Avatar billede Slettet bruger
20. oktober 2003 - 15:52 #4
arne_v... kan Microsofts driver bruges til at forbinde over TCP/IP-protokollen (via. en IP-adresse?)
Avatar billede arne_v Ekspert
20. oktober 2003 - 15:54 #5
Ja !
Avatar billede bennytordrup Nybegynder
20. oktober 2003 - 15:55 #6
Hvad koder du i?
Avatar billede arne_v Ekspert
20. oktober 2003 - 15:55 #8
benny>

JDBC !  Hvad tror du han koder i ?
Avatar billede bennytordrup Nybegynder
20. oktober 2003 - 15:56 #9
J#

Det har jeg ikke en dyt kendskab til. Men kan man ikke bruge SqlConnection derfra (fra frameworket)
Avatar billede arne_v Ekspert
20. oktober 2003 - 15:57 #10
connect med:

class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://servernavn:1433;DatabaseName=databasenavn", "brugernavn", "password");

Du skal have både mssqlserver.jar og msbase.jar i classpath !
Avatar billede arne_v Ekspert
20. oktober 2003 - 15:59 #11
Jeg formoder da at han programmerer i Java.

(jeg tvivler meget på at J# kan bruge JDBC)
Avatar billede Slettet bruger
20. oktober 2003 - 18:57 #12
arne_v, jeg er ved at forsøge at bruge Microsofts drivere. Jeg har installeret dem, og kopieret dem til %JAVA_HOME%\jre\lib\ext, og min classpath peger også herpå...alligevel får jeg en ClassNotFoundException på SQLServerDriver.class ...:

Filerne er placeret i:
C:\Java\j2sdk1.4.2\jre\lib\ext\msbase.jar
C:\Java\j2sdk1.4.2\jre\lib\ext\mssqlserver.jar

og min classpath er:
.;C:\Java\j2sdk1.4.2\jre\lib;C:\Java\j2sdk1.4.2\jre\lib\ext;

Hjælp....jeg er godt nok forvirret, for det burde jo være ok
Avatar billede arne_v Ekspert
20. oktober 2003 - 19:00 #13
SNakker vi client application eller noget JSP/servlet ?
Avatar billede Slettet bruger
20. oktober 2003 - 19:02 #14
Vi snakker en klient applikation, ingen Servlet ting endnu...men det kommer senere...gisp :-|
Avatar billede arne_v Ekspert
20. oktober 2003 - 19:04 #15
Kan du prøve at køre applikationen manuelt med:

java -classpath .;C:\Java\j2sdk1.4.2\jre\lib;C:\Java\j2sdk1.4.2\jre\lib\ext din-main-class

?
Avatar billede Slettet bruger
20. oktober 2003 - 19:12 #16
Det har jeg lige forsøgt, og det gør absolut ingen forskel...min stacktrace ser forresten således ud.:

C:\Documents and Settings\Intelligent_worm\My Documents\5. Sem - Hovedopgave\Tor
ms Kode\test>user
commonServices.technicalServices.exceptions.UncatagorizedSQLException: ( JDBCTem
plate.query(psc) with PreparedStatementCreator [commonServices.technicalServices
.mapperFramework.mappers.Cat1Mapper$2@2f48d2] ): encountered SQLException [com.m
icrosoft.jdbc.sqlserver.SQLServerDriver]
        at commonServices.technicalServices.jdbcTemplate.SQLServer2000ExceptionT
ranslator.translate(SQLServer2000ExceptionTranslator.java:51)
        at commonServices.technicalServices.jdbcTemplate.JDBCTemplate.query(JDBC
Template.java:57)
        at commonServices.technicalServices.mapperFramework.mappers.Cat1Mapper.g
et(Cat1Mapper.java:62)
        at commonServices.technicalServices.mapperFramework.PersistenceFacade.ge
t(PersistenceFacade.java:50)
        at commonServices.technicalServices.mapperFramework.PersistenceFacade.ge
t(PersistenceFacade.java:45)
        at userArea.application.SearchController.getAllCat1Objects(SearchControl
ler.java:26)
        at userArea.presentation.SearchPanel.reloadCat1Data(SearchPanel.java:318
)
        at userArea.presentation.SearchPanel.<init>(SearchPanel.java:41)
        at userArea.presentation.Desktop.setupGUI(Desktop.java:84)
        at userArea.presentation.Desktop.<init>(Desktop.java:57)
        at UserArea.main(UserArea.java:29)
Caused by: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLSer
verDriver
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at commonServices.technicalServices.jdbcTemplate.DataSourceUtils.getConn
ection(DataSourceUtils.java:31)
        at commonServices.technicalServices.jdbcTemplate.JDBCTemplate.query(JDBC
Template.java:35)
        ... 9 more
commonServices.technicalServices.exceptions.UncatagorizedSQLException: ( JDBCTem
plate.query(psc) with PreparedStatementCreator [commonServices.technicalServices
.mapperFramework.mappers.CarMapper$2@b6548] ): encountered SQLException [com.mic
rosoft.jdbc.sqlserver.SQLServerDriver]
        at commonServices.technicalServices.jdbcTemplate.SQLServer2000ExceptionT
ranslator.translate(SQLServer2000ExceptionTranslator.java:51)
        at commonServices.technicalServices.jdbcTemplate.JDBCTemplate.query(JDBC
Template.java:57)
        at commonServices.technicalServices.mapperFramework.mappers.CarMapper.ge
t(CarMapper.java:59)
        at commonServices.technicalServices.mapperFramework.PersistenceFacade.ge
t(PersistenceFacade.java:50)
        at commonServices.technicalServices.mapperFramework.PersistenceFacade.ge
t(PersistenceFacade.java:45)
        at userArea.application.SearchController.getAllCarObjects(SearchControll
er.java:57)
        at userArea.presentation.SearchPanel.reloadModelNames(SearchPanel.java:2
94)
        at userArea.presentation.SearchPanel.<init>(SearchPanel.java:42)
        at userArea.presentation.Desktop.setupGUI(Desktop.java:84)
        at userArea.presentation.Desktop.<init>(Desktop.java:57)
        at UserArea.main(UserArea.java:29)
Caused by: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLSer
verDriver
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at commonServices.technicalServices.jdbcTemplate.DataSourceUtils.getConn
ection(DataSourceUtils.java:31)
        at commonServices.technicalServices.jdbcTemplate.JDBCTemplate.query(JDBC
Template.java:35)
        ... 9 more
Avatar billede Slettet bruger
20. oktober 2003 - 19:20 #17
OK.... jeg løste mit problem på en GRIM måde, jeg un-jar'ede MS'driverne og jar'ede dem sammen med min applikation, og så var der jo ligefrem ikke problemer med classpath'en, derimod modtager jeg nu en ENDNU mere interessant exception, nemlig følgende:

Exception in thread "main" java.lang.NoClassDefFoundError: com/microsoft/util/Ut
ilLocalMessages
        at com.microsoft.jdbc.base.BaseExceptions.<init>(Unknown Source)
        at com.microsoft.jdbc.base.BaseDriver.setupExceptionHandling(Unknown Sou
rce)
        at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at commonServices.technicalServices.jdbcTemplate.DataSourceUtils.getConn
ection(DataSourceUtils.java:32)
        at commonServices.technicalServices.jdbcTemplate.JDBCTemplate.query(JDBC
Template.java:35)
        at commonServices.technicalServices.mapperFramework.mappers.Cat1Mapper.g
et(Cat1Mapper.java:62)
        at commonServices.technicalServices.mapperFramework.PersistenceFacade.ge
t(PersistenceFacade.java:50)
        at commonServices.technicalServices.mapperFramework.PersistenceFacade.ge
t(PersistenceFacade.java:45)
        at userArea.application.SearchController.getAllCat1Objects(SearchControl
ler.java:26)
        at userArea.presentation.SearchPanel.reloadCat1Data(SearchPanel.java:318
)
        at userArea.presentation.SearchPanel.<init>(SearchPanel.java:41)
        at userArea.presentation.Desktop.setupGUI(Desktop.java:84)
        at userArea.presentation.Desktop.<init>(Desktop.java:57)
        at UserArea.main(UserArea.java:29)

Har du en forklaring på den, for den forekommer jo i Microsofts gennemtestede kode ?
Avatar billede Slettet bruger
20. oktober 2003 - 19:24 #18
Jeg vil lige tilføje at jeg har downloaded driveren fra det øverste link, på siden http://www.microsoft.com/downloads/results.aspx?productID=&freetext=jdbc&DisplayLang=en som du postede, det sær jo unægteligt ud som om den vil ha' fat i en package som hedder util, og jeg har tjekket, den ligger ikke i JAR-filerne msbase.jar eller mssqlserver.jar
Avatar billede arne_v Ekspert
20. oktober 2003 - 19:24 #19
Se den kan jeg hjælpe med.

Den er i den tredie jar fil !

msutil.jar
Avatar billede Slettet bruger
20. oktober 2003 - 19:43 #20
Nøjh.... nu kan den i det mindste finde de class-filer som den skal bruge, MEEEN... så får jeg følgende tracktrace (exception)...jeg har kun posted cause-sektionen af stacktracet:

Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Err
or establishing socket.
        at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
)
        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)

        at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou
rce)
        at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
ource)
        at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
        at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at commonServices.technicalServices.jdbcTemplate.DataSourceUtils.getConn
ection(DataSourceUtils.java:32)
        at commonServices.technicalServices.jdbcTemplate.JDBCTemplate.query(JDBC
Template.java:35)
        ... 9 more
Avatar billede Slettet bruger
20. oktober 2003 - 19:45 #21
Erhmmm... hovsa, kan det være fordi MS SQL Server 2000 ikke standard kører på port 1433 ? Hvordan er det lige man tjekker hvilken port den er konfigureret til at lytte på (den står stadigvæk på defaultindstillingen, jeg har ikke ændret på noget)
Avatar billede arne_v Ekspert
20. oktober 2003 - 20:07 #22
1433 er default port.
Avatar billede arne_v Ekspert
20. oktober 2003 - 20:08 #23
Kører SQLserveren ?

Og er der adgang far client til den ? (altså ikke nogen firewall)
Avatar billede Slettet bruger
20. oktober 2003 - 20:21 #24
Jo... serveren kører (og der er ikke nogen firewall på maskinen)

Er det ikke noget med at man via telnet kan forsøge om der overhovedet er hul igennem ?... Jeg har nemlig prøvet med (fra kommando-prompt) at skrive:

telnet 192.168.1.10 1433

men så får jeg bare følgende besked:

Connecting To 192.168.1.10...Could not open connection to the host, on port 1433
.
No connection could be made because the target machine actively refused it.
Avatar billede arne_v Ekspert
20. oktober 2003 - 20:23 #25
Det lyder meget som om den server ikke kører på 1433.
Avatar billede arne_v Ekspert
20. oktober 2003 - 20:25 #26
I SQLServer 7.0 er der i SQLServer programmen noget der
hedder Server Network Utility.

Der kan man se hvilke protokoller og hvilke parametre der bruges.

Har du den ?

Står der TCP/IP ?

Hvad port står der ?
Avatar billede Slettet bruger
20. oktober 2003 - 20:32 #27
YES !!!!!!!! :-D

Du har reddet min dag. Microsoft (de dumme dyr) har sørme valgt at deres evaluation version af SQL Server ikke skal lytte på port 1433, men på port 1053. Da jeg rettede det fik jeg en fejl der har med noget login at gøre (men det er vel bare fordi jeg har kludret i det med en typo)... NØJH...du har reddet min dag... 1.000 tak...

Smid venligst et svar, så du kan få nogle point.

Igen, tusind tak....du har absolut ingen anelse om hvor glad du har gjort mig (og hvor anti-M$ jeg lige er blevet *gg*)
Avatar billede arne_v Ekspert
20. oktober 2003 - 20:34 #28
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester