| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <document> |
| <properties> |
| <title>JDBC Disk Cache Configuration</title> |
| <author email="asmuts@apache.org">Aaron Smuts</author> |
| </properties> |
| |
| <body> |
| <section name="JDBC Disk Auxiliary Cache Configuration"> |
| |
| <p> |
| The following properties apply to the JDBC Disk Cache |
| plugin. |
| </p> |
| |
| <subsection name="JDBC Disk Configuration Properties"> |
| <table> |
| <tr> |
| <th>Property</th> |
| <th>Description</th> |
| <th>Required</th> |
| <th>Default Value</th> |
| </tr> |
| <tr> |
| <td>MaxPurgatorySize</td> |
| <td> |
| The maximum number of items allowed in the |
| queue of items to be written to disk. |
| </td> |
| <td>N</td> |
| <td>5000</td> |
| </tr> |
| |
| <tr> |
| <td>url</td> |
| <td> |
| The database url. The database name will be |
| added to this value to create the full |
| database url. |
| </td> |
| <td>N</td> |
| <td></td> |
| </tr> |
| |
| <tr> |
| <td>database</td> |
| <td>This is appended to the url.</td> |
| <td>N</td> |
| <td></td> |
| </tr> |
| |
| <tr> |
| <td>driverClassName</td> |
| <td> |
| The class name of the driver to talk to your |
| database. |
| </td> |
| <td>N</td> |
| <td></td> |
| </tr> |
| |
| <tr> |
| <td>userName</td> |
| <td>The database user name.</td> |
| <td>N</td> |
| <td></td> |
| </tr> |
| |
| <tr> |
| <td>password</td> |
| <td>The database user password.</td> |
| <td>N</td> |
| <td></td> |
| </tr> |
| |
| <tr> |
| <td>jndiPath</td> |
| <td> |
| The JNDI lookup path in the form <code>java:comp/env/jdbc/MyDB</code>. |
| This entry is preferred over the set of <code>url</code>, <code>driverClassName</code>, |
| <code>userName</code> and <code>password</code>. |
| </td> |
| <td>N</td> |
| <td></td> |
| </tr> |
| |
| <tr> |
| <td>jndiTTL</td> |
| <td>The time between two JNDI lookups in ms.</td> |
| <td>N</td> |
| <td>0</td> |
| </tr> |
| |
| <tr> |
| <td>tableName</td> |
| <td>The name of the table.</td> |
| <td>N</td> |
| <td>JCS_STORE</td> |
| </tr> |
| |
| <tr> |
| <td>testBeforeInsert</td> |
| <td> |
| Should the disk cache do a select before |
| trying to insert new element on update, or |
| should it try to insert and handle the |
| error. |
| </td> |
| <td>N</td> |
| <td>true</td> |
| </tr> |
| |
| <tr> |
| <td>maxActive</td> |
| <td> |
| This sets the maximum number of connections |
| allowed. |
| </td> |
| <td>Y</td> |
| <td></td> |
| </tr> |
| |
| <tr> |
| <td>allowRemoveAll</td> |
| <td> |
| Should the disk cache honor remove all (i.e. |
| clear) requests. You might set this to false |
| to prevent someone from accidentally |
| clearing out an entire database. |
| </td> |
| <td>N</td> |
| <td>true</td> |
| </tr> |
| |
| <tr> |
| <td>UseDiskShrinker</td> |
| <td> |
| Should the disk cache try to delete expired |
| items from the database. |
| </td> |
| <td>N</td> |
| <td>true</td> |
| </tr> |
| |
| <tr> |
| <td>ShrinkerInterval</td> |
| <td>How often should the disk shrinker run (in seconds).</td> |
| <td>N</td> |
| <td>300</td> |
| </tr> |
| |
| </table> |
| </subsection> |
| |
| <subsection name="Example Configuration"> |
| <source> |
| <![CDATA[ |
| ############################################################## |
| ################## AUXILIARY CACHES AVAILABLE ################ |
| # JDBC disk cache |
| jcs.auxiliary.JDBC=org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCacheFactory |
| jcs.auxiliary.JDBC.attributes=org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCacheAttributes |
| jcs.auxiliary.JDBC.attributes.userName=sa |
| jcs.auxiliary.JDBC.attributes.password= |
| jcs.auxiliary.JDBC.attributes.url=jdbc:hsqldb: |
| jcs.auxiliary.JDBC.attributes.database=target/cache_hsql_db |
| jcs.auxiliary.JDBC.attributes.driverClassName=org.hsqldb.jdbcDriver |
| jcs.auxiliary.JDBC.attributes.tableName=JCS_STORE2 |
| jcs.auxiliary.JDBC.attributes.testBeforeInsert=false |
| jcs.auxiliary.JDBC.attributes.maxActive=15 |
| jcs.auxiliary.JDBC.attributes.allowRemoveAll=true |
| jcs.auxiliary.JDBC.attributes.MaxPurgatorySize=10000000 |
| jcs.auxiliary.JDBC.attributes.UseDiskShrinker=true |
| jcs.auxiliary.JDBC.attributes.ShrinkerInterval=300 |
| ]]> |
| </source> |
| </subsection> |
| |
| <subsection name="JDBC Disk Event Queue Configuration"> |
| |
| <table> |
| <tr> |
| <th>Property</th> |
| <th>Description</th> |
| <th>Required</th> |
| <th>Default Value</th> |
| </tr> |
| <tr> |
| <td>EventQueueType</td> |
| <td> |
| This should be either SINGLE or POOLED. By |
| default the single style pool is used. The |
| single style pool uses a single thread per |
| event queue. That thread is killed whenever |
| the queue is inactive for 30 seconds. Since |
| the disk cache uses an event queue for every |
| region, if you have many regions and they |
| are all active, you will be using many |
| threads. To limit the number of threads, you |
| can configure the disk cache to use the |
| pooled event queue. Using more threads than |
| regions will not add any benefit for the |
| indexed disk cache, since only one thread |
| can read or write at a time for a single |
| region. |
| </td> |
| <td>N</td> |
| <td>SINGLE</td> |
| </tr> |
| <tr> |
| <td>EventQueuePoolName</td> |
| <td> |
| This is the name of the pool to use. It is |
| required if you choose the POOLED event |
| queue type, otherwise it is ignored. |
| </td> |
| <td>Y</td> |
| <td>n/a</td> |
| </tr> |
| </table> |
| </subsection> |
| |
| <subsection |
| name="Example Configuration Using Thread Pool"> |
| <source> |
| <![CDATA[ |
| ############################################################## |
| ################## AUXILIARY CACHES AVAILABLE ################ |
| # JDBC disk cache |
| jcs.auxiliary.JDBC=org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCacheFactory |
| jcs.auxiliary.JDBC.attributes=org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCacheAttributes |
| jcs.auxiliary.JDBC.attributes.userName=sa |
| jcs.auxiliary.JDBC.attributes.password= |
| jcs.auxiliary.JDBC.attributes.url=jdbc:hsqldb: |
| jcs.auxiliary.JDBC.attributes.database=target/cache_hsql_db |
| jcs.auxiliary.JDBC.attributes.driverClassName=org.hsqldb.jdbcDriver |
| jcs.auxiliary.JDBC.attributes.tableName=JCS_STORE2 |
| jcs.auxiliary.JDBC.attributes.testBeforeInsert=false |
| jcs.auxiliary.JDBC.attributes.maxActive=15 |
| jcs.auxiliary.JDBC.attributes.allowRemoveAll=true |
| jcs.auxiliary.JDBC.attributes.MaxPurgatorySize=10000000 |
| jcs.auxiliary.JDBC.attributes.UseDiskShrinker=true |
| jcs.auxiliary.JDBC.attributes.ShrinkerInterval=300 |
| jcs.auxiliary.JDBC.attributes.EventQueueType=POOLED |
| jcs.auxiliary.JDBC.attributes.EventQueuePoolName=disk_cache_event_queueue |
| |
| ############################################################## |
| ################## OPTIONAL THREAD POOL CONFIGURATION ######### |
| # Disk Cache pool |
| thread_pool.disk_cache_event_queue.useBoundary=false |
| thread_pool.disk_cache_event_queue.boundarySize=500 |
| thread_pool.disk_cache_event_queue.maximumPoolSize=15 |
| thread_pool.disk_cache_event_queue.minimumPoolSize=10 |
| thread_pool.disk_cache_event_queue.keepAliveTime=3500 |
| thread_pool.disk_cache_event_queue.whenBlockedPolicy=RUN |
| thread_pool.disk_cache_event_queue.startUpSize=10 |
| ]]> |
| </source> |
| </subsection> |
| |
| </section> |
| </body> |
| </document> |