You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by mt...@apache.org on 2011/03/07 13:33:59 UTC

svn commit: r1078761 - /openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml

Author: mtylenda
Date: Mon Mar  7 12:33:59 2011
New Revision: 1078761

URL: http://svn.apache.org/viewvc?rev=1078761&view=rev
Log:
OPENJPA-1376: Documentation update - add migration section on allocationSize property of @SequenceGenerator.

Modified:
    openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml

Modified: openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml?rev=1078761&r1=1078760&r2=1078761&view=diff
==============================================================================
--- openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml (original)
+++ openjpa/trunk/openjpa-project/src/doc/manual/migration_considerations.xml Mon Mar  7 12:33:59 2011
@@ -23,7 +23,7 @@
     </title>
     <section id="jpa_2.0">
         <title>
-            JPA 2.0
+            OpenJPA 2.0.0
         </title>
         <section id="jpa_2.0_incompatibilities">
             <title>
@@ -344,16 +344,68 @@
             </section>
         </section>
     </section>
-	<section id="jpa_2.1">
+    <section id="jpa_2.2">
         <title>
-            OpenJPA 2.1.0
+            OpenJPA 2.2.0
         </title>
-        <section id="jpa_2.1_changes_in_behavior">
-        	<title>Internal Behavioral Differences</title>
-        	<para>
-	The following sections indicate behavior that has changed from the OpenJPA 2.0.x
-	release to the OpenJPA 2.1.0 release.
-        	</para>
+        <section id="jpa_2.2_incompatibilities">
+            <title>Incompatibilities</title>
+       	    <para>
+                The following sections indicate changes that are incompatible
+                between OpenJPA 2.1.x releases and the 2.2.0 release.
+            </para>
+            <section id="jpa_2.2_allocationSize">
+                <title>
+                    allocationSize Property of Sequence Generator
+                </title>
+                <!-- See OPENJPA-1376 for details. -->
+                <para>
+                    In previous releases, specifying the <literal>allocationSize</literal> property of
+                    <link linkend="jpa_overview_mapping_sequence_seqgen">sequence generator</link>
+                    affected only sequence definition in the database. During
+                    schema creation, the <literal>INCREMENT BY</literal> clause of
+                    <literal>CREATE SEQUENCE</literal> statement always
+                    had a value of 1 and on DB2, Oracle and PostgreSQL databases a <literal>CACHE</literal> clause
+                    was added with the value of <literal>allocationSize</literal> property. Such a statement caused
+                    sequence values being cached in the database. Starting with OpenJPA 2.2.0,
+                    sequence values are cached in the jvm memory and the <literal>allocationSize</literal>
+                    property determines size of that cache. The <literal>CACHE</literal> clause is no longer used,
+                    instead the <literal>INCREMENT BY</literal> clause gets its value equal to the
+                    <literal>allocationSize</literal> property. Such a strategy reduces the number of database roundtrips
+                    required for retrieving sequence values considerably.
+                </para>
+                <para>
+                    In order for the existing applications to work with OpenJPA
+                    2.2.0, you have to manually recreate or redefine sequences, specifying
+                    the correct <literal>INCREMENT BY</literal> value and, possibly, correct initial sequence value.
+                    Note that the default value of the <literal>allocationSize</literal> property is 50 and that
+                    value is used if the property is not specified.
+                </para>
+                <para>
+                    The requirement for sequence modification applies to all databases that support sequences, regardless of
+                    the <literal>CACHE</literal> clause being supported. The only excpetion is Firebird database -
+                    since with this database the increment step is determined during sequence
+                    value fetch, no migration activity is needed.
+                </para>
+                <para>
+                    To maintain the old behavior of sequence generator in OpenJPA 2.2.0, you can:
+                    <itemizedlist>
+                        <listitem>
+                            <para>
+                                Set the <literal>allocationSize</literal> property value to 1.
+                            </para>
+                        </listitem>
+                        <listitem>
+                            <para>
+                                Additionally, if the <literal>CACHE</literal> clause has to be emitted in sequence definition,
+                                this can be accomplished by overriding the
+                                <ulink url="../javadoc/org/apache/openjpa/jdbc/sql/DBDictionary.html#getCreateSequenceSQL(org.apache.openjpa.jdbc.schema.Sequence)">
+                                <methodname>DBDictionary.getCreateSequenceSQL</methodname></ulink> method.
+                            </para>
+                        </listitem>
+                    </itemizedlist>
+                </para>
+            </section>
         </section>
-	</section>    
+    </section>
 </appendix>