...| Home | Cocoon...
DBPrism - Apache Cocoon > HSQL Server Implementation for External Cache Server >

+ Home ...
+ Download
+ Documentation
+ DBPrism Content Management System
> DBPrism - Apache Cocoon
+ Credits
+ Legal
 
+ Cocoon
+ DBPrismGenerator for Cocoon2
+ CocoonRequestWrapper for Cocoon2
+ External Cache Invalidator Server interface
+ In Memory Server Implementation for External Cache Server
> HSQL Server Implementation for External Cache Server
+ ExternalCacheValidity for Cocoon2
+ Cocoon files includes into dbprism.ear
+ Trace Diagrams
 
+ links
+ Yahoo.groups
+ OTN
+ OSCOM.org
 
Moreover news
+ IBM speeds Java on mainframes (CNET Asia)
+ Middle-aged mainframe converts to Java (ZDNet UK)
+ IBM speeds Java on mainframes (ZDNet)
+ IBM speeds Java on mainframes (CNET)
+ All Buttons (JavaBoutique)
+ Drag-and-Drop Editor Out for Linux Devs (Internet News)
+ Using Program Parameters in Java (JavaBoutique)
+ Sun pledges to cooperate with Microsoft (AP via Seattle Post Intelligencer)
+ Sun pledges to cooperate with Microsoft (Boston Globe)
+ Bitter legal feud ends with payment, Sun cuts 3,300 more jobs (China Post)
+ Sun and Microsoft settle (Chicago Sun-Times)
+ Microsoft to pay $1.6 billion, settle with Sun Microsystems (Baltimore Sun)
+ Visualize Hoovers Data With Anacubis (ResearchBuzz via ResearchBuzz)
+ Sun and BEA advance Java app offerings (Computer Weekly)
+ Sun wants to lift its Java profile (ZDNet UK)
+ 'Smack the Pingu' on Your Mobile Phone! (PA News via The Scotsman Online)
+ Third Generation Mobile Phone Game from Nihon Enterprise (Japan Corp)
+ Comment: Free but shackled - the Java trap (Sydney Morning Herald)
+ Sun plots Java comeback (CNET Asia)
+ Veritas and BEA vow to love Java together (The Register)
+ Microsoft and Sun's settlement will yield web services benefits and support for Java (Computer Weekly)
+ Sun plots Java comeback (CNET)
+ Sun plots Java comeback (ZDNet)
+ Sun enables new wave of mobile Java services (Sunday Times South Africa)
+ Sun Releases Sun Java Studio 6 (Techfocus)
+ Sam Pitrodas Telecom Firm Sets Up India Centre (Financial Express)
+ Multi Player Mobile Gaming (BBC)
+ Combining SOAP and JavaMail (Java Pro)
+ Draw Applet (JavaBoutique)
+ IBM dedicates module to Java on mainframes (CNET)
 
+ OTN News
+ View Live Customer Webcast Demos of Enterprise Manager 10g Grid Control
+ Oracle Database 10g for Windows Now Available for Download
+ Download New Oracle 10g JDBC Drivers
+ JDeveloper 10g Reviewed in Internet.com's Java Boutique
+ Java Developer's Journal Readers Name Oracle Products "Best" in Two Categories
+ New OracleAS Portal Extension for Macromedia Dreamweaver
+ Learn from the Experts During Java Week
+ Download Oracle Database 10g
+ New OracleAS Web Cache How-To Documents
+ Learn About SQL 2003 Support in Oracle Database 10g
+ New: Quick Installation Guide for RAC on Oracle Database 10g SE (Windows)
+ Oracle Forms Diagnostic Techniques
+ Introduction to JavaServer Faces
+ Prepare for Oracle Database 10g
+ New Tutorial: Learn JSP 2.0
+ Learn Best Practices for Consolidating Oracle on Linux Deployments
+ What's New in PL/SQL in Oracle Database 10g?
+ New Oracle 10g JDBC Samples
+ New Tech Tip: Using HttpUnit in Oracle JDeveloper 10g
+ Oracle 10g Supports Microsoft Windows Media Streaming Services and Windows Media File Format (ASF)
+ New Books at Oracle 10g Book Center
+ Tech Tip: Using JSTL SQL in Oracle JDeveloper 10g Preview
+ New Technical Article Series: The Hitchhiker's Guide to PHP
+ New Enterprise Manager 10g Grid Control Hands-on Tutorial
+ OC4J 10g (10.0.3) Developer Preview 2 Now Available
+ Download the New Oracle JDeveloper Application Migration Assistant (AMA) Search Rules for WebLogic Migrations
+ Learn Oracle in 2 Days
+ Download the new Oracle XDK 10g Production Release
+ Explore New JDBC 10g How-To's
+ New Oracle 10g JDBC Sample: CachedRowSet
+ New RowSet Implementation Tutorial Series
+ Download 2003 ODTUG Conference Papers
+ New Tutorial: Understanding TLD Caching in JSPs
+ Deploy the New J2EE 1.4 Adventure Builder Reference Application to OC4J
+ Download New Servlet Advanced Sample Applications
+ New: Oracle XDK 10g Unicode Support and XSLT Extension Sample App
+ New Oracle Application Server ProcessConnect End-to-End Samples
DBPrism at SourceForge
Built with Cocoon2
Cocoon
 
