Hi, I can't give any solution for this problem, but I can at least give some advice how to find a possible solution.
The main problem is that the server.xml-docu says that the parameter-names depend on the JDBC-driver used. When I examined the JDBC-drivers for Cloudscape, MySQL and Oracle, I found that the parameters driverClassName and driverName were never used... In the case of Oracle, it was sufficient to set one parameter url for the connection-URL, which contained all necessary information, in the other cases it was necessary to set different parameters, i. e. serverName, portNumber, user, password, databaseName and so on. You can get some advice if you look at the corresponding DataSource-class-file (for MS SQL Server, it is called BaseDataSource) and look at the public properties offered by this class. For BaseDataSource, these are: String dataSourceName; String description; String password; String portNumber; String roleName; String serverName; String user; Then imagine, what parameters should be necessary for getting a connection to your database and set these parameters in your server.xml-file. I hope this will help you to get a connection to your database. Frank > > -----Original Message----- > > From: Peter D Wilson [mailto:[EMAIL PROTECTED]] > > Sent: Tuesday, April 16, 2002 9:19 PM > > To: Tomcat Users List > > Subject: JNDI DataSource Problem: MS SQL Server > > > > > > Could somebody provide jakarta-tomcat-4.0.3, server.xml + > > web.xml + java > > code, working fragments similar to those that Eichfelder, > > Frank provided > > earlier today on this mail list. I am using MS SQL Server > > 6.5, where the > > direct DriverManager approach outside of Tomcat works perfectly. > > > > In the JNDI approach under Tomcat, I can list context, "jdbc" > > in context, > > "java:comp/env" and get my ResourceRef, "JobsDataSource" from > > the default > > context in server.xml listed, but I am unable to get a > DataSource (or > > ConnectionPoolDataSource) returned. > > > > This is a very frustrating exercise! > > Hi Peter, > > I'm trying the same thing you are. Well, similar. > I'm using the Beta 2 version of Microsoft's JDBC driver to > connect to a SQL Server 2000 database. I'm not having much > luck with it, though. > Any help you or anyone else can offer would be very much appreciated. > > I tried putting this in my server.xml: > > <Resource name="jdbc/nutrosDB" auth="Container" > type="javax.sql.DataSource"/> > <ResourceParams name="jdbc/nutrosDB"> > > <parameter> > <name>database</name><value>dbname</value> > </parameter> > > <parameter> > > <name>factory</name><value>com.microsoft.jdbcx.sqlserver.SQLSe > rverDataSourceFactory</value> > </parameter> > > > <parameter> > > <name>driverClassName</name><value>com.microsoft.jdbc.sqlserve > r.SQLServerDriver</value> > </parameter> > > <parameter> > > <name>driverName</name><value>jdbc:microsoft:sqlserver://serve > rbox;user=user;Password=pwd;DatabaseName=dbname</value> > </parameter> > > <parameter> > <name>user</name><value>user</value> > </parameter> > > <parameter> > <name>password</name><value>password</value> > </parameter> > > </ResourceParams> > > And this in my web.xml: > > <resource-ref> > <description>test jdbc/nutrosDB</description> > <res-ref-name>jdbc/nutrosDB</res-ref-name> > > <res-type>com.microsoft.jdbcx.sqlserver.SQLServerDataSource</res-type> > <res-auth>Container</res-auth> > <res-sharing-scope>Shareable</res-sharing-scope> > </resource-ref> > > In my code, I am doing this: > > Context initCtx = new InitialContext(); > Context envCtx = (Context)initCtx.lookup("java:comp/env"); > System.out.println(" About to get ds."); > com.microsoft.jdbcx.sqlserver.SQLServerDataSource ds = > (com.microsoft.jdbcx.sqlserver.SQLServerDataSource)envCtx.look > up("jdbc/nutrosDB"); > System.out.println("About to get pooledconnection."); > PooledConnection x = ds.getPooledConnection("usr","pwd"); > System.out.println("About to get connection."); > Connection conDB1 = x.getConnection(); > > > This fails, and here is what is in the log file: > > About to get ds. > javax.naming.NamingException: Cannot create resource instance > at > org.apache.naming.factory.ResourceFactory.getObjectInstance(Re > sourceFactory.java:167) > at > javax.naming.spi.NamingManager.getObjectInstance(NamingManager > .java:299) > at > org.apache.naming.NamingContext.lookup(NamingContext.java:834) > at > org.apache.naming.NamingContext.lookup(NamingContext.java:181) > at > org.apache.naming.NamingContext.lookup(NamingContext.java:822) > at > org.apache.naming.NamingContext.lookup(NamingContext.java:194) > at Nutros.Beans.DatabaseBean.<init>(Unknown Source) > at Nutros.Beans.beanBrand.loadProduct(Unknown Source) > at org.apache.jsp.index$jsp._jspService(index$jsp.java:578) > at > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107) > at javax.servlet.http.HttpServlet.service(HttpServlet.java) > at > org.apache.jasper.servlet.JspServlet$JspServletWrapper.service > (JspServlet.java:202) > at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet > .java:382) > at > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474) > at javax.servlet.http.HttpServlet.service(HttpServlet.java) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt > er(ApplicationFilterChain.java:247) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli > cationFilterChain.java:193) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardW > rapperValve.java:243) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP > ipeline.java:566) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:472) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardC > ontextValve.java:190) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP > ipeline.java:566) > at > org.apache.catalina.valves.CertificatesValve.invoke(Certificat > esValve.java:246) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP > ipeline.java:564) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:472) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at > org.apache.catalina.core.StandardContext.invoke(StandardContex > t.java:2343) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHost > Valve.java:180) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP > ipeline.java:566) > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDi > spatcherValve.java:170) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP > ipeline.java:564) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport > Valve.java:170) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP > ipeline.java:564) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValv > e.java:468) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP > ipeline.java:564) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:472) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEn > gineValve.java:174) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP > ipeline.java:566) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:472) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at > org.apache.catalina.connector.http.HttpProcessor.process(HttpP > rocessor.java:1012) > at > org.apache.catalina.connector.http.HttpProcessor.run(HttpProce > ssor.java:1107) > at java.lang.Thread.run(Thread.java:479) > > > -- > To unsubscribe: <mailto:[EMAIL PROTECTED]> > For additional commands: <mailto:[EMAIL PROTECTED]> > Troubles with the list: <mailto:[EMAIL PROTECTED]> > -- To unsubscribe: <mailto:[EMAIL PROTECTED]> For additional commands: <mailto:[EMAIL PROTECTED]> Troubles with the list: <mailto:[EMAIL PROTECTED]>
