svn commit: r474575 - in /db/ojb/branches/OJB_1_0_RELEASE: ./ src/doc/forrest/src/documentation/content/xdocs/ src/doc/forrest/src/documentation/content/xdocs/docu/ src/doc/forrest/src/documentation/content/xdocs/docu/guides/

[email protected]
Newsgroups gmane.comp.jakarta.ojb.devel
Message-ID <[email protected]>
Author: arminw
Date: Mon Nov 13 15:30:53 2006
New Revision: 474575

URL: http://svn.apache.org/viewvc?view=rev&rev=474575
Log:
update docs

Modified:
    db/ojb/branches/OJB_1_0_RELEASE/build.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/getting-started.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/odmg-guide.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/performance.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/mail-archives.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/site.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/status.xml

Modified: db/ojb/branches/OJB_1_0_RELEASE/build.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/build.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/build.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/build.xml Mon Nov 13 15:30:53 2006
@@ -17,10 +17,6 @@
  */
 -->
 <!-- @version $Id$ -->
-<!--
-     ObJectRelationalBridge ANT build configuration.
-     initial author: Thomas Mahler
--->
 
 <project name="ObJectRelationalBridge" default="jar" basedir=".">
 
@@ -232,7 +228,6 @@
             <arg value="${JDBC}"/>
         </java>
         <replace dir="${build.src}" token="$$VERSION$$" value="${version}"/>
-        <replace dir="${build.src}" token="$$VERSION$$" value="${version}"/>
         <replace dir="${build.src}" token="$$MAJOR$$" value="${major}"/>
         <replace dir="${build.src}" token="$$MINOR$$" value="${minor}"/>
         <replace dir="${build.src}" token="$$BUILD$$" value="${build}"/>
@@ -361,10 +356,16 @@
 
     </target>
 
+    <!-- ================================================================== -->
+    <!-- prepare test database                                              -->
+    <!-- ================================================================== -->
     <target name="prepare-testdb"
             description="prepare testdb using torque or ddlutils"
             depends="prepare-testdb-torque, prepare-testdb-ddlutils"/>
- 
+
+    <!-- ================================================================== -->
+    <!-- prepare test database using torque                                 -->
+    <!-- ================================================================== -->
     <target name="prepare-testdb-torque"
             description="prepare testdb using torque"
             depends="prepare, prepare-repository"
@@ -401,6 +402,9 @@
 
     </target>
 
+    <!-- ================================================================== -->
+    <!-- prepare testdb using DdlUtils                                      -->
+    <!-- ================================================================== -->
     <target name="prepare-testdb-ddlutils"
             description="prepare testdb using DdlUtils"
             depends="prepare, prepare-repository"
@@ -890,6 +894,12 @@
         <copy todir="${build.doc}">
             <fileset dir="${src.forrest}"/>
         </copy>
+
+        <!-- Prepare release-notes doc -->
+        <loadfile property="release-notes.content" srcfile="${basedir}/release-notes.txt"/>
+        <replace file="${build.doc}/src/documentation/content/xdocs/release-notes.xml" token="@@content@@" value="${release-notes.content}"/>
+
+
         <!-- clean forrest build -->
         <ant antfile="${env.FORREST_HOME}/main/forrest.build.xml"
     		 dir="${build.doc}"
@@ -924,6 +934,7 @@
             <param name="forrest-mode" value="site"/>
         </antcall>
         <!-- Finally we can copy the generated documentation to its designated place -->
+        <delete dir="${doc}"/>
         <mkdir dir="${doc}"/>
         <copy todir="${doc}">
             <fileset dir="${forrest.output.dir}"/>
@@ -1490,8 +1501,6 @@
     </target>
 
     <target name="perf-test-jar" depends="prepare">
-
-
         <!-- compile perf classes -->
         <javac srcdir="${build.srctest}"
             includes="**/performance/*"

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/getting-started.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/getting-started.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/getting-started.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/getting-started.xml Mon Nov 13 15:30:53 2006
@@ -134,7 +134,7 @@
                     for details). Therefore, this directory also contains the build script of Torque, but
                     you won't need to invoke it directly.
                 </dd>
-                <dt><strong>src/java</strong></dt>
+                <dt><strong>src/test</strong></dt>
                 <dd>
                     Place your unit tests in here.
                 </dd>

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/odmg-guide.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/odmg-guide.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/odmg-guide.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/odmg-guide.xml Mon Nov 13 15:30:53 2006
@@ -81,8 +81,10 @@
                     auto_update="none"
                 </li>
                 <li>
