Avatar billede cayman Nybegynder
20. juli 2005 - 17:41 Der er 28 kommentarer og
1 løsning

Tomcat Datasources og MsSql

Jeg har et setup med Tomcat 5.0 og MySQL. Jeg skal nu transmogriffe til Microsoft SQL server i stedet for MySQL.

Jeg har således fået en MsSQL 2000 op at køre. Jeg har så forsøgt at lave datasources i Server.xml mod denne databaseserver.
Jeg har forsøgt med alm tcp/ip kommunikation via port 1433 og jeg har forsøgt mig med namedPipes. Jeg har prøvet både Microsofts drivere og jDTS-driverne.

Det virker bare ikke.

Har du et eksempel der bare spiller?
Avatar billede arne_v Ekspert
20. juli 2005 - 17:49 #1
Microsofts driver
alle 3 jar filer i common/lib
setup helt ligesom MySQL kun med andet driverClass og url

hvilken fejl får du ?
Avatar billede cayman Nybegynder
20. juli 2005 - 18:18 #2
Connection refused

Det lader til at min MsSql 2000 server har problemer med tcp/ip kommunikation.
Jeg har benyttet mig af en troubleshooter. Den beder mig forsøge at lave en telnet forbindelse mod den port (1433)

Når jeg gør det skriver den "Could not open connection to the port 1433: Connection failed"

Når jeg prøver mod port 3306, som er min mysql-port så kan den godt.

Dit næste spm, vil måske være om jeg har sikret mig at MsSQL er sat rigtigt op i Server Network Utility. Det mener jeg den er. TCP/IP og Named pipes er på listen over enabled protocols

Så læste jeg et sted om en med de samme problemer, og han havde valgt at bruge named pipes og jDTS-drivere - så virkede det for ham. Men igen vil min MsSQL ikke rigtigt "snakke" med nogen.
Avatar billede arne_v Ekspert
20. juli 2005 - 18:21 #3
du har checket at TCP/IP er enablet

så checker du med "netstat -a" om der faktisk er noget som lytter på 1433

og du skal også have checket for firewall
Avatar billede cayman Nybegynder
20. juli 2005 - 18:21 #4
Der er da kun een jar-fil: sqljdbc.jar ???
Avatar billede arne_v Ekspert
20. juli 2005 - 18:23 #5
der plejer da at være 3 !!
Avatar billede arne_v Ekspert
20. juli 2005 - 18:24 #6
Directory of C:\DivJava\MSSQLServer\lib

04-05-2004  21:43    <DIR>          .
04-05-2004  21:43    <DIR>          ..
21-04-2004  19:22          287.022 msbase.jar
21-04-2004  19:22            67.115 mssqlserver.jar
21-04-2004  19:22            59.074 msutil.jar

men OK jeg er ikke på seneste version - måske har de repacket i den
Avatar billede cayman Nybegynder
20. juli 2005 - 18:29 #7
netstat -a:

Der er INGENTING der lytter på port 1433.
På port 3306 er der !
Avatar billede cayman Nybegynder
20. juli 2005 - 18:30 #8
Den driver jeg bruger er lavet til MsSQLServer 2005 men skulle også virke til 2000
Avatar billede arne_v Ekspert
20. juli 2005 - 18:46 #9
Hvis du bruger Windows XP eller 2003 kan du bruge:

netstat -anb

og så finde sqlserver.exe og se hvilken port den lytter på
Avatar billede cayman Nybegynder
20. juli 2005 - 18:56 #10
Det lader til den lytter på 2668
Avatar billede cayman Nybegynder
20. juli 2005 - 18:56 #11
Sludder 2868
Avatar billede cayman Nybegynder
20. juli 2005 - 18:57 #12
Men hvorfor står det ikke inde i Server Network Utility. Der står 1433 ?
Avatar billede cayman Nybegynder
20. juli 2005 - 19:00 #13
Har du mulighed for at sende mig de drivere du brugere og den server.xml-stump der passer?

Hvis du ikke gider forstår jeg det godt, men hvis du gider er min mailadresse tfb@tfb.dk 

Du kan også lægge dem på min ftp-server. User: nixinixi password nixi01.

Jeg disabler useren så snart jeg har hørt fra dig
Avatar billede arne_v Ekspert
20. juli 2005 - 19:02 #14
virker det når du connecter til 2868 ?
Avatar billede cayman Nybegynder
20. juli 2005 - 19:06 #15
Kigger lige på det
Avatar billede arne_v Ekspert
20. juli 2005 - 19:08 #16
jeg har kun:
  standalone app ---- SQLServer 2000
kørende

jeg kan godt prøve at få:
  JSP/servlet ---- Tomcat connection pool ---- SQLServer 2005 CTP
