You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2003/06/11 16:02:42 UTC

cvs commit: db-ojb/xdocs metadata.xml project.xml objectcache.xml faq.xml

arminw      2003/06/11 07:02:42

  Modified:    xdocs    project.xml objectcache.xml faq.xml
  Added:       xdocs    metadata.xml
  Log:
  - update docs
  - add metadata doc
  
  Revision  Changes    Path
  1.19      +6 -5      db-ojb/xdocs/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/db-ojb/xdocs/project.xml,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- project.xml	5 Jun 2003 06:04:46 -0000	1.18
  +++ project.xml	11 Jun 2003 14:02:42 -0000	1.19
  @@ -19,9 +19,9 @@
   		<item name="Binaries" href="http://db.apache.org/builds/ojb"/>
   		<item name="Source"   href="http://db.apache.org/builds/ojb"/>
   		<!--item name="Binaries"    href="http://sourceforge.net/project/showfiles.php?group_id=13647"/-->
  -		<!--item name="Source"      href="http://sourceforge.net/project/showfiles.php?group_id=13647"/-->		
  +		<!--item name="Source"      href="http://sourceforge.net/project/showfiles.php?group_id=13647"/-->
   	</menu>
  -    
  +
       <menu name="Tutorials">
      		<item name="PersistenceBroker API" href="/tutorial1.html"/>
      		<item name="OJB Queries"           href="/query.html"/>
  @@ -29,7 +29,7 @@
      		<item name="JDO API"               href="/tutorial4.html"/>
      		<item name="Advanced O/R"          href="/tutorial3.html"/>
       </menu>
  -    
  +
       <menu name="User Documentation">
      		<item name="JDBC types"            href="/jdbc-types.html"/>
      		<item name="The repository.xml"    href="/repository.html"/>
  @@ -53,10 +53,11 @@
      		<item name="The Objectcache"       href="/objectcache.html"/>
      		<item name="The Sequence Manager"  href="/sequencemanager.html"/>
      		<item name="The Lockmanager"       href="/lockmanager.html"/>
  +   		<item name="Metadata Handling"     href="/metadata.html"/>
      		<item name="Performance"           href="/performance.html"/>
       </menu>
  -  
  -    
  +
  +
       <menu name="Development">
         <item name="ToDo"                  href="/todo.html"/>
         <item name="project's Wiki"        href="http://nagoya.apache.org/wiki/apachewiki.cgi?OJBProjectPages" />
  
  
  
  1.4       +70 -6     db-ojb/xdocs/objectcache.xml
  
  Index: objectcache.xml
  ===================================================================
  RCS file: /home/cvs/db-ojb/xdocs/objectcache.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- objectcache.xml	9 Apr 2003 09:28:52 -0000	1.3
  +++ objectcache.xml	11 Jun 2003 14:02:42 -0000	1.4
  @@ -1,4 +1,5 @@
   <?xml version="1.0" encoding="ISO-8859-1"?>
  +<!-- @version $Id$ -->
   <document>
   
     <properties>
  @@ -14,6 +15,7 @@
   <ul>
       <li><a href="#why cache">Why a cache?</a></li>
       <li><a href="#how works">How it works</a></li>
  +    <li><a href="#change">How to change the used ObjectCache implementation</a></li>
       <li><a href="#alternative">Alternative cache implementations</a></li>
       <li><a href="#implement cache">Implement your own cache</a></li>
       <li><a href="#"></a></li>
  @@ -31,6 +33,10 @@
   </p>
   
   
  +<P>
  +<font color="#ff0000"><i><b>important note: this document is not finished yet.</b></i></font>
  +</P>
  +
   
   <subsection name="Why a cache?" anchor="why cache">
   <p>
  @@ -120,11 +126,72 @@
   </subsection>
   
   
  +<subsection name="How to change the used ObjectCache implementation" anchor="change">
  +<p>
  +To change the used <code>ObjectCache</code> implementation you only
  +need to set the property <code>ObjectCacheClass</code> in <a href="OJB.properties.txt">
  +OJB.properties</a> file:
  +<source>
  +
  +#-------------------------------------------------------------------
  +# Object cache
  +#-------------------------------------------------------------------
  +# The ObjectCacheClass entry tells OJB which concrete instance Cache
  +# implementation is to be used.
  +ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCacheDefaultImpl
  +#
  +</source>
  +</p>
  +</subsection>
  +
   
   
   <subsection name="Alternative cache implementations" anchor="alternative" >
   <p>
  -TODO
  +OJB was shipped with several <code>ObjectCache</code> implementations. All
  +implementations can be found in <code>org.apache.ojb.broker.cache</code> package.
  +</p>
  +
  +<p>
  +<b>ObjectCacheDefaultImpl</b><br/>
  +Per default OJB use a global reference based <code>ObjectCache</code>
  +implementation. It's a fast and simple cache but has some drawbacks.
  +There is no transaction isolation, when thread one modify an object,
  +thread two will see the modification when lookup the same object.
  +If you rollback/abort a transaction the corrupted objects will not
  +be removed from the cache. You have to do this using
  +<source>
  +    broker.removeFromCache(obj);
  +
  +    // or (using Identity object)
  +
  +    ObjectCache cache = broker.serviceObjectCache();
  +    cache.remove(oid);
  +</source>
  +by your own.
  +</p>
  +
  +<p>
  +<b>ObjectCachePerBrokerImpl</b><br/>
  +This local cache implementation allows to have dedicated caches per broker.
  +All calls are delegated to the cache associated with the currentBroker.
  +When the broker was closed (returned to pool) the cache was cleared.
  +</p>
  +
  +<p>
  +<b>ObjectCacheJCSImpl</b><br/>
  +A global <code>ObjectCache</code> implementation using JCS region for
  +each classname. More info see <a href="http://jakarta.apache.org/turbine/jcs/index.html">
  +turbine-JCS</a>.
  +</p>
  +
  +<p>
  +<b>ObjectCacheEmptyImpl</b><br/>
  +This is an 'empty' ObjectCache implementation.
  +Useful when caching was not desired.
  +To support 'circular references' this implementation
  +use a temporary map while store and delete operation
  +(this may change in further versions).
   </p>
   </subsection>
   
  @@ -132,7 +199,7 @@
   
   <subsection name="Implement your own cache" anchor="implement own">
   <p>
  -The OJB cache is quite simple but does a good job for most
  +The OJB cache implementations are quite simple but do a good job for most
   scenarios. If you need a more sophisticated cache (e.g. with MRU
   memory management strategies) you'll write your own implementation of
   the interface <code>ojb.broker.cache.ObjectCache</code>.
  @@ -140,10 +207,7 @@
   Integration of your implementation in OJB is easy since the object cache is
   a pluggable component. All you have to do, is to declare it in the
   <code>OJB.properties</code> file by setting the <code>ObjectCacheClass</code>
  -property:
  -<source>
  -ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCacheMyOwnImpl
  -</source>
  +property. <a href="#change">See more</a>.
   </p>
   
   <p>Of course I'm interested in your solutions! If you have
  
  
  
  1.21      +11 -5     db-ojb/xdocs/faq.xml
  
  Index: faq.xml
  ===================================================================
  RCS file: /home/cvs/db-ojb/xdocs/faq.xml,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- faq.xml	10 Jun 2003 00:57:19 -0000	1.20
  +++ faq.xml	11 Jun 2003 14:02:42 -0000	1.21
  @@ -255,13 +255,13 @@
   
       <subsection name="How OJB performance compares to native JDBC programming?" anchor="FAQ34">
       <p>
  -        See section <a href="performance.html">Performance</a>.
  +        See section <a href="#FAQ32">faq max. performance</a> and <a href="performance.html">Performance</a>.
       </p>
       </subsection>
   
       <subsection name="How OJB performance compares to other O/R mapping tools?" anchor="FAQ35">
       <p>
  -        See section <a href="performance.html">Performance</a>.
  +        See section <a href="#FAQ32">faq max. performance</a> and <a href="performance.html">Performance</a>.
       </p>
       </subsection>
   
  @@ -637,7 +637,7 @@
       </p>
      </subsection>
   
  -   <subsection name="What are the OJB internal tables for?" anchor="FAQ10">
  +   <subsection name="What are the OJB internal tables for?" anchor="FAQ33">
       <p>
        <a href="platforms.html">please refer to this document</a>.
       </p>
  @@ -1015,18 +1015,24 @@
   dr.setClassDescriptor(cld);
       </source>
       </p>
  +    <p>
  +    Please see section <a href="metadata.html">Metadata Handling</a> in
  +    system documentation for further information.
  +    </p>
       </subsection>
   
   
       <subsection name="Global metadata changes at runtime?" anchor="FAQ28">
       <p>
  -    TODO
  +    Please see section <a href="metadata.html">Metadata Handling</a> in
  +    system documentation.
       </p>
       </subsection>
   
       <subsection name="Per thread metadata changes at runtime?" anchor="FAQ29">
       <p>
  -    TODO
  +    Please see section <a href="metadata.html">Metadata Handling</a> in
  +    system documentation.
       </p>
       </subsection>
   
  
  
  
  1.1                  db-ojb/xdocs/metadata.xml
  
  Index: metadata.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!-- @version $Id: metadata.xml,v 1.1 2003/06/11 14:02:42 arminw Exp $ -->
  <document>
  
    <properties>
      <author>Armin Waibel</author>
      <title>ObJectRelationalBridge System Documentation</title>
    </properties>
  
  <body>
  
  <section name="Metadata Handling">
  
  <ul>
      <li><a href="#intro">Introduction</a></li>
      <li><a href="#connection">Connection metadata</a></li>
      <li><a href="#persistentObject">Persistent object metadata</a></li>
      <li><a href="#globalChanges">Global metadata changes</a></li>
      <li><a href="#perThreadChanges">Per thread metadata changes</a></li>
      <li><a href="#"></a>
          <ul>
              <li><a href="#"></a></li>
          </ul>
      </li>
  </ul>
  
  <P>
  <font color="#ff0000"><i><b>important note: this document is not finished yet.</b></i></font>
  </P>
  
  
  <subsection name="Introduction" anchor="intro">
  <p>
  To make OJB proper work it needs information about the used
  database connections, <a href="sequencemanager.html">sequence managers</a>,
  <a href="faq.html#FAQ23">connection pool configurations</a> (hence
  called <tt>connection metadata</tt>) and information about
  the persistent objects and their associations (hence called <tt>(persistent)
  object metadata</tt>) used in the supported API's.
  </p>
  <p>
  The connection metadata are completely decoupled from the persistent object
  metadata.
  </p>
  <p>
  <br/>
  In OJB there are several ways to make metadata available:
  <ul>
      <li>using xml configuration files parsed at start up</li>
      <li>set metadata at runtime by handling metadata 'container' classes</li>
      <li>parse additional xml configuration files and merge at runtime</li>
  </ul>
  </p>
  <p>
  All classes belonging to metadata handling can be find under
  <code>org.apache.ojb.broker.metadata</code>-package.
  <br/>
  The main class
  for metadata handling and entry point for metadata manipulation at
  runtime is <code>org.apache.ojb.broker.metadata.MetadataManager</code>.
  </p>
  </subsection>
  
  
  
  <subsection name="Connection metadata" anchor="connection">
  <p>
  TODO
  </p>
  </subsection>
  
  
  
  <subsection name="Persistent object metadata" anchor="persistentObject">
  <p>
  TODO
  </p>
  </subsection>
  
  
  
  <subsection name="Global metadata changes" anchor="globalChanges">
  <p>
  TODO
  </p>
  </subsection>
  
  
  
  <subsection name="Per thread metadata changes" anchor="perThreadChanges">
  <p>
  TODO
  </p>
  </subsection>
  
  </section>
  
  </body>
  </document>