Author: arminw Date: Fri Jan 5 18:05:23 2007 New Revision: 493271 URL: http://svn.apache.org/viewvc?view=rev&rev=493271 Log: update docs
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/faq.xml db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/pb-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/repository.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/skinconf.xml Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/faq.xml URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/faq.xml?view=diff&rev=493271&r1=493270&r2=493271 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/faq.xml (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/faq.xml Fri Jan 5 18:05:23 2007 @@ -1173,6 +1173,18 @@ </answer> </faq> + <faq id="batch-statements"> + <question> + How to use batch statements with OJB? + </question> + <answer> + <p> + Please refer to + <a href="site:repository/batch-mode">batch-mode attribute section of jdbc-connection-descriptor in repository guide</a>. + </p> + </answer> + </faq> + <faq id="lobs"> <question> How to use LOB's (like Blob and Clob) with OJB? Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/pb-guide.xml URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/pb-guide.xml?view=diff&rev=493271&r1=493270&r2=493271 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/pb-guide.xml (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/pb-guide.xml Fri Jan 5 18:05:23 2007 @@ -165,6 +165,15 @@ </p> </section> + <anchor id="batch-statements"/> + <section> + <title>How to use batch statements</title> + <p> + Please refer to + <a href="site:repository/batch-mode">batch-mode attribute section of jdbc-connection-descriptor in repository guide</a>. + </p> + </section> + <anchor id="listener"/> <section> <title>Hook into OJB - PB-Listener and Instance Callbacks</title> 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=493271&r1=493270&r2=493271 ============================================================================== --- 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 Fri Jan 5 18:05:23 2007 @@ -94,14 +94,18 @@ </p> <ul> <li> - <code>perf-test</code> single/multi-threaded performance (stress) test of PB/ODMG api against native JDBC + <code>perf-test</code> + <br/> + 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 + <code>performance</code> + <br/> + single-threaded test, OJB API implementations (PB, ODMG) against native JDBC </li> </ul> <p> @@ -221,17 +225,34 @@ </target>]]></source> <p> It's easy to change target database. Please - refer to this - <a href="site:platform/select-profile">document for details</a>. + 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> + A typical output of this test is shown below, using OJB against in-memory HSQL + database using the following settings: + </p> + <ul> + <li> + connection pooling and pooled prepared statements are enabled (using DBCP based + ConnectionFactory implementation in <a href="ext:ojb.properties">OJB.properties file</a>, + parameter enabled in <a href="ext:repository_database.xml">repository file</a>) + </li> + <li> + a in-memory sequence key generator is used + </li> + <li> + objects put to a second-level cache, the JDBC-layer doesn't cache any objects + </li> + <li> + use of batch statements is disabled + </li> + </ul> + <p> + The test result looks like this: + </p> <source><![CDATA[ [ojb] ================================================================================================ -[ojb] OJB PERFORMANCE TEST SUMMARY, Mon Oct 30 14:02:52 CET 2006 +[ojb] OJB PERFORMANCE TEST SUMMARY, Fri Jan 05 16:56:09 CET 2007 [ojb] ------------------------------------------------------------------------------------------------ [ojb] 12 concurrent threads, handle 500 objects per thread [ojb] 500 INSERT operations per test instance @@ -245,13 +266,13 @@ [ojb] API Total Insert Fetch Fetch 2 by Id Update Delete [ojb] [%] [msec] [msec] [msec] [msec] [msec] [msec] [ojb] ------------------------------------------------------------------------------------------------ -[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] JDBC 100 169(100%) 12(100%) 15(100%) 105(1103%) 260(100%) 228(135%) +[ojb] PB 128 323(191%) 75(617%) 59(403%) 9.5(100%) 376(145%) 169(100%) +[ojb] ODMG 170 382(226%) 71(581%) 80(545%) 23(241%) 448(172%) 335(198%) [ojb] ================================================================================================ -[ojb] PerfTest takes 36 [sec]]]></source> +[ojb] PerfTest takes 39 [sec]]]></source> <p> - This test run shows the overhead caused by the O/R layer compared to handcoded sql + This test run shows the overhead caused by the O/R layer compared to hard-coded sql statements. Most overhead result in populate the two-level cache which is useless when using a in-memory database and the persistenece capable object state detection specific to the ODMG implementation. @@ -266,11 +287,11 @@ [ojb] API Total Insert Fetch Fetch 2 by Id Update Delete [ojb] [%] [msec] [msec] [msec] [msec] [msec] [msec] [ojb] ------------------------------------------------------------------------------------------------ -[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] PB 100 2299(130%) 30(130%) 28(123%) 2.2(100%) 3035(124%) 1637(109%) +[ojb] JDBC 102 1765(100%) 23(100%) 23(100%) 1252(56330%)2445(100%) 1659(110%) +[ojb] ODMG 102 2677(152%) 33(141%) 35(151%) 2.4(108%) 2932(120%) 1506(100%) [ojb] ================================================================================================ -[ojb] PerfTest takes 165 [sec]]]></source> +[ojb] PerfTest takes 183 [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. @@ -284,7 +305,7 @@ completely different. <br/> The JDBC-layer show the same performance because nothing changed. - OJB with enabled batch mode shows about 4-11 times better performance + OJB with enabled batch mode shows about 4-13 times better performance for insert, update and delete operations. </p> <source><![CDATA[ @@ -293,17 +314,17 @@ [ojb] API Total Insert Fetch Fetch 2 by Id Update Delete [ojb] [%] [msec] [msec] [msec] [msec] [msec] [msec] [ojb] ------------------------------------------------------------------------------------------------ -[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] PB 100 291(100%) 64(227%) 61(218%) 14(208%) 274(100%) 107(100%) +[ojb] ODMG 145 520(178%) 46(165%) 62(224%) 6.9(100%) 417(152%) 126(117%) +[ojb] JDBC 867 1653(567%) 28(100%) 28(100%) 1564(22615%)2302(841%) 1458(1359%) [ojb] ================================================================================================ -[ojb] PerfTest takes 86 [sec]]]></source> +[ojb] PerfTest takes 88 [sec]]]></source> <p> Now OJB trounce the JDBC-layer when running a mass test. </p> <p> - Most perfomance comparison tests of O/R mapper against a JDBC-layer are unrealistic - mass tests. A typical web-app or client-app will not handle thousands of objects + Most perfomance comparison tests of O/R mapper against a JDBC-layer are <strong>unrealistic + mass tests</strong>. A typical web-app or client-app will not handle thousands of objects per transaction. But mass tests are O/R mappers friends, because they mask the overhead of the O/R mapper compared with a JDBC-layer. So to show the performance of OJB overall and against a JDBC-layer the test should reflect a "real world application" - many threads, @@ -312,12 +333,12 @@ If we chose a more realistic scenario e.g. 30 threads handle 20 objects per thread 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: + With the same configuration settings as above - OJB batch mode enabled - OJB will outperform + the JDBC-layer: </p> <source><![CDATA[ [ojb] ================================================================================================ -[ojb] OJB PERFORMANCE TEST SUMMARY, Mon Oct 30 17:06:29 CET 2006 +[ojb] OJB PERFORMANCE TEST SUMMARY, Fri Jan 05 16:26:38 CET 2007 [ojb] ------------------------------------------------------------------------------------------------ [ojb] 30 concurrent threads, handle 20 objects per thread [ojb] 20 INSERT operations per test instance @@ -331,11 +352,11 @@ [ojb] API Total Insert Fetch Fetch 2 by Id Update Delete [ojb] [%] [msec] [msec] [msec] [msec] [msec] [msec] [ojb] ------------------------------------------------------------------------------------------------ -[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] PB 100 6.2(100%) 1.9(100%) 1.7(137%) 0.08(100%) 5.1(100%) 3.1(100%) +[ojb] ODMG 119 7.4(120%) 1.9(102%) 2.4(194%) 0.1(124%) 6.2(120%) 3.5(115%) +[ojb] JDBC 234 11(186%) 1.9(103%) 1.3(100%) 6.6(8023%) 12(227%) 9.4(304%) [ojb] ================================================================================================ -[ojb] PerfTest takes 73 [sec]]]></source> +[ojb] PerfTest takes 69 [sec]]]></source> <p> Even if we disable the OJB batch mode to make the test fair, the result is near-balance: </p> @@ -344,24 +365,45 @@ [ojb] API Total Insert Fetch Fetch 2 by Id Update Delete [ojb] [%] [msec] [msec] [msec] [msec] [msec] [msec] [ojb] ------------------------------------------------------------------------------------------------ -[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] JDBC 100 12(100%) 1.6(100%) 1.5(100%) 6.3(5045%) 12(100%) 10(100%) +[ojb] PB 127 19(158%) 3.9(239%) 2.2(154%) 0.13(100%) 17(139%) 13(131%) +[ojb] ODMG 131 21(171%) 3.6(225%) 2.4(168%) 0.13(100%) 16(133%) 14(142%) [ojb] ================================================================================================ -[ojb] PerfTest takes 117 [sec]]]></source> +[ojb] PerfTest takes 102 [sec]]]></source> <p> - 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 much better - performance. + As you can see OJB show an overall good performance compared with a hard-coded + JDBC-layer against a RDMS, only about 30% overhead against a "real" (none memory-only) + database. + </p> + <p> + Now the summary/interpretation of the results (hype OJB ;-)): </p> + <ul> + <li> + if you think about implementing your own hard-coded, not reusable JDBC-layer with + connection/statement pooling, object caching and support for batch statements the + performance advantage will be about 30-40% compared with OJB (if you don't implement + performance hot spots and your code is highly optimized) + </li> + <li> + if you have an application that has a lot of object lookups by identity/primary + key, OJB can be much faster than a native JDBC application layer without caching extensions + (the "real world test" show 50-80 times faster <em>lookup by primary key</em>) + </li> + <li> + if the JDBC-layer doesn't use batch statements, OJB can overall show a better + performance (the "real world test" show up to three times faster insert/update/delete + operations, when using mass tests OJB is up to 13 times faster) + </li> + <li> + the tests show that OJB scales very well when increase number of concurrent clients + </li> + </ul> <note> 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. + can give different results (dependent on the used metadata settings - e.g. use + of proxy references, ...). </note> </section> @@ -604,13 +646,13 @@ <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> + See <a href="site:repository/batch-mode"><em>jdbc-connection-descriptor</em></a> <em>batch-mode</em> attribute for more information.</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> + See <a href="site:connection">connection pooling</a> for more information.</p> </li> <li><p>Used sequence manager implementation. See <a href="site:sequence-manager">sequence manager</a> for Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/repository.xml URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/repository.xml?view=diff&rev=493271&r1=493270&r2=493271 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/repository.xml (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/repository.xml Fri Jan 5 18:05:23 2007 @@ -297,8 +297,7 @@ <title>Attributes</title> <p> The - <em>jdbc-connection-descriptor - </em> element contains a bunch + <em>jdbc-connection-descriptor</em> element contains a bunch of required and implied attributes: </p> <p> @@ -361,25 +360,31 @@ <!--Only use within JBoss.--> <!--<em>DEPRECATED</em> attribute.--> <!--</p>--> + <anchor id="batch-mode"/> <p> The <em>batch-mode</em> - attribute allow to enable JDBC batch statement support - (if supported by used database), 'true' value allows to enable per-session - batch mode, whereas 'false' prohibits it. - <br/> - To switch on/off batch modus at runtime use method - <code>PersistenceBroker.serviceConnectionManager.setBatchMode(...) - </code>. + attribute is the general property to enable the use of JDBC batch statement + by OJB (if supported by the used database) - 'true' enables the per-session + batch mode, whereas 'false' prohibits it in general. + <br/> + To switch on/off OJB's batch mode at runtime use method + </p> + <source><![CDATA[ +PersistenceBroker.serviceConnectionManager.setBatchMode(...)]]></source> + <note> + Not until this method activate OJB's batch mode, OJB will use batch statements. + The <em>batch-mode</em> attribute in the <code>jdbc-connection-descriptor</code> only + enable the use use of batch statements - e.g. so it's possible to completely disable the + use of batch statements (<em>batch-mode</em> set 'false') independent from the + <code>setBatchMode(...)</code> calls in the source code. <br/> - Mandatory: this setting have to be enabled, else <code>setBatchMode(true)</code> - will not have effect. <br/> On <code>PersistenceBroker.close()</code> call OJB always switches off batch mode, thus you have to call <code>ConnectionManager.setBatchMode(true)</code> on each new obtained PB instance again. - </p> + </note> <p> This setting can dramatically improve performance for mass insert/update/delete operations of same object type. @@ -523,6 +528,9 @@ 'autoCommit' state at connection initialization. </p> <p> + Other platform specific settings are shown below. + </p> + <p> Usage example of supported custom attributes: </p> <source><![CDATA[ @@ -530,8 +538,38 @@ ... > - <attribute attribute-name="initializationCheck" - attribute-value="false" /> + <!-- + On initialization of connections the ConnectionFactory change the 'autoCommit' + state dependent of the used 'useAutoCommit' setting. This doesn't work in all + situations/environments, thus for useAutoCommit="1" the ConnectionFactory does + no longer set autoCommit to true on connection creation. + To use the old behavior (OJB version 1.0.3 or earlier) set this property + to 'true', then OJB change the autoCommit state (if needed) of + new obtained connections at connection initialization to 'true'. + If 'false' or this property is removed, OJB don't try to change connection + autoCommit state at connection initialization. + --> + <attribute attribute-name="initializationCheck" attribute-value="false" /> + + <!-- ** Attributes with name prefix "platform." are used to allow database + platform class specific settings (PlatformXYZImpl classes) --> + + <!-- If set to value >0 Oracle's implicit statement caching will be enabled by OJB (Oracle9i + or higher). Number of cached statements per connection using implicit caching with Oracle9i + Connections. See http:// + otn.oracle.com/sample_code/tech/java/sqlj_jdbc/files/jdbc30/StmtCacheSample/Readme.html--> + <attribute attribute-name="platform.oracle.statementCacheSize" attribute-value="15" /> + + <!-- Number of rows pre-fetched by the JDBC-driver for each executed query, when using row + pre-fetching with Oracle Connections (Oracle9i or higher). Note: this setting can be overridden + by specifying a connection-pool attribute with name="jdbc.defaultRowPrefetch". See http:// + otn.oracle.com/sample_code/tech/java/sqlj_jdbc/files/advanced/RowPrefetchSample/Readme.html --> + <attribute attribute-name="platform.oracle.prefetchSize" attribute-value="20" /> + + <!-- If set to value >0 Oracle's native batch statement handling will be enabled by OJB + (Oracle9i or higher). If 0 or not specified the JDBC standard batch methods are used. + See http://technet.oracle.com/products/oracle9i/daily/jun07.html --> + <!--<attribute attribute-name="platform.oracle.batchSize" attribute-value="20" />--> ... </jdbc-connection-descriptor>]]></source> </section> @@ -748,31 +786,39 @@ <source><![CDATA[ <connection-pool maxActive="30" - validationQuery="@VALIDATION_QUERY@" - testOnBorrow="@TEST_ON_BORROW@" - testOnReturn="@TEST_ON_RETURN@" + validationQuery="" + <!-- mandatory set 'true'! --> + testOnBorrow="true" + testOnReturn="false" whenExhaustedAction="0" maxWait="10000"> + <!-- Set initial connection pool size on startup of the pool --> + <!--<attribute attribute-name="initialSize" attribute-value="0"/>--> + <!-- Set fetchSize to 0 to use driver's default. --> <attribute attribute-name="fetchSize" attribute-value="0"/> - <!-- Attributes with name prefix "jdbc." are passed directly to the JDBC driver. --> - <!-- Example setting (used by Oracle driver when Statement batching is enabled) --> - <attribute attribute-name="jdbc.defaultBatchValue" attribute-value="5"/> - - <!-- Attributes determining if ConnectionFactoryDBCPImpl - should also pool PreparedStatement. This is programmatically disabled - when using platform=Oracle9i since Oracle statement caching will conflict - with DBCP ObjectPool-based PreparepdStatement caching (ie setting true - here has no effect for Oracle9i platform). --> + <!-- ** Attributes with name prefix "jdbc." are passed directly to the JDBC driver. --> + <!-- Oracle specific driver setting to enable oracle's specific statement batching. + Oracle Docs: "The value of this property is used as the default batch + size when using Oracle style batching." + Attention: With OracleXE + thin this setting cause unexpected behavior --> + <!--<attribute attribute-name="jdbc.defaultBatchValue" attribute-value="20"/>--> + + <!-- Oracle specific driver setting to set the default prefetch size. + Oracle Docs: "The value of this property is used as the default number of rows to prefetch." + Attention: With OracleXE + thin this setting cause unexpected behavior --> + <!--<attribute attribute-name="jdbc.defaultRowPrefetch" attribute-value="20"/>--> + + <!-- ** Attributes determining if ConnectionFactoryDBCPImpl is used --> <attribute attribute-name="dbcp.poolPreparedStatements" attribute-value="true"/> - <attribute attribute-name="dbcp.maxOpenPreparedStatements" attribute-value="60"/> + <attribute attribute-name="dbcp.maxOpenPreparedStatements" attribute-value="30"/> <!-- Attribute determining if the Commons DBCP connection wrapper will allow access to the underlying concrete Connection instance from the JDBC-driver - (normally this is not allowed, like in J2EE-containers using wrappers). --> - <attribute attribute-name="dbcp.accessToUnderlyingConnectionAllowed" - attribute-value="false"/> + (by default it's enabled). --> + <!--<attribute attribute-name="dbcp.accessToUnderlyingConnectionAllowed" + attribute-value="true"/>--> </connection-pool>]]></source> <section> <title>jdbc.*</title> 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=493271&r1=493270&r2=493271 ============================================================================== --- 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 Fri Jan 5 18:05:23 2007 @@ -153,6 +153,7 @@ <default-connection href="#default-connection"/> <load-repository href="#load-repository"/> <stored-procedures href="#stored-procedures"/> + <batch-mode href="#batch-mode"/> </repository> <basic-technique label="Basic mapping" href="basic-technique.html"> <one-to-one href="#one-to-one"/> Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/skinconf.xml URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/skinconf.xml?view=diff&rev=493271&r1=493270&r2=493271 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/skinconf.xml (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/skinconf.xml Fri Jan 5 18:05:23 2007 @@ -91,7 +91,7 @@ <favicon-url>favicon.ico</favicon-url> <!-- The following are used to construct a copyright statement --> - <year>2002-2006</year> + <year>2002-2007</year> <vendor>The Apache Software Foundation.</vendor> <!-- The optional copyright-link URL will be used as a link in the copyright statement --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]