-                    auto-delete="none" (in this case the reference between the objects, the foreign key entry will 
-                    be nullified) or auto-delete="object" (to enable cascading delete, since OJB 1.0.4!)
+                    auto-delete="none", disable cascading delete, in this case the foreign key will
+                    be nullified, but the referenced object will not be deleted too) or  use
+                    <br/>
+                    auto-delete="object" (to enable cascading delete, since OJB 1.0.4!)
                 </li>
             </ul>
             <note>
@@ -321,6 +323,36 @@
                         feature and to disable OJB's object ordering.
                     </td>
                 </tr>
+                <tr>
+                    <td>
+                        OptimizedTransientObjectDetection
+                    </td>
+                    <td>
+                        If set 'true' an optimized and performant way is used to detect the
+                        state (persistent/transient) of an object. The detection of transient
+                        objects could be costly (e.g. if a select of ID in database is used to
+                        check if object already exists) OJB does in the following order:
+                        <ol>
+                            <li>
+                                Check if the object Identity mark the specified object as transient.
+                                If this is 'false' the object has populated primary key fields,
+                                if 'true' at least one PK field is <em>null</em>
+                                and the object is transient.
+                            </li>
+                            <li>
+                                Then we check if the object was already registered in current transaction.
+                                If it's already registered OJB ask for current state (transient/persistent).
+                            </li>
+                            <li>
+                                If the primary key fields (all fields are populated) are defined/mapped
+                                as 'autoIncrement' fields and 'optimizedTransientObjectDetection' is enabled,
+                                OJB assume that the object is persistent. If the PK fields are not
+                                'autoIncrement' fields or the optimized detection is disabled a database
+                                "exists object"-query is performed to check if the object is persistent or transient.
+                            </li>
+                        </ol>
+                    </td>
+                </tr>
                 <!--<tr>-->
                     <!--<td>-->
                         <!--NoteUserOrder-->
@@ -432,34 +464,34 @@
                         <br/>
                         Use this methods to change the used OQL query result class at runtime.
                         Description can be found in
-                        <a href="#configuration">
-                            <em>Configuration Properties</em>
-                        </a> section
-                        and in javadoc of
-                        <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
+                        <a href="#configuration"><em>Configuration Properties</em></a> section
+                        and in javadoc of <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
                     </li>
                     <li>
                         is/setImpliciteWriteLocks
                         <br/>
-                        Use this methods to global change the associated locking type at runtime when implicit
-                        locking is used.
+                        Use this methods to change the associated locking type at runtime for the whole
+                        applicationwhen implicit locking is used.
                         Description can be found in
-                        <a href="#configuration">
-                            <em>Configuration Properties</em>
-                        </a> section
-                        and in javadoc of
-                        <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
+                        <a href="#configuration"><em>Configuration Properties</em> </a> section
+                        and in javadoc of <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
                     </li>
                     <li>
                         is/setOrdering
                         <br/>
                         Use this methods to global enable/disable OJB's object ordering algorithm.
                         Description can be found in
-                        <a href="#configuration">
-                            <em>Configuration Properties</em>
-                        </a> section
-                        and in javadoc of
-                        <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
+                        <a href="#configuration"><em>Configuration Properties</em></a> section
+                        and in javadoc of <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
+                    </li>
+                    <li>
+                        is/setOptimizedTransientObjectDetection
+                        <br/>
+                        Use this method to global enable/disable use a performance-optimized
+                        check to differ persistent/transient objects.
+                        Description can be found in
+                        <a href="#configuration"><em>Configuration Properties</em></a> section
+                        and in javadoc of <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
                     </li>
                     <!--<li>-->
                         <!--is/setNoteUserOrder-->
@@ -513,6 +545,12 @@
                     </li>
                     <li>
                         is/setOrdering
+                        <br/>
+                        Description can be found in javadoc of
+                        <a href="ext:odmg-transaction-ext">TransactionExt</a>.
+                    </li>
+                    <li>
+                        is/setOptimizedTransientObjectDetection
                         <br/>
                         Description can be found in javadoc of
                         <a href="ext:odmg-transaction-ext">TransactionExt</a>.

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/performance.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/performance.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/performance.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/performance.xml Mon Nov 13 15:30:53 2006
@@ -95,6 +95,10 @@
                 <ul>
                     <li>
                         <code>perf-test</code>  single/multi-threaded performance (stress) test of PB/ODMG api against native JDBC
+                        <note>
+                            The <em>performance test</em> output is written to console and in a
+                            file called <em>OJB-Performance-Result.txt</em>.
+                        </note>
                     </li>
                     <li>
                         <code>performance</code>  single-threaded test, OJB API implementations (PB, ODMG) against native JDBC
