[opencms-dev] How to use the connection pool?
Thomas.Zirnsack at gfk.de
Thomas.Zirnsack at gfk.de
Wed Aug 1 16:25:17 CEST 2001
Hi Andreas,
thanks for your quick reply. I will test this solution.
Maybe it would be of interest to you (and others), that I have found
another solution meanwhile. I am using the Protomatter pool.
Find an example below. I just had to make changes to the
DmsDatabase.class (now accepts a connection pool string in
one constructor, the construcutor with no argument still sets the pool
the opencms pool).
Kind regards,
tom
// code starts
import java.util.*;
import java.sql.*;
import com.protomatter.jdbc.pool.*;
class Test
{
public static void main(String[] argus)
throws ClassNotFoundException, Exception
{
Class.forName("com.protomatter.jdbc.pool.JdbcConnectionPoolDriver");
// initialization params are kept in a Hashtable
Hashtable args = new Hashtable();
// the underlying driver
args.put("jdbc.driver", "com.sybase.jdbc2.jdbc.SybDriver");
// the URL to connect the underlyng driver with the server
args.put("jdbc.URL", "jdbc:sybase:Tds:x.x.x.xx:y/opencms");
// these are properties that get passed
// to DriverManager.getConnection(...)
Properties jdbcProperties = new Properties();
jdbcProperties.put("user", "user");
jdbcProperties.put("password", "password");
args.put("jdbc.properties", jdbcProperties);
// the initial size of the pool.
args.put("pool.initialSize", new Integer(5));
// the maximum size the pool can grow to.
args.put("pool.maxSize", new Integer(10));
// each time the pool grows, it grows by this many connections
args.put("pool.growBlock", new Integer(2));
// between successive connections, wait this many milliseconds.
args.put("pool.createWaitTime", new Integer(2000));
// finally create the pool and we're ready to go!
JdbcConnectionPool myPool
= new JdbcConnectionPool("myPool", args);
String url = "jdbc:protomatter:pool:myPool";
// this is my code (starts)
// if I call w/o the url it will use the OpenCMS connection pool
// by default.
DmsDatabase ddb = new DmsDatabase(url);
DmsTreeEntryDoc dtec = ddb.getDmsTreeEntryDoc(2007);
System.out.println("->" + dtec.getDisplay() + "|" + dtec.getSystem
());
// this is my code (ends)
}
}
// code ends.
Andreas Schouten
<Andreas.Schouten at framf An: "'opencms-dev at www.opencms.com'" <opencms-dev at www.opencms.com>
ab.de> Kopie:
Gesendet von: Blindkopie:
owner-opencms-dev at www.o Thema: Re: [opencms-dev] How to use the connection pool?
pencms.com
01.08.01 15:10
Bitte antworten an
opencms-dev
Class.forName("com.opencms.dbpool.CmsDriver");
Hi,
you cannot register a pool like this:
// code starts
CmsPool cp = new CmsPool
(
"jdbc:opencmspool:genericsql",
"com.sybase.jdbc2.jdbc.SybDriver",
"jdbc:sybase:Tds:x.x.x.x:y/opencms",
"user",
"password",
10,
20,
5,
120,
360
);
(After this you have created a pool, but the CmsDriver don't know that it
exists)
OpenCms manages the pools itself. Therefor it creates a pool on demand it
is
asked the first time with:
con = DriverManager.getConnection("jdbc:opencmspool:genericsql");
So you have to configurate the pool in a property file (like you have seen
in the opencms.properties). Use code like this:
// set configurations for the dbpool driver
com.opencms.dbpool.CmsDriver.setConfigurations(config);
"config" is the configuration-object that reads from the properties-file.
After that you can use:
con = DriverManager.getConnection("jdbc:opencmspool:genericsql");
Regards,
Andreas
More information about the opencms-dev
mailing list