til at virke
Avatar billede cayman Nybegynder
20. juli 2005 - 19:14 #17
sådan her ser min datasources ud.
En til MySQL og en til MSSQL
          <ResourceParams name="jdbc/aut2">
            <parameter>
              <name>factory</name>
              <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
            </parameter>
            <parameter>
              <name>maxActive</name>
              <value>100</value>
            </parameter>
            <parameter>
              <name>maxWait</name>
              <value>10000</value>
            </parameter>
            <parameter>
              <name>password</name>
              <value>dbpass</value>
            </parameter>
            <parameter>
              <name>url</name>
              <value>jdbc:mysql://localhost:3306/aut?autoReconnect=TRUE&amp;useUnicode=TRUE&amp;characterEncoding=ISO8859_1</value>
            </parameter>
            <parameter>
              <name>driverClassName</name>
              <value>org.gjt.mm.mysql.Driver</value>
            </parameter>
            <parameter>
              <name>maxIdle</name>
              <value>30</value>
            </parameter>
            <parameter>
              <name>username</name>
              <value>dbuser</value>
            </parameter>
          </ResourceParams>
          <Resource name="jdbc/rygestop" type="javax.sql.DataSource"/>
          <ResourceParams name="jdbc/rygestop">
            <parameter>
              <name>url</name>
              <value>jdbc:sqlserver://localhost:2868/database=rygestop/user=dbuser/password=dbpass</value>
            </parameter>
            <parameter>
              <name>driverClassName</name>
              <value>com.microsoft.sqlserver.jdbc.SQLServerDataSource</value>
            </parameter>
          </ResourceParams>
Avatar billede cayman Nybegynder
20. juli 2005 - 19:18 #18
Stack:

org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '
com.microsoft.sqlserver.jdbc.SQLServerDataSource' for connect URL 'jdbc:sqlserve
r://localhost:2868/database=rygestop/user=dbuser/password=dbpass'
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou
rce.java:780)
        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource
.java:540)
        at com.sciencesoft.da.DataPersister.getConnection(DataPersister.java:121
)
        at com.sciencesoft.da.DataPersister.execute(DataPersister.java:73)
        at com.sciencesoft.da.DataPersister.executeStatement(DataPersister.java:
49)
        at com.sciencesoft.service.KursusService.getTestListOfStrings(KursusServ
ice.java:965)
        at com.unitsoft.introduktion.actions.EntryPointAction.execute(EntryPoint
Action.java:33)
        at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
tProcessor.java:484)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:274)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:148
2)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:462)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:118)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:683)
        at java.lang.Thread.run(Thread.java:534)
Caused by: java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getDriver(DriverManager.java:243)
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou
rce.java:773)
Avatar billede cayman Nybegynder
20. juli 2005 - 19:38 #19
NYT:

MSSQL skifter tilsyneladende port når den genstartes.

Når jeg så er vågen og får tastet den rigtige port, så får jeg ingen fejl. Men MSSQL svarer heller ikke ?
Avatar billede arne_v Ekspert
20. juli 2005 - 20:20 #20
jeg mener at driverClassName skal være:

com.microsoft.jdbc.sqlserver.SQLServerDriver
Avatar billede arne_v Ekspert
20. juli 2005 - 20:22 #21
og url:

jdbc:microsoft:sqlserver://localhost:2868;DatabaseName=rygestop

og så med seperate username og password values
Avatar billede cayman Nybegynder
21. juli 2005 - 09:13 #22
Har prøvet den driverclass uden held.
Urlen er taget direkte fra den vedledning der fulgte med driver-jar'en.
Men måske hvis jeg prøvede de driver filer du taler om?
Avatar billede arne_v Ekspert
21. juli 2005 - 09:18 #23
jeg har lige emailet dig mine jar filer
Avatar billede cayman Nybegynder
21. juli 2005 - 11:00 #24
Tak skal du have - jeg har modtaget dem. Var lige i møde et par timer. Vender tilbage når jeg har prøvet dem af :o)
Avatar billede cayman Nybegynder
21. juli 2005 - 11:10 #25
Der sker helt klart noget nu, forbindelsen er ok, men det lader til at MSSQL ikke svarer. Ved du hvordan man kan se en log for den
Avatar billede arne_v Ekspert
21. juli 2005 - 11:52 #26
får du en exception ? hvis ja - hvilken ?
Avatar billede cayman Nybegynder
21. juli 2005 - 13:19 #27
Nej det gør jeg ikke.
Tomcat venter blot på svar fra SQL-serveren.

Jeg tror min MSSSQL server er syg. Det er en gammel hacket version. Jeg installerer den nye version forfra. Denne kræver dog Win 2003 server installation som jeg lige må igennem først.

Så jeg sætter sagen lidt på hold.

Jeg vender tilbage senere. Tak ind til videre. Jeg vil gerne lade spm stå åbent indtil det spiller. Er det ok?
Avatar billede arne_v Ekspert
03. september 2005 - 18:57 #28
kommet videre ?
Avatar billede cayman Nybegynder
06. september 2005 - 17:45 #29
Har skiftet sql-serveren ud med en ny og "lovlig" (=indkøbt) version.
Har skiftet til jtds' driver. Lader nu Hibernate om at håndtere backenden.
Er skiftet til Tomcat 5.5 og jdk 1.5

Nu virker det !!
:o) Men tak for indsatsen
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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