@@ -153,10 +157,10 @@
                     shouldn't cause any problems.
                 </p>
                 <p>
-                    Per default OJB use a in-memory hsql database, by changing the
+                    By default OJB use HSQL database (in-memory mode), by changing the
                     <a href="site:repository/jdbc-connection-descriptor">JdbcConnectionDescriptor</a>
-                    in the <em>repository.xml</em> file or modify the <em>build.properties</em> file when
-                    running OJB out of the box you can point to your specific RDBMS.
+                    in the <em>repository.xml</em> file or by modifing the <em>build.properties</em> file when
+                    running OJB out of the box, you can point to your specific RDBMS.
                     <br/>
                     Please refer to this
                     <a href="site:platform/select-profile">document for details</a>.
@@ -168,13 +172,66 @@
                 <source><![CDATA[
     ant perf-test]]></source>
                 <p>
-                    A typical output of this test, using OJB against in-memory hsql
-                    (batch statements and pooled prepared statements are not used)
-                    looks like this:
+                    If you want to play with different test settings, e.g. settings conform to
+                    your requirement, modify the ant target for this test.
+                    <br/>
+                    To change the test properties go to target
+                    <code>perf-test</code>
+                    in the
+                    <code>build.xml</code> file and change the program parameter.
+                    <br/>
+                    The test needs five parameter:
+                    <br/>- A comma separated list of the test implementation classes (no blanks!)
+                    <br/>- The number of test loops
+                    <br/>- The number of concurrent threads
+                    <br/>- The number of managed objects per thread
+                    <br/>- The desired test mode.
+                    <code>false</code> means run in
+                    performance mode,
+                    <code>true</code> means run in stress mode
+                    (useful only for developer to check stability).
+                </p>
+                <source><![CDATA[
+<target name="perf-test" depends="prepare-testdb"
+        description="Simple performance benchmark and stress test for PB- and ODMG-api">
+    <java fork="yes" classname="org.apache.ojb.performance.PerfMain"
+          dir="${build.test}/ojb" taskname="ojb" failonerror="true" >
+        <classpath refid="runtime-classpath"/>
+        <!-- comma separated list of the PerfTest implementations -->
+        <arg value=
+        "org.apache.ojb.compare.OJBPerfTest$JdbcPerfTest,
+        org.apache.ojb.compare.OJBPerfTest$PBPerfTest,
+        org.apache.ojb.compare.OJBPerfTest$ODMGPerfTest"
+        />
+        <!-- test loops, default was 6 -->
+        <arg value="6"/>
+        <!-- performed threads, default was 12 -->
+        <arg value="12"/>
+        <!-- number of managed objects per thread, default was 500 -->
+        <arg value="500"/>
+        <!-- if 'false' we use performance mode, 'true' we do run in stress mode -->
+        <arg value="false"/>
+        <!-- if 'true' all log messages will be print -->
+        <arg value="true"/>
+        <jvmarg value="-Xms128m"/>
+        <jvmarg value="-Xmx256m"/>
+    </java>
+    <!-- do some cleanup -->
+    <ant target="copy-testdb"/>
+</target>]]></source>
+                <p>
+                    It's easy to change target database. Please
+                    refer to this
+                    <a href="site:platform/select-profile">document for details</a>.
+                </p>
+                <p>
+                    A typical output of this test, using OJB against in-memory HSQL database
+                    (connection pooling and pooled prepared statements are enabled, objects put
+                    to a second-level cache, no batching) looks like this:
                     </p>
                 <source><![CDATA[
 [ojb] ================================================================================================
-[ojb]             OJB PERFORMANCE TEST SUMMARY, Fri Feb 03 12:21:30 CET 2006
+[ojb]             OJB PERFORMANCE TEST SUMMARY, Mon Oct 30 14:02:52 CET 2006
 [ojb] ------------------------------------------------------------------------------------------------
 [ojb]   12 concurrent threads, handle 500 objects per thread
 [ojb]   500 INSERT operations per test instance
@@ -188,11 +245,11 @@
 [ojb] API         Total       Insert      Fetch       Fetch 2     by Id       Update      Delete
 [ojb]             [%]         [msec]      [msec]      [msec]      [msec]      [msec]      [msec]
 [ojb] ------------------------------------------------------------------------------------------------
-[ojb] JDBC        100         587(100%)   25(100%)    26(100%)    255(5100%)  531(100%)   211(100%)
-[ojb] PB          164         1362(232%)  80(320%)    75(288%)    5(100%)     897(168%)   269(127%)
-[ojb] ODMG        233         1716(292%)  102(408%)   98(376%)    9(180%)     1276(240%)  604(286%)
+[ojb] JDBC        100         159(100%)   45(109%)    26(100%)    127(2116%)  185(100%)   198(159%)
+[ojb] PB          140         523(328%)   47(114%)    68(261%)    6(100%)     242(130%)   148(119%)
+[ojb] ODMG        151         598(376%)   41(100%)    58(223%)    6(100%)     290(156%)   124(100%)
 [ojb] ================================================================================================
-[ojb] PerfTest takes 72 [sec]]]></source>
+[ojb] PerfTest takes 36 [sec]]]></source>
                 <p>
                     This test run shows the overhead caused by the O/R layer compared to handcoded sql
                     statements. Most overhead result in populate the two-level cache which is useless
