Thanks very much, all seems to be working well now. I removed the JAR
from web-inf/lib and that seemed to do the trick.
There was a colon (:) missing in the database URL which I noticed that
may have been contributing to the problem aswell.
Thank you all,
Martin
Allistair Crossley wrote:
The jar should not be in your web-inf/lib only in common/lib. You'll
want a restart of Tomcat. There is no reason this should not be picked
up :( Make sure that pooltest.xml is not in conf/catalina/localhost too
Allistair.
-----Original Message-----
From: Martin Grogan [mailto:[EMAIL PROTECTED]
Sent: 29 November 2005 11:58
To: Jakarta Commons Users List
Subject: Re: [DBCP] Beginner how-to
Ok, I think there is a small sign of some progress. Where before I was
just getting null, now at least I'm getting a driver not found error:
Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
I've made sure the connector JAR is in the CATALINA_HOME/common/lib
folder (I've also tried putting it in WEB-INF/lib but that didn't help).
Again, when I use the old approach of using the DriverManager to load
the driver, all works well.
I've attached the context.xml and index.java files if anyone has the
time to see where this might be going wrong.
Thank you all for your time with this problem, Martin
Allistair Crossley wrote:
You need to be careful with deployment. You should avoid using
server.xml for defining your Context. Instead, create a folder called
META-INF inside your webapp's top folder and in there add a file called
context.xml. Add your Context config into this. Also if you have
declared any GlobalResources in server.xml that you need to link to
you'd need to add ResourceLink config to point at them from this
context.xml.
Allistair.
-----Original Message-----
From: Martin Grogan [mailto:[EMAIL PROTECTED]
Sent: 29 November 2005 11:20
To: Jakarta Commons Users List
Subject: Re: [DBCP] Beginner how-to
Hi all again,
I've followed Allistair's suggestion, since it seems to be closest to
what I've read on the Internet already, however, there is still no
luck.
One thing that appears strange is that the modifications I make to
server.xml disappear each time I re-deploy the test application. I
suspect this may be the problem, but don't know why that would be
happening?
Martin
Allistair Crossley wrote:
Assuming you configured the Resource with a name jdbc/mydb, the
following servlet skeleton can be used .. This is typed out quickly so
check it for errors.
public class DataSourceServlet extends HttpServlet {
private static DataSource dataSource;
public void init() {
try {
Context ctx = new InitialContext();
this.dataSource = (DataSource)
ctx.lookup("java:comp/env/jdbc/mydb");
} catch (Exception e) {
// log the error
}
super.init();
}
public void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException {
Connection connection = null;
try {
connection = dataSource.getConnection();
} catch (SQLException sqlE) {
} finally {
connection.close();
}
}
public void destroy() {
dataSource = null;
}
}
-----Original Message-----
From: Martin Grogan [mailto:[EMAIL PROTECTED]
Sent: 29 November 2005 10:43
To: Jakarta Commons Users List
Subject: Re: [DBCP] Beginner how-to
Hi Allistair,
Thanks for the help. I've downloaded and installed all the relevant
JAR's and edited the server.xml (correctly I hope, I can forward if
you
like?).
I've also created a simple database just to test the app.
However, I'm lost when it comes to writing a basic servet that just
opens the connection, executes a query and closes the connection.
There
are several (conflicting) resources on the web describing how to do
this (some use JSP's which I don't use). In particular, the init() and
destroy() events seem to be causing me confusion, In my main doGet
method, I have something like :
try
{
Connection connection= ??? need to get a connection from
the pool here
Statement statement=connection.createStatement();
String query="SELECT name,age FROM test";
ResultSet r=statement.execute(query);
while(r.next())
out.println(r.getString(1)+", "+r.getString(2));
statement.close();
}
catch(Exception e) { out.println(e.getMessage()); }
Any ideas?
Thanks,
Martin
Allistair Crossley wrote:
There's a really nice way to get Tomcat to manage your database pool
for you with it's built-in DBCP support. This method is detailed in
the
Tomcat pages
http://tomcat.apache.org/tomcat-5.0-doc/jndi-datasource-examples-howt
o
.
h
tml
In a nuthell, you put your database driver JAR into tomcat/common/lib
and take it out of your webapp's WEB-INF/lib. You then declare a
configuration block for a Resource which tells Tomcat to create an
instance of a DBCP database pool. Then, in your servlets you would
have
a static member of type DataSource which you would set with a JNDI
lookup for the Resource in the servlet init method. Then, anytime you
needed a connection you call dataSource.getConnection(). You still
need
to close your connections however to return them to the pool. Your
servlet destroy method would need to close the dataSource, or at
least
set it to null as it will leak being static otherwise on reloads of
the
webapp.
Cheers, Allistair
-----Original Message-----
From: Martin Grogan [mailto:[EMAIL PROTECTED]
Sent: 29 November 2005 09:31
To: Jakarta Commons Users List
Subject: Re: [DBCP] Beginner how-to
Yes, using Tomcat 5.0.28,
Allistair Crossley wrote:
Are you using Tomcat?
-----Original Message-----
From: Martin Grogan [mailto:[EMAIL PROTECTED]
Sent: 29 November 2005 09:27
To: Jakarta Commons Users List
Subject: [DBCP] Beginner how-to
Hi all,
I'm a complete beginner with commons DBCP and unsure where to start.
I
require connection pooling to increase performance of my web
application.
All elements of my application are servlets (no EJB's, no JSP's) and
for each servlet, I basically do the old-fashioned thing...
1. Open connection to data source (mySQL) 2. Create statement 3.
Execute a pile of queries 4. Close statement 5. Close connection I
am
using Tomcat 5.0.28 and mysql-connector-java-3.1.8. We are not using
any dedicated web-server like Apache, just Tomcat.
Can anyone tell my what I need to do to start using connection
pooling
in my applications? Maybe some sample servlet code, and server
configuration, JAR's I need, etc.
I'm basically an old ASP programmer that's picked up Java and now am
trying to do things the Java way.
Thanks,
Martin
-----------
Martin Grogan
Keizen Software
[EMAIL PROTECTED]
www.keizensoftware.com
--------------------------------------------------------------------
- To unsubscribe, e-mail:
[EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
<FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE>
-------------------------------------------------------
QAS Ltd.
Registered in England: No 2582055
Registered in Australia: No 082 851 474
-------------------------------------------------------
</FONT> <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLACK>
Disclaimer: The information contained within this e-mail is
confidential and may be privileged. This email is intended solely for
the named recipient only; if you are not authorised you must not
disclose, copy, distribute, or retain this message or any part of it.
If you have received this message in error please contact the sender
at
once so that we may take the appropriate action and avoid troubling
you
further. Any views expressed in this message are those of the
individual sender. QAS Limited has the right lawfully to record,
monitor and inspect messages between its employees and any third
party.
Your messages shall be subject to such lawful supervision as QAS
Limited deems to be necessary in order to protect its information,
its
interests and its reputation.
Whilst all efforts are made to safeguard Inbound and Outbound
emails,
QAS Limited cannot guarantee that attachments are virus free or
compatible with your systems and does not accept any liability in
respect of viruses or computer problems experienced.
</FONT>
--------------------------------------------------------------------
- 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]
<FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE>
-------------------------------------------------------
QAS Ltd.
Registered in England: No 2582055
Registered in Australia: No 082 851 474
-------------------------------------------------------
</FONT> <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLACK>
Disclaimer: The information contained within this e-mail is
confidential and may be privileged. This email is intended solely for
the named recipient only; if you are not authorised you must not
disclose, copy, distribute, or retain this message or any part of it.
If you have received this message in error please contact the sender
at
once so that we may take the appropriate action and avoid troubling
you
further. Any views expressed in this message are those of the
individual sender. QAS Limited has the right lawfully to record,
monitor and inspect messages between its employees and any third
party.
Your messages shall be subject to such lawful supervision as QAS
Limited deems to be necessary in order to protect its information, its
interests and its reputation.
Whilst all efforts are made to safeguard Inbound and Outbound emails,
QAS Limited cannot guarantee that attachments are virus free or
compatible with your systems and does not accept any liability in
respect of viruses or computer problems experienced.
</FONT>
---------------------------------------------------------------------
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]
<FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE>
-------------------------------------------------------
QAS Ltd.
Registered in England: No 2582055
Registered in Australia: No 082 851 474
-------------------------------------------------------
</FONT> <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLACK>
Disclaimer: The information contained within this e-mail is
confidential and may be privileged. This email is intended solely for
the named recipient only; if you are not authorised you must not
disclose, copy, distribute, or retain this message or any part of it.
If you have received this message in error please contact the sender at
once so that we may take the appropriate action and avoid troubling you
further. Any views expressed in this message are those of the
individual sender. QAS Limited has the right lawfully to record,
monitor and inspect messages between its employees and any third party.
Your messages shall be subject to such lawful supervision as QAS
Limited deems to be necessary in order to protect its information, its
interests and its reputation.
Whilst all efforts are made to safeguard Inbound and Outbound emails,
QAS Limited cannot guarantee that attachments are virus free or
compatible with your systems and does not accept any liability in
respect of viruses or computer problems experienced.
</FONT>
---------------------------------------------------------------------
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]
<FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE>
-------------------------------------------------------
QAS Ltd.
Registered in England: No 2582055
Registered in Australia: No 082 851 474
-------------------------------------------------------
</FONT> <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLACK>
Disclaimer: The information contained within this e-mail is
confidential and may be privileged. This email is intended solely for
the named recipient only; if you are not authorised you must not
disclose, copy, distribute, or retain this message or any part of it. If
you have received this message in error please contact the sender at
once so that we may take the appropriate action and avoid troubling you
further. Any views expressed in this message are those of the
individual sender. QAS Limited has the right lawfully to record,
monitor and inspect messages between its employees and any third party.
Your messages shall be subject to such lawful supervision as QAS Limited
deems to be necessary in order to protect its information, its interests
and its reputation.
Whilst all efforts are made to safeguard Inbound and Outbound emails,
QAS Limited cannot guarantee that attachments are virus free or
compatible with your systems and does not accept any liability in
respect of viruses or computer problems experienced.
</FONT>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE>
-------------------------------------------------------
QAS Ltd.
Registered in England: No 2582055
Registered in Australia: No 082 851 474
-------------------------------------------------------
</FONT> <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLACK>
Disclaimer: The information contained within this e-mail is confidential and may be privileged. This email is intended solely for the named recipient only; if you are not authorised you must not disclose, copy, distribute, or retain this message or any part of it. If you have received this message in error please contact the sender at once so that we may take the appropriate action and avoid troubling you further. Any views expressed in this message are those of the individual sender. QAS Limited has the right lawfully to record, monitor and inspect messages between its employees and any third party. Your messages shall be subject to such lawful supervision as QAS Limited deems to be necessary in order to protect its information, its interests and its reputation.
Whilst all efforts are made to safeguard Inbound and Outbound emails, QAS
Limited cannot guarantee that attachments are virus free or compatible with
your systems and does not accept any liability in respect of viruses or
computer problems experienced.
</FONT>
---------------------------------------------------------------------
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]