Ok, I'll bite. what's the code in "...." ?
by chance, do you have something like: con= null; ? You should also clean up that first try block. Remove the if/else block that esentially will *always* report the connection as being null (since you haven't assigned it up to that point). > -----Original Message----- > From: Arora, Avinash [mailto:[EMAIL PROTECTED] > Sent: Tuesday, May 04, 2004 2:52 PM > To: Daxin Zuo; Tomcat Users List > Cc: [EMAIL PROTECTED] > Subject: RE: DB connection pool problem > > > Hi friends, > Thanks for your previous feedback. After adding several > logging statements in my code, I have found that connection object is > null. But dataSource object is not null. What can be reason for it?? > Here is how I use it in my code-- > public LinkedList testFunction(){ > LinkedList ll = null; > Connection con = null; > Statement stmt = null; > ResultSet rs = null; > DataSource dataSource = null; > try{ > Context init = new InitialContext(); > Context ctx = (Context) init.lookup("java:comp/env"); > dataSource = (DataSource)ctx.lookup("jdbc/conversion"); > ll.add("dataSource object is"); > ll.add(dataSource); > } > > catch(NamingException e){ > System.out.println("Exception thrown is"+e.getMessage()); > ll.add("Naming Exception thrown"); > } > finally{ > if(dataSource == null){ > > ll.add("DataSource object is null"); > return ll; > } > else{ > ll.add("Data source object is not null"); > // return ll; > } > } > try{ > // load the driver class file > //Class.forName("com.mysql.jdbc.Driver").newInstance(); > //establishing the connection > if(con == null){ > ll.add("Inside 1st try. Connection object found to be > null"); > } > else{ > ll.add("Inside 1st try. Connection object is > not nul"); > > con = dataSource.getConnection(); > > stmt = con.createStatement(); > .... > } > finally{ > if(con == null){ > ll.add("Connection object is null"); > // return ll; > > } > ----------------------Here is the output that I can see on my > jsp page, > where I try to print out the linklist obtained from the > function above. > > elements of link list read from database are -[dataSource object is, > [EMAIL PROTECTED], Data source object is > not null, Inside 1st try. Connection object found to be null, > Connection > object is null] > > > > > Thanks. > Avinash Arora > > > -----Original Message----- > From: Daxin Zuo [mailto:[EMAIL PROTECTED] > Sent: Monday, May 03, 2004 3:34 PM > To: Tomcat Users List > Subject: RE: DB connection pool problem > > I have just created a "pool" -- I hope it is really a pool. I used > jtds > jdbc driver to MS SQL Server on Windows. You may find some thing > similar. > Holp it helps. > > 1) bellow is the text in tomcat\conf\server.xml > <GlobalNamingResources> > <Resource name="jdbc/DirectSQL" auth="Container" > type="javax.sql.DataSource"/> > <ResourceParams name="jdbc/DirectSQL"> > <parameter> > <name>factory</name> > <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> > </parameter> > > <parameter> > <name>maxActive</name> > <value>255</value> > </parameter> > <parameter> > <name>maxIdle</name> > <value>10</value> > </parameter> > <parameter> > <name>maxWait</name> > <value>10000</value> > </parameter> > <parameter> > <name>username</name> > <value>user1</value> > </parameter> > <parameter> > <name>password</name> > <value>passwd1</value> > </parameter> > <parameter> > <name>driverClassName</name> > <value>net.sourceforge.jtds.jdbc.Driver</value> > </parameter> > <parameter> > <name>url</name> > <value>jdbc:jtds:sqlserver://serverName:1433</value> > </parameter> > </ResourceParams> > ... > > 2) bellow is the text in tomcat\conf\Catalina\localhost\ROOT.XML --I > create > this file by myself > <Context path="" docBase="ROOT" debug="0" privileged="true"> > > <!-- Link to the user database using dbc:jtds:sqlserver --> > <ResourceLink name="jdbc/DirectSQL" global="jdbc/DirectSQL" > type="javax.sql.DataSource"/> > </Context> > This "name" is used in Java code. "global" is the name in xml > file. they > can > be different. > > 3) my test jsp file is in \tomcat\webapps\ROOT\zuo\ > > Context ctx = new InitialContext(); > if (ctx == null) { > throw new Exception("Boom - No Context"); > } > DataSource ds = (DataSource) > ctx.lookup("java:comp/env/jdbc/DirectSQL"); > if (ds != null) > con = ds.getConnection(); > if (con != null){ > str = "select * from myTable"; > pStateSearch = con.prepareStatement(str, > ResultSet.TYPE_SCROLL_SENSITIVE, > ResultSet.CONCUR_READ_ONLY ); > rs = pStateSearch.executeQuery(); > .... > > That's all. > > -----Original Message----- > From: Arora, Avinash [mailto:[EMAIL PROTECTED] > Sent: Monday, May 03, 2004 3:10 PM > To: Tomcat Users List > Subject: DB connection pool problem > > > Hi, > I am also having the problem with the connection pools. Since I am > writing an application first time by using connection pools, > I created a > test application DBTest. I edited my server.xml and web.xml (of my > application in following way-- > #added to server.xml > <Context path="/DBTest" docBase="DBTest" debug="0" > reloadable="true"> > <ResourceParams name="jdbc/conversion"> > <parameter> > <name>username</name> > <value>ROOT</value> > </parameter> > <parameter> > <name>password</name> > <value>PASSWORD</value> > </parameter> > <parameter> > <name>driverClassName</name> > <value>com.mysql.jdbc.Driver</value> > </parameter> > <parameter> > <name>url</name> > <value>jdbc:mysql://localhost/DB</value> > </parameter> > </ResourceParams> > </Context> > > #web.xml > <web-app> > <description>MySQL Test App</description> > <resource-ref> > <res-ref-name>jdbc/conversion</res-ref-name> > <res-type>javax.sql.DataSource</res-type> > <res-auth>Container</res-auth> > </resource-ref> > </web-app> > And I added the following statements to my Java class, (which works > fine, when I use the connection objects by hardcoding the username and > db).-- > > Context init = new InitialContext(); > Context ctx = (Context) init.lookup("java:comp/env"); > DataSource dataSource = (DataSource)ctx.lookup("jdbc/conversion"); > > But even after, making these changes, I cannot read any thing from > database. I was wondering what more changes I need to made. I > also tried > to run my JAVA class (DAO) from command line, but I get the following > exception-- > > Need to specify class name in environment or system property, or as an > applet parameter, or in an application resource file: > java.naming.factory.initial > > I tried to print outs the place where exception occurs in my code and > found that exception occurs at > dataSource = (DataSource)ctx.lookup("jdbc/conversion"); > > Can any body please comment on whats going on wrong? When I run from > command line, is tomcat used, I don't think so? So where is > the problem? > Any ideas?? > Avinash Arora > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