@@ -209,23 +266,26 @@
 [ojb] API         Total       Insert      Fetch       Fetch 2     by Id       Update      Delete
 [ojb]             [%]         [msec]      [msec]      [msec]      [msec]      [msec]      [msec]
 [ojb] ------------------------------------------------------------------------------------------------
-[ojb] JDBC        100         6064(100%)  56(107%)    55(100%)    1326(14733%)6259(154%)  3973(125%)
-[ojb] PB          105         11143(183%) 62(119%)    80(145%)    9(100%)     4062(100%)  3178(100%)
-[ojb] ODMG        113         11055(182%) 52(100%)    67(121%)    44(488%)    5067(124%)  3741(117%)
+[ojb] PB          100         4401(179%)  14(100%)    16(100%)    3(100%)     909(100%)   709(100%)
+[ojb] ODMG        103         3863(157%)  22(157%)    22(137%)    6(200%)     1292(142%)  1024(144%)
+[ojb] JDBC        109         2453(100%)  19(135%)    16(100%)    648(21600%) 2390(262%)  1089(153%)
 [ojb] ================================================================================================
-[ojb] PerfTest takes 430 [sec]]]></source>
+[ojb] PerfTest takes 165 [sec]]]></source>
                 <p>
                     You can see that the overhead caused by the O/R layer disappears bit by bit because
                     the database latency and the network traffic is much longer than the OJB overhead.
+                    Only on insert of new data OJB couldn't keep up with the JDBC-layer. Because of using
+                    a cache OJB show a dramatic better performance when doing a "lookup by primary key
+                    (by Identity)".
                 </p>
                 <p>
-                    If we now enable prepared statement pooling (for OJB and the JDBC layer) and batch
-                    statements (for OJB only - unfair game but adding all these features to the sample
-                    JDBC-layer is too complex) the result will be completely different.
+                    If we now enable batch statements (for OJB only - unfair game but adding all
+                    these features to the sample JDBC-layer is too complex) the result will be
+                    completely different.
                     <br/>
-                    The JDBC-layer show about 50% better performance because of the prepared statement
-                    pooling. OJB with prepared stament pooling and enabled batch mode shows about five
-                    times better performance for insert, update and delete operations.
+                    The JDBC-layer show the same performance because nothing changed.
+                    OJB with enabled batch mode shows about 4-11 times better performance
+                    for insert, update and delete operations.
                 </p>
                 <source><![CDATA[
 ....
@@ -233,11 +293,11 @@
 [ojb] API         Total       Insert      Fetch       Fetch 2     by Id       Update      Delete
 [ojb]             [%]         [msec]      [msec]      [msec]      [msec]      [msec]      [msec]
 [ojb] ------------------------------------------------------------------------------------------------
-[ojb] PB          100         2176(100%)  41(100%)    45(100%)    8(100%)     311(104%)   52(100%)
-[ojb] ODMG        117         2428(111%)  80(195%)    70(155%)    18(225%)    297(100%)   182(350%)
-[ojb] JDBC        417         4078(187%)  69(168%)    65(144%)    1432(17900%)4224(1422%) 1110(2134%)
+[ojb] ODMG        100         1396(100%)  24(120%)    19(126%)    4(133%)     102(100%)   66(108%)
+[ojb] PB          105         1453(104%)  23(115%)    24(160%)    3(100%)     132(129%)   61(100%)
+[ojb] JDBC        386         2530(181%)  20(100%)    15(100%)    398(13266%) 2450(2401%) 814(1334%)
 [ojb] ================================================================================================
-[ojb] PerfTest takes 139 [sec]]]></source>
+[ojb] PerfTest takes 86 [sec]]]></source>
                 <p>
                     Now OJB trounce the JDBC-layer when running a mass test.
                 </p>
@@ -250,12 +310,14 @@
                     a few objects per transaction.
                     <br/>
                     If we chose a more realistic scenario e.g. 30 threads handle 20 objects per thread
