<?xml version="1.0" encoding="UTF-8"?>
<!--
    This software is released under a licence similar to the Apache Software Licence.
    See org.logicalcobwebs.proxool.package.html for details.
    The latest version is available at http://proxool.sourceforge.net

    DTD for configuring Proxool using XMLConfigurator

    version $Revision: 1.5 $, $Date: 2004/03/17 10:51:48 $
    author billhorsman
    author $Author: brenuart $ (current maintainer)
    since Proxool 0.6

  -->
<!ELEMENT proxool-config (proxool+)>
<!ELEMENT proxool (alias, driver-url, driver-class, driver-properties?, house-keeping-sleep-time?, house-keeping-test-sql?, maximum-connection-count?, minimum-connection-count?, maximum-connection-lifetime?, maximum-new-connections?, simultaneous-build-throttle?, recently-started-threshold?, overload-without-refusal-lifetime?, maximum-active-time?, verbose?, trace?, fatal-sql-exception*, prototype-count?, statistics?, statistics-log-level?)>
<!-- This is the alias for the pool -->
<!ELEMENT alias (#PCDATA)>
<!-- The delegate driver we are delegating to
    (for instance, org.hsqldb.jdbcDriver) -->
<!ELEMENT driver-class (#PCDATA)>
<!-- The URL the delegate driver uses
    (for instance, jdbc:hsqldb:test) -->
<!ELEMENT driver-url (#PCDATA)>
<!-- If the connection cound it less than this then the housekeeper will build some more
    Defaults to zero. -->
<!ELEMENT minimum-connection-count (#PCDATA)>
<!-- The maximum amount of connections to the database. Defaults to 15. -->
<!ELEMENT maximum-connection-count (#PCDATA)>
<!-- Any idle connections older than this will be removed by the housekeeper (milliseconds).
    Defaults to 4 * 60 * 60 * 1000 (4 hours). -->
<!ELEMENT maximum-connection-lifetime (#PCDATA)>
<!-- This is the maximum number of connections we can be building at any one time. That is,
    the number of new connections that have been requested but aren't yet available for use.
    Defaults to 10. -->
<!ELEMENT maximum-new-connections (#PCDATA)>
<!-- This is the maximum number of connections we can be building at any one time. That is,
    the number of new connections that have been requested but aren't yet available for use.
    Defaults to 10. -->
<!ELEMENT simultaneous-build-throttle (#PCDATA)>
<!-- How long the house keeping thread sleeps for (milliseconds). Defaults to
    30000 (30 seconds) -->
<!ELEMENT house-keeping-sleep-time (#PCDATA)>
<!-- If the house keeping thread finds and idle connections it will test them with this SQL statement.
    It should be _very_ quick to execute. Something like checking the current date or something. If
    not defined then this test is omitted. -->
<!ELEMENT house-keeping-test-sql (#PCDATA)>
<!-- If there are fewer than this number of connections available then we will build some more
    (assuming the maximum-connection-count is not exceeded). Defaults to zero. -->
<!ELEMENT prototype-count (#PCDATA)>
<!-- This helps us determine whether the pool status. As long as at least one connection was
    started within this threshold (milliseconds) or there are some spare connections available
    then we assume the pool is up. Defaults to 60 seconds. -->
<!ELEMENT recently-started-threshold (#PCDATA)>
<!-- This helps us determine the pool status. If we have refused a connection within this threshold
    (milliseconds) then we are overloaded. Defaults to 60 seconds. -->
<!ELEMENT overload-without-refusal-lifetime (#PCDATA)>
<!-- If a connection is active for longer than this (milliseconds) then we assume it has stalled or
    something. And we kill it. Defaults to 5 minutes. -->
<!ELEMENT maximum-active-time (#PCDATA)>
<!-- Either false (quiet) or true (loud). Default is false. -->
<!ELEMENT verbose (#PCDATA)>
<!-- If true then every execution will be logged. Default is false. -->
<!ELEMENT trace (#PCDATA)>
<!-- All SQLExceptions are caught and tested for containing this text fragment. If it matches than
    this connection is considered useless and it is discarded. Regardless of what happens the
    exception is always thrown again. This property behaves like a collection; you can set it more
    than once and each value is checked. -->
<!ELEMENT fatal-sql-exception (#PCDATA)>
<!-- This contains all the properties that  are passed onto the
    delegate driver. -->
<!ELEMENT driver-properties (property*)>
<!-- Each property is a simple name-value pair.  -->
<!ELEMENT property EMPTY>
<!ATTLIST property
	name CDATA #REQUIRED
	value CDATA #REQUIRED
>
<!-- The sample length when taking statistical information, comma-delimited. For example: '10s,15m' 
	would mean take samples every 10 seconds and every 15 minutes. Valid units are s(econds), 
	m(inutes), h(ours) and d(ays). Default is no statistics -->
<!ELEMENT statistics (#PCDATA)>
<!-- Whether statistics are logged as they are produced. Range: DEBUG, INFO, WARN, ERROR, FATAL. 
	Not to be confused with the level used with the general log. You have to configure that 
	separately. Default is no logging -->
<!ELEMENT statistics-log-level (#PCDATA)>

<!--
 Revision history:
 $Log: proxool.dtd,v $
 Revision 1.5  2004/03/17 10:51:48  brenuart
 Add statistics & statistics-log-level elements

 Revision 1.4  2003/03/05 23:28:56  billhorsman
 deprecated maximum-new-connections property in favour of
 more descriptive simultaneous-build-throttle

 Revision 1.3  2003/03/03 11:12:01  billhorsman
 fixed licence

 Revision 1.2  2003/01/23 10:41:05  billhorsman
 changed use of pool-name to alias for consistency

 Revision 1.1  2002/12/16 01:04:31  chr32
 Moved from parent package.

 Revision 1.3  2002/12/15 23:27:50  chr32
 Clarified som names.

 Revision 1.2  2002/12/11 01:13:15  billhorsman
 with doc

 Revision 1.1  2002/12/11 00:55:09  billhorsman
 draft

-->
