org.logicalcobwebs.proxool.configuration

Class XMLConfigurator


public class XMLConfigurator
extends DefaultHandler

A SAX 2 ContentHandler that can configure Proxool from an XML source.

This is just a ContentHandler, so you must associate it with a SAX parser for it to actually do anything. If you have JAXP available JAXPConfigurator will do this for you.

Properties that you pass on to the delegate driver have to be treated specially. They must be contained within a <driver-properties> element.

See the Proxool properties for documentation on the available configuration properties. Example configuration:

 <proxool>
     <alias>apple</alias>
     <driver-url>jdbc:hsqldb:.</driver-url>
     <driver-class>org.hsqldb.jdbcDriver</driver-class>
     <driver-properties>
         <property name="user" value="abc" />
         <property name="password" value="def" />
     </driver-properties>
     <house-keeping-sleep-time>40000</house-keeping-sleep-time>
     <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
     <maximum-connection-count>10</maximum-connection-count>
     <minimum-connection-count>3</minimum-connection-count>
     <maximum-connection-lifetime>18000000</maximum-connection-lifetime> <!-- 5 hours -->
     <simultaneous-build-throttle>5</simultaneous-build-throttle>
     <recently-started-threshold>40000</recently-started-threshold>
     <overload-without-refusal-lifetime>50000</overload-without-refusal-lifetime>
     <maximum-active-time>60000</maximum-active-time>
     <verbose>true</verbose>
     <trace>true</trace>
     <fatal-sql-exception>ORA-1234</fatal-sql-exception>
     <prototype-count>2</prototype-count>
 </proxool>
 
When the parser reaches the end of the <proxool> element the pool is automatically registered. You can contain the <proxool> element in any other elements as you wish. And the <proxool> element can occur as many times as you wish. This allows you to use an XML file that configures your whole application as the source. This configurator will ignore everything apart from the elements contained within the <proxool> element.

Validation
A couple of additional steps are required if you want your SAX parser to validate your Proxool xml confguration:

This class is not thread safe.

Version:
$Revision: 1.18 $, $Date: 2006/01/18 14:39:58 $
Authors:
billhorsman
$Author: billhorsman $ (current maintainer)

Method Summary

void
characters(char[] chars, int start, int length)
void
endElement(String uri, String lname, String qname)
void
error(SAXParseException e)
void
fatalError(SAXParseException e)
void
startElement(String uri, String lname, String qname, Attributes attributes)
void
warning(SAXParseException e)

Method Details

characters

public void characters(char[] chars,
                       int start,
                       int length)
            throws SAXException
See Also:
org.xml.sax.ContentHandler.characters

endElement

public void endElement(String uri,
                       String lname,
                       String qname)
            throws SAXException
See Also:
org.xml.sax.ContentHandler.endElement

error

public void error(SAXParseException e)
            throws SAXException
See Also:
org.xml.sax.ErrorHandler.error(SAXParseException)

fatalError

public void fatalError(SAXParseException e)
            throws SAXException
See Also:
org.xml.sax.ErrorHandler.fatalError(SAXParseException)

startElement

public void startElement(String uri,
                         String lname,
                         String qname,
                         Attributes attributes)
            throws SAXException
See Also:
org.xml.sax.ContentHandler.startElement

warning

public void warning(SAXParseException e)
            throws SAXException
See Also:
org.xml.sax.ErrorHandler.warning(SAXParseException)