-                    (same configuration settings as above, OJB batch mode enabled) nevertheless the result
-                    is near-balance:
+                    the overhead of the O/R layer become more and more important, because the time of the
+                    network traffic is drastic reduced (compared to handle 500 objects).
+                    With the same configuration settings as above - OJB batch mode enabled - nevertheless
+                    the result is near-balance:
                 </p>
                 <source><![CDATA[
 [ojb] ================================================================================================
-[ojb]             OJB PERFORMANCE TEST SUMMARY, Fri Feb 17 13:08:27 CET 2006
+[ojb]             OJB PERFORMANCE TEST SUMMARY, Mon Oct 30 17:06:29 CET 2006
 [ojb] ------------------------------------------------------------------------------------------------
 [ojb]   30 concurrent threads, handle 20 objects per thread
 [ojb]   20 INSERT operations per test instance
@@ -269,11 +331,11 @@
 [ojb] API         Total       Insert      Fetch       Fetch 2     by Id       Update      Delete
 [ojb]             [%]         [msec]      [msec]      [msec]      [msec]      [msec]      [msec]
 [ojb] ------------------------------------------------------------------------------------------------
-[ojb] PB          100         135(100%)   14(280%)    11(183%)    3(100%)     19(100%)    11(100%)
-[ojb] ODMG        123         151(111%)   11(220%)    14(233%)    4(133%)     43(226%)    16(145%)
-[ojb] JDBC        170         137(101%)   5(100%)     6(100%)     35(1166%)   124(652%)   25(227%)
+[ojb] ODMG        100         16(145%)    1(100%)     1(100%)     0(0%)       4(100%)     2(100%)
+[ojb] PB          107         19(172%)    2(200%)     1(100%)     0(0%)       4(100%)     2(100%)
+[ojb] JDBC        159         11(100%)    1(100%)     1(100%)     6(600%)     10(250%)    10(500%)
 [ojb] ================================================================================================
-[ojb] PerfTest takes 144 [sec]]]></source>
+[ojb] PerfTest takes 73 [sec]]]></source>
                 <p>
                     Even if we disable the OJB batch mode to make the test fair, the result is near-balance:
                 </p>
@@ -282,81 +344,25 @@
 [ojb] API         Total       Insert      Fetch       Fetch 2     by Id       Update      Delete
 [ojb]             [%]         [msec]      [msec]      [msec]      [msec]      [msec]      [msec]
 [ojb] ------------------------------------------------------------------------------------------------
-[ojb] JDBC        100         174(100%)   10(100%)    8(100%)     51(5100%)   196(175%)   39(100%)
-[ojb] ODMG        126         384(220%)   15(150%)    11(137%)    0(0%)       124(110%)   69(176%)
-[ojb] PB          158         510(293%)   18(180%)    19(237%)    7(700%)     112(100%)   91(233%)
+[ojb] JDBC        100         12(100%)    1(100%)     1(100%)     6(600%)     13(118%)    9(100%)
+[ojb] PB          142         36(300%)    2(200%)     1(100%)     0(0%)       11(100%)    11(122%)
+[ojb] ODMG        156         34(283%)    3(300%)     2(200%)     0(0%)       18(163%)    11(122%)
 [ojb] ================================================================================================
-[ojb] PerfTest takes 215 [sec]
-                ]]></source>
+[ojb] PerfTest takes 117 [sec]]]></source>
                 <p>
-                    As you can see OJB show a overall good performance compared with a JDBC-layer
+                    As you can see OJB show an overall good performance compared with a JDBC-layer
                     against a RDMS.
+                    <br/>
                     Hence the interesting result: if you have an application that has a lot of object lookups,
                     OJB can be faster than a native JDBC application (without caching extensions) or if
-                    the JDBC-layer doesn't use batch statements, OJB can overall show a better performance.
+                    the JDBC-layer doesn't use batch statements, OJB can overall show a much better
+                    performance.
                 </p>
                 <note>
-                    The <em>performance test</em> output is written to console and in a
-                    file called <em>OJB-Performance-Result.txt</em>.
-                    <br/>
-                    <br/>
                     This simple test only compares the power of OJB and a JDBC-layer
                     relating to a simple "flat" POJO object. Dealing with complex object graphs
                     could give different results.
                 </note>