DBPrism HSQL Server implementation for External Cache Server

DatabaseServerImpl implements the interface defined by External Cache Invalidator Server. It implements his functionality using HSQL in memory database for storing cached pages metadata. It mainly uses two tables for storing the metadata, these tables are defined by the following SQL commands:

create table esi_pages (id identity,
                        path varchar(4000),
                        source varchar(4000),
                        key bigint,
                        args varchar(30));
create unique index esi_pages_idx on esi_pages(source,args);
create index esi_pages_path_idx on esi_pages(path);
create table esi_args  (id_page integer,
                        name varchar(255),
                        val varchar(4000),
       CONSTRAINT args_pg_fk FOREIGN KEY (id_page)
       REFERENCES esi_pages(id) ON DELETE CASCADE);
create unique index esi_args_idx on esi_args(id_page,name,val);
grant all on class 'org.apache.cocoon.util.HSQLDBLibrary' to public;
create alias RegMatch FOR 'org.apache.cocoon.util.HSQLDBLibrary.REMatch';
  

Note DBPrism adds to HSQL DB engine a new SQL function to process regular expresions on the database columns. This function, RegMatch takes two arguments, the first argument is an Apache RegExp string and the other the column value. It returns 1 or 0 if match or not.

Argument provides by cocoon.xconf
  • jdbcDriver, By default org.hsqldb.jdbcDriver, defines the JDBC driver used to connect to database engine.
  • connectString, By default jdbc:hsqldb:., defines the JDBC URL used to locate the database repository, it uses in memory location, see HSQL documentation for more detail.
  • username, By default sa, usuario used to connect to the database.
  • password, By default an empty string, password used to connect to the database.
  • invalidator-user, user name used for authorization purpose of the invalitation message.
  • invalidator-pass, password used for authorization purpose of the invalitation message.
  • Cleanup-Thread-Interval, seconds betwen every checking of invalitation queue.

user.roles example:

<?xml version="1.0"?>
<!DOCTYPE role-list [
<!ELEMENT role-list (role+)> 
<!ELEMENT role (hint*)>
<!ELEMENT hint EMPTY>
<!ATTLIST role name CDATA #REQUIRED
               shorthand CDATA #REQUIRED
               default-class CDATA #IMPLIED
>
<!ATTLIST hint shorthand CDATA #REQUIRED
               class CDATA #REQUIRED
>
]>

<role-list>
 <role name="org.apache.cocoon.components.cache.Server"
       shorthand="cache-server"
       default-class="org.apache.cocoon.components.cache.DatabaseServerImpl"/>
</role-list>
  

cocoon.xconf

<?xml version="1.0"?>
<cocoon version="2.0" user-roles="/user.roles">
.....
  <!-- ESI Invalidation protocol support:
      InMemoryServerImpl parameters:
          initialCapacity        : number      Value for HashMap store
          loadFactor             : number      Value for HashMap store
      DatabaseServerImpl (HSQLDB) parameter:
          jdbcDriver             : JDBC Driver for the repository
          connectString          : JDBC connect string
          username               : database username
          password               : database password
      Common parameters:
          invalidator-user       : user name used for invalidation purpose
          invalidator-pass       : password used for invalidation purpose
          Cleanup-Thread-Interval: number of seconds betwen checking the inv. queue
    -->
    <cache-server class="org.apache.cocoon.components.cache.DatabaseServerImpl"
                  pool-max="1" pool-min="1"
                  logger="core.cache-server">
      <parameter name="jdbcDriver" value="org.hsqldb.jdbcDriver"/>
      <parameter name="connectString" value="jdbc:hsqldb:."/>
      <parameter name="username" value="sa"/>
      <parameter name="password" value=""/>
      <parameter name="invalidator-user" value="invalidator"/>
      <parameter name="invalidator-pass" value="invalidator"/>
      <parameter name="Cleanup-Thread-Interval" value="1"/>
    </cache-server>
.....
</cocoon>
  

NoteDue to an internal bug ( 704637) on HSQL source, DBPrism CMS includes a patched version of HSQL. Do not use public released of HSQL until its fixed.



Last Update: 2003-08-07 09:43:22.0| webmaster@dbprism.com.ar
Search | Use AltaVista (TM) query syntax<<
Quick Links<<
(C) 2003 - DBPrism ~ DBPrism CMS | Marcelo F. Ochoa | TANDIL ~ Argentina