I figured it out. The ManualPoolingDriverExample.java example helped
quite a bit. But, the documentation for how to get these things going
is not easy to find, other than the examples and API. But, a person
shouldn't have to know the API all that well if all they want to do is
use it. :)
I decided to go with the following...
AbandonedConfig abandonedConfig;
ObjectPool connectionPool;
ConnectionFactory connectionFactory;
PoolableConnectionFactory poolableConnectionFactory;
PoolingDriver driver;
// setup the abandoned configuration
abandonedConfig = new AbandonedConfig();
abandonedConfig.setLogAbandoned(true);
abandonedConfig.setRemoveAbandoned(true);
abandonedConfig.setRemoveAbandonedTimeout(60);
// setup the AbandonedObjectPool
connectionPool = new AbandonedObjectPool(null, abandonedConfig);
((GenericObjectPool)connectionPool).setMaxActive(maxConn);
((GenericObjectPool)connectionPool).setMaxIdle(maxFree);
connectionFactory = new DriverManagerConnectionFactory(url,null);
poolableConnectionFactory = new PoolableConnectionFactory(
connectionFactory,connectionPool,null,
"SELECT 'ping' FROM dual",false,false);
try
{
Class.forName("org.apache.commons.dbcp.PoolingDriver");
dbcpURL = "jdbc:apache:commons:dbcp:" + poolname;
driver = (PoolingDriver) DriverManager.getDriver(dbcpURL);
driver.registerPool(name, connectionPool);
}
catch (Exception exception)
{
RemoteBannerServer.log(exception,
"error creating DBCP connection pool");
}
This then allows a person to easily obtain a connection in the standard
way like so...
connection = DriverManager.getConnection(dbcpURL)
poolname can be anything you like. That way, the same JVM can use many
different databases without worrying about the underlying driver or
anything. Just a reference to the poolname in the driver string and
voila, you're in business.
Andre Van Klaveren wrote:
Are you trying to configure it for use under Tomcat?
Virtually,
Andre Van Klaveren
On Wed, 23 Feb 2005 09:45:55 -0700, Trenton D. Adams
<[EMAIL PROTECTED]> wrote:
Actually, that still doesn't get me anywhere because
"org.apache.commons.dbcp.PoolableConnectionFactory" doesn't have any
constructors that take abandoned configuration parameters. Nor can I
pass an AbandonedObjectPool object to one if it's contructors because
that class's constructors don't take configuration parameters as
parameters.
Hmmm...
Trenton D. Adams wrote:
Kle Miller pointed out how to get it working manually by constructing
everything myself. Which is probably what I'll do for now, until
someone can tell me how the configuration file works.
I found the JOCLContentHandler API documentation, which I had to
generate, was quite helpful. I think I can get it working with a
configuration now. Perhaps this documentation should be generated with
the dbcp API documentation that's on the website?
Trenton D. Adams wrote:
That list search really kinda bytes. It can't find anything. I'm
sure
that what I'm about to ask has been asked many times.
Ok, we have the configuration items at the following address...
http://jakarta.apache.org/commons/dbcp/configuration.html
But, there's nothing telling me how to configure them. The example
jocl
configuration doesn't really say much.
See this...
----------------------
<!--
The next argument is the query to use to validate that a
Connection is
still up and running. It should return at least one row.
This functionality is optional. We'll just set it to null.
-->
<string null="true"/>
<!-- The default "read only" value for Connections. -->
<boolean value="false"/>
<!-- The default "auto commit" value for Connections. -->
<boolean value="true"/>
----------------------
I don't see an SQL query there, yet the comment says there's a
query to
validate the connection.
Further, I'm really confused by "<boolean value="false"/>" what does
something like that do? It's not associated with a configuration
parameter name or anything, how does that work?
There doesn't appear to be anywhere that tells me how to *glue*
everything together. There's configuration item documentation,
there's an example jocl configuration, but nothing to tell me how I
put one of the configuration items into the config file.
All I'm trying to do is use a connection pool that supports removal
and tracing of abandoned connections. Does anyone know how to get
this working?
--
Trenton D. Adams
Web Programmer Analyst
Navy Penguins at your service!
Athabasca University
(780) 675-6195
__
This communication is intended for the use of the recipient to
whom it
is addressed, and may contain confidential, personal, and or
privileged
information. Please contact us immediately if you are not the
intended
recipient of this communication, and do not copy, distribute, or take
action relying on it. Any communications received in error, or
subsequent reply, should be deleted or destroyed.
---
---------------------------------------------------------------------
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]