-                <p>
-                    If you want to play with different test settings, e.g. settings conform to
-                    your requirement, modify the ant target for this test.
-                    <br/>
-                    To change the test properties go to target
-                    <code>perf-test</code>
-                    in the
-                    <code>build.xml</code> file and change the program parameter.
-                    <br/>
-                    The test needs five parameter:
-                    <br/>- A comma separated list of the test implementation classes (no blanks!)
-                    <br/>- The number of test loops
-                    <br/>- The number of concurrent threads
-                    <br/>- The number of managed objects per thread
-                    <br/>- The desired test mode.
-                    <code>false</code> means run in
-                    performance mode,
-                    <code>true</code> means run in stress mode
-                    (useful only for developer to check stability).
-                </p>
-                <source><![CDATA[
-<target name="perf-test" depends="prepare-testdb"
-        description="Simple performance benchmark and stress test for PB- and ODMG-api">
-    <java fork="yes" classname="org.apache.ojb.performance.PerfMain"
-          dir="${build.test}/ojb" taskname="ojb" failonerror="true" >
-        <classpath refid="runtime-classpath"/>
-        <!-- comma separated list of the PerfTest implementations -->
-        <arg value=
-        "org.apache.ojb.compare.OJBPerfTest$JdbcPerfTest,
-        org.apache.ojb.compare.OJBPerfTest$PBPerfTest,
-        org.apache.ojb.compare.OJBPerfTest$ODMGPerfTest"
-        />
-        <!-- test loops, default was 6 -->
-        <arg value="6"/>
-        <!-- performed threads, default was 12 -->
-        <arg value="12"/>
-        <!-- number of managed objects per thread, default was 500 -->
-        <arg value="500"/>
-        <!-- if 'false' we use performance mode, 'true' we do run in stress mode -->
-        <arg value="false"/>
-        <!-- if 'true' all log messages will be print -->
-        <arg value="true"/>
-        <jvmarg value="-Xms128m"/>
-        <jvmarg value="-Xmx256m"/>
-    </java>
-    <!-- do some cleanup -->
-    <ant target="copy-testdb"/>
-</target>]]></source>
-                <p>
-                    It's easy to change target database. Please
-                    refer to this
-                    <a href="site:platform/select-profile">document for details</a>.
-                </p>
             </section>
 
         </section>
@@ -502,23 +508,23 @@
 
     [jdbc] .[performance] INFO: Test for JDBC
     [jdbc] [performance] INFO:
-    [jdbc] [performance] INFO: inserting 1500 Objects: 78 msec
-    [jdbc] [performance] INFO: updating 1500 Objects: 47 msec
-    [jdbc] [performance] INFO: querying 1500 Objects: 31 msec
-    [jdbc] [performance] INFO: querying 1500 Objects: 31 msec
-    [jdbc] [performance] INFO: fetching 1500 Objects: 16 msec
-    [jdbc] [performance] INFO: deleting 1500 Objects: 15 msec
+    [jdbc] [performance] INFO: inserting 1500 Objects: 47 msec
+    [jdbc] [performance] INFO: updating 1500 Objects: 31 msec
+    [jdbc] [performance] INFO: querying 1500 Objects: 16 msec
+    [jdbc] [performance] INFO: querying 1500 Objects: 15 msec
+    [jdbc] [performance] INFO: fetching 1500 Objects: 0 msec
+    [jdbc] [performance] INFO: deleting 1500 Objects: 16 msec
 ....
     [jdbc] Time: 8,75
     [jdbc] OK (1 test)
 
     [ojb] .[performance] INFO: Test for PB-api
     [ojb] [performance] INFO:
-    [ojb] [performance] INFO: inserting 1500 Objects: 93 msec
-    [ojb] [performance] INFO: updating 1500 Objects: 94 msec
-    [ojb] [performance] INFO: querying 1500 Objects: 16 msec
-    [ojb] [performance] INFO: querying 1500 Objects: 16 msec
-    [ojb] [performance] INFO: fetching 1500 Objects: 62 msec
+    [ojb] [performance] INFO: inserting 1500 Objects: 46 msec
+    [ojb] [performance] INFO: updating 1500 Objects: 63 msec
+    [ojb] [performance] INFO: querying 1500 Objects: 0 msec
+    [ojb] [performance] INFO: querying 1500 Objects: 15 msec
+    [ojb] [performance] INFO: fetching 1500 Objects: 31 msec
     [ojb] [performance] INFO: deleting 1500 Objects: 32 msec
 ....
     [ojb] Time: 5,672
@@ -526,12 +532,12 @@
 
     [odmg] .[performance] INFO: Test for ODMG-api
     [odmg] [performance] INFO:
-    [odmg] [performance] INFO: inserting 1500 Objects: 188 msec
-    [odmg] [performance] INFO: updating 1500 Objects: 250 msec
-    [odmg] [performance] INFO: querying 1500 Objects: 531 msec
-    [odmg] [performance] INFO: querying 1500 Objects: 516 msec
+    [odmg] [performance] INFO: inserting 1500 Objects: 78 msec
+    [odmg] [performance] INFO: updating 1500 Objects: 110 msec
+    [odmg] [performance] INFO: querying 1500 Objects: 0 msec
+    [odmg] [performance] INFO: querying 1500 Objects: 16 msec
     [odmg] [performance] INFO: fetching 1500 Objects: 47 msec
-    [odmg] [performance] INFO: deleting 1500 Objects: 171 msec
+    [odmg] [performance] INFO: deleting 1500 Objects: 62 msec
 ....
      [odmg] Time: 13,75
      [odmg] OK (1 test)]]></source>
@@ -545,13 +551,8 @@
                             This is caused by warming up effects of JVM and OJB.
                         </li>
                         <li>
-                            ODMG is much slower than PB or JDBC. This is due to the complex object level
-                            transaction management it is doing and the fact that ODMG doesn't have a specific
-                            method to lookup objects by it's identity. The second reason is responsible for
-                            slow <em>querying</em> results, because in test always a complex query is done for
-                            each object. It is possible to use the PB-api within ODMG, then the query by identity
-                            will be as fast as in PB-api - see
-                            <a href="#multithreaded-performance">results for multi-threaded test</a>.
+                            ODMG is slower than PB or the JDBC layer. This is due to the complex object level
+                            transaction management it is doing.
                         </li>
                         <li>
                             You can see that for HSQLDB operations like insert and update are faster with
@@ -562,8 +563,10 @@
                             is much faster than ordinary database servers and caching the persistent objects
                             when using a in-memory database is pure overhead.
                             <br/>
-                            If you work against Oracle or DB2 the percentual OJB overhead is going down a
-                            lot (to 10 - 15 %), as the database latency is much longer than the OJB overhead.
+                            If you work against Oracle or DB2 the percentual overall OJB overhead is going down a
+                            lot (to 10 - 20 %), as the database latency and network overhead is much longer than
+                            the OJB overhead and when running OJB in batch mode it will beat a none optimized
+                            JDBC layer as shown in <a href="#multithreaded-performance">results for multi-threaded test</a>
                         </li>
                     </ul>
                 <p>
@@ -592,27 +595,19 @@
                 <ul>
                     <li>
                         <p>
-                            The API you use, e.g. PB-api is in many cases faster then the ODMG-api. See
-                            <a href="site:faq/api-differences">which API</a> for more information.
+                            The used API. The PB-api is in many cases faster then the ODMG-api (when using
+                            simple, non-complex object hierarchies). See
+                            <a href="site:faq/api-differences">which API</a> for more information. It's
+                            also possible to combine both API.
                         </p>
                     </li>
-                    <li><p>The <em>autocommit</em> setting of used connections. For best performance
-                        it's recommended to set <em>autocommit</em> 'false' in the <em>jdbc-driver</em>
-                        or to use 'useAutoCommit="2"' setting in
-                        <a href="site:repository/jdbc-connection-descriptor">repository file database setting</a>
-                        to avoid <code>Connection.setAutoCommit(...)</code> calls by OJB.</p>
-                    </li>
-                    <li><p>Use of batch statements by enable <em>batch mode</em> (when supported by the DB) when
-                        insert/update/delete many objects of the same type (e.g. insert ProductGroup with 20 Article objects).
+                    <li><p>Use of batch statements. Enable <em>batch mode</em> (if supported by the DB) when
+                        insert/update/delete many objects of the same type (e.g. insert ProductGroup with
+                        20 Article objects).
                         See <a href="site:repository/jdbc-connection-descriptor"><em>jdbc-connection-descriptor</em></a>
                         <em>batch-mode</em> attribute for more information.</p>
                     </li>
-                    <li><p><a href="site:advanced-technique/persistent-field"><code>PersistentField</code> class
-                        implementation</a>. See <a href="ext:ojb.properties">OJB.properties section
-                        'PersistentFieldClass'</a> to change the implementation.</p>
-                    </li>
-                    <li><p>The used <a href="site:object-cache">cache implementation</a>.</p></li>
-                    <li><p>The <em>JDBC driver</em> settings (e.g. statement caching on/off).</p></li>
+                    <li><p>The <em>JDBC driver</em> settings (e.g. statement caching on/off, ...).</p></li>
                     <li><p>ConnectionFactory implementation / Connection pooling settings (e.g. prepared
                         statement caching if the jdbc-driver doesn't support this feature).
                         See <a href="site:faq">connection pooling</a> for more information.</p>
@@ -621,6 +616,17 @@
                         <a href="site:sequence-manager">sequence manager</a> for
                         more information.</p>
                     </li>
+                    <li><p>The <em>autocommit</em> setting of used connections. Some databases show better
+                        performance when <em>autocommit</em> is set 'false' in the <em>jdbc-driver</em>
+                        or 'useAutoCommit="2"' setting is used in
+                        <a href="site:repository/jdbc-connection-descriptor">the jdbc-connection-descriptor</a>
+                        to avoid <code>Connection.setAutoCommit(...)</code> calls by OJB.</p>
+                    </li>
+                    <li><p>The <a href="site:advanced-technique/persistent-field"><code>PersistentField</code> class
+                        implementation</a>. See <a href="ext:ojb.properties">OJB.properties section
+                        'PersistentFieldClass'</a> to change the implementation.</p>
+                    </li>
+                    <li><p>The used <a href="site:object-cache">cache implementation</a>.</p></li>
                     <li><p>PersistenceBroker pool size. See
                         <a href="ext:ojb.properties">OJB.properties</a> for more information.</p>
                     </li>

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml Mon Nov 13 15:30:53 2006
@@ -136,9 +136,9 @@
                 <p>
                     The mandatory
                     <em>className</em> attribute needs the <strong>full-qualified class name</strong>
-                    of the desired sequence-manager implementation or the OJB-shortcut name (since OJB 1.0.5, all
-                    shipped implementations can be declared via a shortcut name - more details see description
-                    of the implementation).
+                    of the desired sequence-manager implementation or the <strong>OJB-shortcut name</strong>
+                    (since OJB 1.0.5, all shipped implementations can be declared via a shortcut
+                    name - more details see description of the implementation class).
                     <br/>
                     If a implementation needs configuration properties you pass them using
                     <a href="site:repository/custom-attribute">custom attribute</a> tags with
@@ -505,11 +505,11 @@
                         <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a> or
                         <a href="site:repository/field-descriptor">field-descriptor</a>
                         (<a href="#per-field-sequence">since OJB 1.0.5</a>) and specifiy
-                        the <em>full class name</em> or the shortcut name (since OJB 1.0.5) <em>nextval</em>:
+                        the <em>full class name</em> or the shortcut name (since OJB 1.0.5) <em>sequence</em>:
                     </p>
                     <source><![CDATA[
 <!--<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">-->
-<sequence-manager className="nextval">
+<sequence-manager className="sequence">
     <attribute attribute-name="seq.start" attribute-value="200000"/>
     <attribute attribute-name="seq.autoNaming" attribute-value="true"/>
 

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/mail-archives.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/mail-archives.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/mail-archives.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/mail-archives.xml Mon Nov 13 15:30:53 2006
@@ -49,6 +49,18 @@
                 </tr>
 
                 <tr>
+                    <td>MARC</td>
+                    <td>
+                        <a href="ext:ojb/archives/theaimsgroup/user">ojb-user</a>
+                    </td>
+                    <td>
+                        <a href="ext:ojb/archives/theaimsgroup/dev">ojb-dev</a>
+                    </td>
+                    <td>yes</td>
+                    <td>--</td>
+                </tr>
+
+                <tr>
                     <td>The Mail Archive</td>
                     <td>
                         <a href="ext:ojb/archives/mail-archive/user">ojb-user</a>
@@ -84,17 +96,6 @@
                     <td>--</td>
                 </tr>
 
-                <tr>
-                    <td>MARC</td>
-                    <td>
-                        <a href="ext:ojb/archives/theaimsgroup/user">ojb-user</a>
-                    </td>
-                    <td>
-                        <a href="ext:ojb/archives/theaimsgroup/dev">ojb-dev</a>
-                    </td>
-                    <td>yes</td>
-                    <td>--</td>
-                </tr>
             </table>
         </section>
     </body>

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/site.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/site.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/site.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/site.xml Mon Nov 13 15:30:53 2006
@@ -38,7 +38,7 @@
         <features label="Features" href="features.html"/>
         <!-- faq label="FAQ's" href="site:faq" / -->
         <status label="Status" href="status.html"/>
-        <release-notes label="Release Notes" href="ext:release-notes"/>
+        <release-notes label="Release Notes" href="release-notes.html"/>
         <references label="References" href="references.html"/>
         <wiki label="Wiki" href="ext:ojb/wiki-page"/>
         <mail-lists label="Mailing Lists" href="mail-lists.html"/>

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/status.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/status.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/status.xml Mon Nov 13 15:30:53 2006
@@ -28,7 +28,7 @@
         </p>
         <p>
             Any known issues, including for the parts of OJB that are <em>stable</em>,
-            can be found in <a href="ext:release-notes">release-notes.txt</a>.
+            can be found in <a href="site:release-notes">release-notes</a>.
         </p>
         <table class="ojb">
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.