openjpa-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From strub...@apache.org
Subject svn commit: r953480 [3/37] - in /websites/production/openjpa/content/builds/2.4.0: ./ apache-openjpa/ apache-openjpa/docs/
Date Mon, 01 Jun 2015 20:19:02 GMT
Added: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_oracle.html
==============================================================================
--- websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_oracle.html (added)
+++ websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_oracle.html Mon Jun  1 20:19:00 2015
@@ -0,0 +1,142 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>20.&nbsp; Oracle</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.4 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix&nbsp;2.&nbsp; Supported Databases"><link rel="prev" href="dbsupport_mysql.html" title="19.&nbsp; MySQL"><link rel="next" href="dbsupport_pointbase.html" title="21.&nbsp; Pointbase"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">20.&nbsp;
+            Oracle
+        </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_mysql.html">Prev</a>&nbsp;</td><th width="60%" align="center">Appendix&nbsp;2.&nbsp;
+        Supported Databases
+    </th><td width="20%" align="right">&nbsp;<a accesskey="n" href="dbsupport_pointbase.html">Next</a></td></tr></table><hr></div><div class="section" title="20.&nbsp; Oracle"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_oracle">20.&nbsp;
+            Oracle
+        </h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="dbsupport_oracle.html#dbsupport_oracle_query_hints">20.1. 
+                Using Query Hints with Oracle
+            </a></span></dt><dt><span class="section"><a href="dbsupport_oracle.html#dbsupport_oracle_issues">20.2. 
+                Known issues with Oracle
+            </a></span></dt></dl></div>
+        
+        <div class="example"><a name="example_props_oracle"></a><p class="title"><b>Example&nbsp;2.17.&nbsp;
+                Example properties for Oracle
+            </b></p><div class="example-contents">
+            
+<pre class="programlisting">
+openjpa.ConnectionDriverName: oracle.jdbc.driver.OracleDriver
+openjpa.ConnectionURL: jdbc:oracle:thin:@SERVER_NAME:1521:DB_NAME
+</pre>
+        </div></div><br class="example-break">
+        <div class="section" title="20.1.&nbsp; Using Query Hints with Oracle"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_oracle_query_hints">20.1.&nbsp;
+                Using Query Hints with Oracle
+            </h3></div></div></div>
+            
+            <p>
+Oracle has support for "query hints", which are formatted comments embedded in
+SQL that provide some hint for how the query should be executed. These hints are
+usually designed to provide suggestions to the Oracle query optimizer for how to
+efficiently perform a certain query, and aren't typically needed for any but
+the most intensive queries.
+            </p>
+            <div class="example"><a name="dbsupport_oracle_query_hints_ex"></a><p class="title"><b>Example&nbsp;2.18.&nbsp;
+                    Using Oracle Hints
+                </b></p><div class="example-contents">
+                
+<pre class="programlisting">
+Query query = em.createQuery(...);
+query.setHint("openjpa.hint.OracleSelectHint", "/*+ first_rows(100) */");
+List results = query.getResultList();
+</pre>
+            </div></div><br class="example-break">
+        </div>
+        <div class="section" title="20.2.&nbsp; Known issues with Oracle"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_oracle_issues">20.2.&nbsp;
+                Known issues with Oracle
+            </h3></div></div></div>
+            
+            <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                    <p> 
+The Oracle JDBC driver has significant differences between different versions. 
+It is important to use the officially supported version of the drivers 
+(10.2.0.1.0/11.2.0.x.0), which is backward compatible with previous versions of the Oracle
+server. It can be downloaded from 
+<a class="ulink" href="http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html" target="_top">
+http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html</a>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+Empty string/char values are stored as NULL.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+Oracle corp's JDBC driver for Oracle has only limited support for batch updates.
+The result for OpenJPA is that batching of some statements may fail and in some cases, 
+the exact object that failed an optimistic lock check cannot be determined. OpenJPA will
+throw an <code class="classname">OptimisticException</code> with more failed objects than actually
+failed.  This situation may be resolved by disabling statement batching by setting the
+batchLimit value to zero or by using a more recent Oracle JDBC Driver (11.2.0.1) with 
+batch support improvements.  Attempting to resolve the issue with a more current driver
+is recommended since disabling statement batching can result in a decrease in performance.
+            </p><div class="example"><a name="dbsupport_oracle_disable_batch_updates"></a><p class="title"><b>Example&nbsp;2.19.&nbsp;
+                    Property to disable statement batching for Oracle
+                </b></p><div class="example-contents">
+                
+<pre class="programlisting">
+openjpa.jdbc.DBDictionary: oracle(batchLimit=0)
+</pre> 
+            </div></div><p><br class="example-break">
+                    </p>
+                </li><li class="listitem">
+                    <p>
+Oracle cannot store numbers with more than 38 digits in numeric columns.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+Floats and doubles may lose precision when stored.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+CLOB columns cannot be used in queries.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+The use of LOBs with persistent attributes of a streaming data type (ex. 
+<code class="literal">java.io.InputStream</code> or <code class="literal">java.io.Reader</code>) may 
+require the same connection to be used over the life of the transaction or 
+entity manager.  If the same connection is not used for persistent operations
+a <code class="literal">java.io.IOException</code> with message <code class="literal">Closed Connection
+</code> may result.  The OpenJPA property <code class="literal">openjpa.ConnectionRetainMode</code>
+can be used to control how OpenJPA uses datastore connections.  See 
+<a class="xref" href="ref_guide_dbsetup_retain.html" title="8.&nbsp; Configuring the Use of JDBC Connections">Section&nbsp;8, &#8220;
+            Configuring the Use of JDBC Connections
+        &#8221;</a> for details.
+            </p><div class="example"><a name="dbsupport_oracle_retain_connection"></a><p class="title"><b>Example&nbsp;2.20.&nbsp;
+                    Property to retain connection over the lifetime of the entity manager
+                </b></p><div class="example-contents">
+                
+<pre class="programlisting">
+openjpa.ConnectionRetainMode: always
+</pre> 
+            </div></div><p><br class="example-break">
+                    </p>
+                </li><li class="listitem">
+                    <p>
+Mapping persistent attributes to <a class="link" href="ref_guide_mapping_jpa.html#ref_guide_xmlmapping" title="7.10.&nbsp; XML Column Mapping">XML columns</a> requires
+a JDBC 4 compliant driver if XML strings are longer than 4000 bytes, as counted in database.
+Otherwise an <code class="literal">ORA-01461: can bind a LONG value only for insert into a LONG column</code>
+error may result.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+If Oracle dictionary property <code class="literal">MaxEmbeddedBlobSize</code> or
+<code class="literal">MaxEmbeddedClobSize</code> is set to some limit (i.e. not -1) and embedded collection
+with BLOB/CLOB attribute is used, a 
+<code class="literal">"org.apache.openjpa.persistence.ArgumentException:
+"x.y.z.EmbedOwner.embedCollection&lt;element:class x.y.z.EmbedValue&gt;"
+is mapped as embedded, but embedded field
+"x.y.z.EmbedOwner.embedCollection.x.y.z.EmbedValue.blob" is not embeddable. 
+Embedded element/key/value types are limited to simple fields and direct relations to other 
+persistent types"</code> error may result. To overcome this limitation, either use JDBC driver
+11.2.0.x.0 (or later version) or set both <code class="literal">MaxEmbeddedBlobSize</code> and
+<code class="literal">MaxEmbeddedClobSize</code> properties to -1.
+                    </p>
+                </li></ul></div>
+        </div>
+    </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbsupport_mysql.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="dbsupport_pointbase.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">19.&nbsp;
+            MySQL
+        &nbsp;</td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;21.&nbsp;
+            Pointbase
+        </td></tr></table></div></body></html>
\ No newline at end of file

Propchange: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_oracle.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_pointbase.html
==============================================================================
--- websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_pointbase.html (added)
+++ websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_pointbase.html Mon Jun  1 20:19:00 2015
@@ -0,0 +1,39 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>21.&nbsp; Pointbase</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.4 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix&nbsp;2.&nbsp; Supported Databases"><link rel="prev" href="dbsupport_oracle.html" title="20.&nbsp; Oracle"><link rel="next" href="dbsupport_postgresql.html" title="22.&nbsp; PostgreSQL"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">21.&nbsp;
+            Pointbase
+        </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_oracle.html">Prev</a>&nbsp;</td><th width="60%" align="center">Appendix&nbsp;2.&nbsp;
+        Supported Databases
+    </th><td width="20%" align="right">&nbsp;<a accesskey="n" href="dbsupport_postgresql.html">Next</a></td></tr></table><hr></div><div class="section" title="21.&nbsp; Pointbase"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_pointbase">21.&nbsp;
+            Pointbase
+        </h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="dbsupport_pointbase.html#dbsupport_pointbase_issues">21.1. 
+                Known issues with Pointbase
+            </a></span></dt></dl></div>
+        
+        <div class="example"><a name="example_props_pointbase"></a><p class="title"><b>Example&nbsp;2.21.&nbsp;
+                Example properties for Pointbase
+            </b></p><div class="example-contents">
+            
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.pointbase.jdbc.jdbcUniversalDriver
+openjpa.ConnectionURL: \
+    jdbc:pointbase:DB_NAME,database.home=pointbasedb,create=true,cache.size=10000,database.pagesize=30720
+</pre>
+        </div></div><br class="example-break">
+        <div class="section" title="21.1.&nbsp; Known issues with Pointbase"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_pointbase_issues">21.1.&nbsp;
+                Known issues with Pointbase
+            </h3></div></div></div>
+            
+            <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                    <p> 
+Fields of type BLOB and CLOB are limited to 1M.  Set the <code class="literal">BlobTypeName
+</code> and/or <code class="literal">ClobTypeName</code> properties of the 
+<code class="literal">openjpa.jdbc.DBDictionary</code> setting to override.  
+                    </p>
+                </li></ul></div>
+        </div>
+    </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbsupport_oracle.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="dbsupport_postgresql.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">20.&nbsp;
+            Oracle
+        &nbsp;</td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;22.&nbsp;
+            PostgreSQL
+        </td></tr></table></div></body></html>
\ No newline at end of file

Propchange: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_pointbase.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_postgresql.html
==============================================================================
--- websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_postgresql.html (added)
+++ websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_postgresql.html Mon Jun  1 20:19:00 2015
@@ -0,0 +1,50 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>22.&nbsp; PostgreSQL</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.4 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix&nbsp;2.&nbsp; Supported Databases"><link rel="prev" href="dbsupport_pointbase.html" title="21.&nbsp; Pointbase"><link rel="next" href="dbsupport_soliddb.html" title="23.&nbsp; IBM solidDB"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">22.&nbsp;
+            PostgreSQL
+        </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_pointbase.html">Prev</a>&nbsp;</td><th width="60%" align="center">Appendix&nbsp;2.&nbsp;
+        Supported Databases
+    </th><td width="20%" align="right">&nbsp;<a accesskey="n" href="dbsupport_soliddb.html">Next</a></td></tr></table><hr></div><div class="section" title="22.&nbsp; PostgreSQL"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_postgresql">22.&nbsp;
+            PostgreSQL
+        </h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="dbsupport_postgresql.html#dbsupport_postgresql_issues">22.1. 
+                Known issues with PostgreSQL
+            </a></span></dt></dl></div>
+        
+        <div class="example"><a name="example_props_postgresql"></a><p class="title"><b>Example&nbsp;2.22.&nbsp;
+                Example properties for PostgreSQL
+            </b></p><div class="example-contents">
+            
+<pre class="programlisting">
+openjpa.ConnectionDriverName: org.postgresql.Driver
+openjpa.ConnectionURL: jdbc:postgresql://SERVER_NAME:5432/DB_NAME
+</pre>
+        </div></div><br class="example-break">
+        <div class="section" title="22.1.&nbsp; Known issues with PostgreSQL"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_postgresql_issues">22.1.&nbsp;
+                Known issues with PostgreSQL
+            </h3></div></div></div>
+            
+            <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                    <p>
+Floats and doubles may lose precision when stored.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+PostgreSQL cannot store very low and very high dates.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+Empty string/char values are stored as NULL.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+Persistent fields of type <code class="classname">java.io.Reader</code> are not
+supported when using
+<a class="link" href="ref_guide_mapping_jpa.html#ref_guide_streamsupport" title="7.11.&nbsp; LOB Streaming">LOB streaming</a>.
+                    </p>
+                </li></ul></div>
+        </div>
+    </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbsupport_pointbase.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="dbsupport_soliddb.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">21.&nbsp;
+            Pointbase
+        &nbsp;</td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;23.&nbsp;
+            IBM solidDB
+        </td></tr></table></div></body></html>
\ No newline at end of file

Propchange: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_postgresql.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_soliddb.html
==============================================================================
--- websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_soliddb.html (added)
+++ websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_soliddb.html Mon Jun  1 20:19:00 2015
@@ -0,0 +1,70 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>23.&nbsp; IBM solidDB</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.4 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix&nbsp;2.&nbsp; Supported Databases"><link rel="prev" href="dbsupport_postgresql.html" title="22.&nbsp; PostgreSQL"><link rel="next" href="dbsupport_sybase.html" title="24.&nbsp; Sybase Adaptive Server"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">23.&nbsp;
+            IBM solidDB
+        </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_postgresql.html">Prev</a>&nbsp;</td><th width="60%" align="center">Appendix&nbsp;2.&nbsp;
+        Supported Databases
+    </th><td width="20%" align="right">&nbsp;<a accesskey="n" href="dbsupport_sybase.html">Next</a></td></tr></table><hr></div><div class="section" title="23.&nbsp; IBM solidDB"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_soliddb">23.&nbsp;
+            IBM solidDB
+        </h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="dbsupport_soliddb.html#dbsupport_soliddb_table_types">23.1. 
+                M-type tables vs. D-type tables
+            </a></span></dt><dt><span class="section"><a href="dbsupport_soliddb.html#dbsupport_soliddb_concurrency_control">23.2. 
+                Concurrency control mechanism
+            </a></span></dt></dl></div>
+        
+        <div class="example"><a name="example_props_soliddb"></a><p class="title"><b>Example&nbsp;2.23.&nbsp;
+                Example properties for IBM solidDB
+            </b></p><div class="example-contents">
+            
+<pre class="programlisting">
+openjpa.ConnectionDriverName: solid.jdbc.SolidDriver
+openjpa.ConnectionURL: jdbc:solid://localhost:2315/dba/dba
+</pre>
+        </div></div><br class="example-break">
+        <div class="section" title="23.1.&nbsp; M-type tables vs. D-type tables"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_soliddb_table_types">23.1.&nbsp;
+                M-type tables vs. D-type tables
+            </h3></div></div></div>
+            
+            <p>
+IBM solidDB supports two types of tables: in-memory tables (M-tables) and 
+on-disk tables (D-tables). Since cursor hold over commit can not apply to M-tables 
+(which will cause SOLID Table Error 13187: The cursor cannot continue  
+accessing M-tables after the transaction has committed or aborted. 
+The statement must be re-executed), the default OpenJPA tables are D-tables. 
+One can set the whole server to disk-based mode by adding 
+         [General]
+             DefaultStoreIsMemory=no 
+in solid.ini. The table types can also be determined by setting OpenJPA property 
+"openjpa.jdbc.DBDictionary" with value "storeIsMemory=true" or "storeIsMemory=false" 
+in the persistence.xml. The "STORE MEMORY" and "STORE DISK" will be appended to 
+the create table DDL, respectively. 
+            </p>
+        </div>    
+        <div class="section" title="23.2.&nbsp; Concurrency control mechanism"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_soliddb_concurrency_control">23.2.&nbsp;
+                Concurrency control mechanism
+            </h3></div></div></div>
+            
+            <p>
+The default concurrency control mechanism depends on the table type:
+Disk-based tables (D-tables) are by default optimistic.
+Main-memory tables (M-tables) are always pessimistic.
+Since OpenJPA applications expects lock waits as usually is done with 
+normal pessimistic databases, the server should be set to the pessimistic mode. 
+The optimistic mode is about not waiting for the locks at all. That increases 
+concurrency but requires more programming. The pessimistic mode with the 
+READ COMMITTED isolation level (default) should get as much concurrency as one 
+might need. The pessimistic locking mode can be set in solid.ini:  
+      [General]
+         Pessimistic=yes
+One can override the locking mode on the per table base by setting OpenJPA property 
+"openjpa.jdbc.DBDictionary" to value "lockingMode=PESSIMISTIC" in the persistence.xml. 
+An extra SQL will be generated along with CREATE TABLE DDL: 
+ALTER TABLE EX_POBJECT SET PESSIMISTIC. 
+The possible values for lockingMode is OPTIMISTIC/PESSIMISTIC.         
+           </p>
+        </div>
+    </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbsupport_postgresql.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="dbsupport_sybase.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">22.&nbsp;
+            PostgreSQL
+        &nbsp;</td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;24.&nbsp;
+            Sybase Adaptive Server
+        </td></tr></table></div></body></html>
\ No newline at end of file

Propchange: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_soliddb.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_sqlserver.html
==============================================================================
--- websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_sqlserver.html (added)
+++ websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_sqlserver.html Mon Jun  1 20:19:00 2015
@@ -0,0 +1,99 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>17.&nbsp; Microsoft SQL Server</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.4 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix&nbsp;2.&nbsp; Supported Databases"><link rel="prev" href="dbsupport_access.html" title="16.&nbsp; Microsoft Access"><link rel="next" href="dbsupport_foxpro.html" title="18.&nbsp; Microsoft FoxPro"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">17.&nbsp;
+            Microsoft SQL Server
+        </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_access.html">Prev</a>&nbsp;</td><th width="60%" align="center">Appendix&nbsp;2.&nbsp;
+        Supported Databases
+    </th><td width="20%" align="right">&nbsp;<a accesskey="n" href="dbsupport_foxpro.html">Next</a></td></tr></table><hr></div><div class="section" title="17.&nbsp; Microsoft SQL Server"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_sqlserver">17.&nbsp;
+            Microsoft SQL Server
+        </h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="dbsupport_sqlserver.html#dbsupport_sqlserver_issues">17.1. 
+                Known issues with SQL Server
+            </a></span></dt></dl></div>
+        
+        <div class="example"><a name="example_props_sqlserver"></a><p class="title"><b>Example&nbsp;2.13.&nbsp;
+                Example properties for Microsoft SQL Server
+            </b></p><div class="example-contents">
+            
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.microsoft.sqlserver.jdbc.SQLServerDriver
+openjpa.ConnectionURL: \
+    jdbc:sqlserver://SERVER_NAME:1433;DatabaseName=DB_NAME;selectMethod=cursor;sendStringParametersAsUnicode=false
+</pre>
+        </div></div><br class="example-break">
+        <div class="section" title="17.1.&nbsp; Known issues with SQL Server"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_sqlserver_issues">17.1.&nbsp;
+                Known issues with SQL Server
+            </h3></div></div></div>
+            
+            <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                    <p>
+When using a Microsoft SQL Server JDBC Driver v1.2 or earlier, the 
+ConnectionURL must always contain the <code class="literal">selectMethod=cursor
+</code> string, which is necessary for the driver to properly 
+support large result sets.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+When using a Microsoft SQL Server JDBC Driver v1.2 or earlier, the 
+JDBC driver has bugs that manifest themselves when prepared statements 
+are pooled.  Please disable prepared statement pooling by including the 
+<code class="literal">MaxCachedStatements=0</code> configuration property 
+in your org.apache.openjpa.ConnectionFactoryProperties.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+SQL Server date fields are accurate only to the nearest 3 milliseconds, 
+possibly resulting in precision loss in stored dates.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+Adding <code class="literal">sendStringParametersAsUnicode=false</code> to the
+ConnectionURL may significantly increase performance.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+The Microsoft SQL Server driver only emulates batch updates. The DataDirect JDBC
+driver has true support for batch updates, and may result in a significant
+performance gain.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+Floats and doubles may lose precision when stored.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+<code class="literal">TEXT</code> columns cannot be used in queries.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+When using a SQL Server instance that has been configured to be case-sensitive
+in schema names, you need to set the "schemaCase=preserve" parameter in the 
+<a class="link" href="ref_guide_conf_jdbc.html#openjpa.jdbc.DBDictionary" title="6.2.&nbsp; openjpa.jdbc.DBDictionary">openjpa.jdbc.DBDictionary</a>
+property.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+SQL Server 2005 does not support native sequences. If you would like to use 
+generated values with SQL Server you should use GenerationType.IDENTITY, 
+GenerationType.TABLE, or GenerationType.AUTO.
+                    </p> 
+                </li><li class="listitem">
+                    <p>
+The use of <a class="link" href="ref_guide_mapping_jpa.html#ref_guide_streamsupport" title="7.11.&nbsp; LOB Streaming">LOB streaming</a> is limited.
+When reading LOB data from the database, the Microsoft SQL Server driver will
+actually load all the data into memory at the same time.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+The SQL Server 2008 DATETIME2 data type supports 7 digits sub-second precision.
+When DataDirect JDBC driver is used with SQL Server 2008, setTimestamp method call with
+a java.sql.Timestamp argument of more than 3 digits precision in a prepared statement
+will result in truncation. This may cause loss of data precision or
+optimistic lock exception if an entity uses Timestamp type as version field.
+                    </p>
+                </li></ul></div>
+        </div>
+    </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbsupport_access.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="dbsupport_foxpro.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">16.&nbsp;
+            Microsoft Access
+        &nbsp;</td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;18.&nbsp;
+            Microsoft FoxPro
+        </td></tr></table></div></body></html>
\ No newline at end of file

Propchange: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_sqlserver.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_sybase.html
==============================================================================
--- websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_sybase.html (added)
+++ websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_sybase.html Mon Jun  1 20:19:00 2015
@@ -0,0 +1,71 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>24.&nbsp; Sybase Adaptive Server</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.4 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix&nbsp;2.&nbsp; Supported Databases"><link rel="prev" href="dbsupport_soliddb.html" title="23.&nbsp; IBM solidDB"><link rel="next" href="migration_considerations.html" title="Appendix&nbsp;3.&nbsp; Migration Considerations"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">24.&nbsp;
+            Sybase Adaptive Server
+        </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_soliddb.html">Prev</a>&nbsp;</td><th width="60%" align="center">Appendix&nbsp;2.&nbsp;
+        Supported Databases
+    </th><td width="20%" align="right">&nbsp;<a accesskey="n" href="migration_considerations.html">Next</a></td></tr></table><hr></div><div class="section" title="24.&nbsp; Sybase Adaptive Server"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_sybase">24.&nbsp;
+            Sybase Adaptive Server
+        </h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="dbsupport_sybase.html#dbsupport_sybase_issues">24.1. 
+                Known issues with Sybase
+            </a></span></dt></dl></div>
+        
+        <div class="example"><a name="example_props_sybase"></a><p class="title"><b>Example&nbsp;2.24.&nbsp;
+                Example properties for Sybase
+            </b></p><div class="example-contents">
+            
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.sybase.jdbc2.jdbc.SybDriver
+openjpa.ConnectionURL: \
+    jdbc:sybase:Tds:SERVER_NAME:4100/DB_NAME?ServiceName=DB_NAME&amp;BE_AS_JDBC_COMPLIANT_AS_POSSIBLE=true
+</pre>
+        </div></div><br class="example-break">
+        <div class="section" title="24.1.&nbsp; Known issues with Sybase"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_sybase_issues">24.1.&nbsp;
+                Known issues with Sybase
+            </h3></div></div></div>
+            
+            <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                    <p> 
+The "<code class="literal">DYNAMIC_PREPARE</code>" parameter of the Sybase JDBC driver 
+cannot be used with OpenJPA.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+Datastore locking cannot be used when manipulating many-to-many relations using
+the default OpenJPA schema created by the schematool, unless an auto-increment
+primary key field is manually added to the table.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+Persisting a zero-length string results in a string with a single space
+character being returned from Sybase, Inc.'s JDBC driver.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+The <code class="literal">BE_AS_JDBC_COMPLIANT_AS_POSSIBLE</code> is required in order to
+use datastore (pessimistic) locking. Failure to set this property may lead to
+obscure errors like " <code class="literal">FOR UPDATE can not be used in a SELECT which is
+not part of the declaration of a cursor or which is not inside a stored
+procedure.</code> ".
+                    </p>
+                </li><li class="listitem">
+                    <p> 
+Applications performing update/insert data of the BigDecimal Java type may fail 
+with OptimisticException if the data exceeds the scale or precision of the
+column on Sybase. To avoid this problem, applications can specify the precision
+and scale for the numeric type by setting numericTypeName='NUMERIC(p,s)' for
+the column type mapped by the BigDecimal Java type. See
+<a class="link" href="ref_guide_conf_jdbc.html#openjpa.jdbc.DBDictionary" title="6.2.&nbsp; openjpa.jdbc.DBDictionary">openjpa.jdbc.DBDictionary</a> for
+more detail. Alternatively, application can set the precision and scale using
+the standard <code class="classname">Column</code> annotation, described in
+<a class="xref" href="jpa_overview_mapping_column.html" title="3.&nbsp; Column">Section&nbsp;3, &#8220;
+            Column
+        &#8221;</a>.
+                    </p>
+                </li></ul></div>
+        </div>
+    </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbsupport_soliddb.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="migration_considerations.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">23.&nbsp;
+            IBM solidDB
+        &nbsp;</td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Appendix&nbsp;3.&nbsp;
+        Migration Considerations
+    </td></tr></table></div></body></html>
\ No newline at end of file

Propchange: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbsupport_sybase.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbunverified.html
==============================================================================
--- websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbunverified.html (added)
+++ websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbunverified.html Mon Jun  1 20:19:00 2015
@@ -0,0 +1,46 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>4.&nbsp; Unverified Database Matrix</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.4 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix&nbsp;2.&nbsp; Supported Databases"><link rel="prev" href="dbcompatible.html" title="3.&nbsp; Compatible Database Matrix"><link rel="next" href="dbsupport_derby.html" title="5.&nbsp; Apache Derby"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.&nbsp;
+        Unverified Database Matrix
+    </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbcompatible.html">Prev</a>&nbsp;</td><th width="60%" align="center">Appendix&nbsp;2.&nbsp;
+        Supported Databases
+    </th><td width="20%" align="right">&nbsp;<a accesskey="n" href="dbsupport_derby.html">Next</a></td></tr></table><hr></div><div class="section" title="4.&nbsp; Unverified Database Matrix"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbunverified">4.&nbsp;
+        Unverified Database Matrix
+    </h2></div></div></div>
+    
+    <p>
+Following is a table of the database and JDBC driver versions that have been reported
+to work with OpenJPA by the community but have not been verified by the development
+team. In some cases this is a question of availability since the developers may not
+be able to obtain a license to test, or have experience configuring these databases. 
+For the list of databases that have been fully tested against this release, please 
+refer to the <a class="link" href="dbsupport.html" title="2.&nbsp; Verified Database Matrix">Verified Database Matrix</a> section.
+    </p>
+    <div class="table"><a name="d5e17784"></a><p class="title"><b>Table&nbsp;2.3.&nbsp;
+            Unverified Databases and JDBC Drivers
+        </b></p><div class="table-contents">
+        
+        <table summary="&#xA;            Unverified Databases and JDBC Drivers&#xA;        " border="1"><colgroup><col align="left" class="dbname"><col align="left" class="dbversion"><col align="left" class="drivname"><col align="left" class="drivversion"></colgroup><thead><tr><th align="left">
+                        Database Name
+                    </th><th align="left">
+                        Database Version
+                    </th><th align="left">
+                        JDBC Driver Name
+                    </th><th align="left">
+                        JDBC Driver Version
+                    </th></tr></thead><tbody><tr><td align="left">
+                        SAP MaxDB
+                    </td><td align="left">
+                        
+                    </td><td align="left">
+                        
+                    </td><td align="left">
+                       
+                    </td></tr></tbody></table>
+    </div></div><br class="table-break">
+
+    </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbcompatible.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="dbsupport_derby.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3.&nbsp;
+        Compatible Database Matrix
+    &nbsp;</td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;5.&nbsp;
+            Apache Derby
+        </td></tr></table></div></body></html>
\ No newline at end of file

Propchange: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/dbunverified.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/features_and_limitations.html
==============================================================================
--- websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/features_and_limitations.html (added)
+++ websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/features_and_limitations.html Mon Jun  1 20:19:00 2015
@@ -0,0 +1,259 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>2.&nbsp;Salient Features</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.4 User's Guide"><link rel="up" href="ref_guide_slice.html" title="Chapter&nbsp;13.&nbsp; Slice: Distributed Persistence"><link rel="prev" href="ref_guide_slice.html" title="Chapter&nbsp;13.&nbsp; Slice: Distributed Persistence"><link rel="next" href="slice_configuration.html" title="3.&nbsp;Usage"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.&nbsp;Salient Features</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_slice.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter&nbsp;13.&nbsp;
+    Slice: Distributed Persistence
+  </th><td width="20%" align="right">&nbsp;<a accesskey="n" href="slice_configuration.html">Next</a></td></tr></table><hr></div><div class="section" title="2.&nbsp;Salient Features"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="features_and_limitations">2.&nbsp;Salient Features</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="features_and_limitations.html#d5e16816">2.1. Transparency</a></span></dt><dt><span class="section"><a href="features_and_limitations.html#d5e16822">2.2. Scaling</a></span></dt><dt><span class="section"><a href="features_and_limitations.html#d5e16828">2.3. Distributed Query</a></span></dt><dt><span class="section"><a href="features_and_limitations.html#d5e16851">2.4. Data Distribution</a></span></dt><dt><span class="section"><a href="features_and_limitations.html#d5e16870">2.5. Data Replication</a></span></dt><dt><span class="section"><a href="features_and_limitations.html#d5e16879">2.6. Heterogeneous Dat
 abase</a></span></dt><dt><span class="section"><a href="features_and_limitations.html#d5e16882">2.7. Distributed Transaction</a></span></dt><dt><span class="section"><a href="features_and_limitations.html#collocation_constraint">2.8. Collocation Constraint</a></span></dt></dl></div>
+       
+         <div class="section" title="2.1.&nbsp;Transparency"><div class="titlepage"><div><div><h3 class="title" id="d5e16816">2.1.&nbsp;Transparency</h3></div></div></div>
+            <p>
+			  The primary design objective for Slice is to make the user 
+			  application transparent to the change in storage strategy where 
+			  data resides in multiple (possibly heterogeneous) databases instead
+			  of a single database. Slice achieves this transparency by 
+			  virtualization of multiple databases as a single database such 
+			  that OpenJPA object management kernel continues to interact in
+			  exactly the same manner with storage layer. Similarly, 
+              the existing application or the persistent domain model requires 
+              <span class="emphasis"><em>no change</em></span> to upgrade from a single database 
+              to a distributed database environment. 
+            </p>
+			<p>
+			  An existing application developed for a single database can be 
+			  adapted to work with multiple databases purely by configuring
+			  a persistence unit via <code class="classname">META-INF/persistence.xml</code>. 
+			</p>
+         </div>
+         
+		<div class="section" title="2.2.&nbsp;Scaling"><div class="titlepage"><div><div><h3 class="title" id="d5e16822">2.2.&nbsp;Scaling</h3></div></div></div>
+			<p>
+			The primary performance characteristics for Slice is to scale against
+			growing data volume by <span class="emphasis"><em>horizontal</em></span> partitioning data 
+			across many databases.  
+			</p>
+			<p>
+			Slice executes the database operations such as query or flush <span class="emphasis"><em>in
+			parallel</em></span> across each physical database. Hence, scaling characteristics 
+			against data volume are bound by the size of the maximum data 
+			partition instead of the size of the entire data set. The use cases
+			where the data is naturally amenable to horizontal partitions, 
+			for example, by temporal interval (e.g. Purchase Orders per month) 
+			or by geographical regions (e.g. Customer by Zip Code) can derive
+			significant performance benefit and favorable scaling behavior by 
+			using Slice.     
+			</p>
+		</div>
+		
+        <div class="section" title="2.3.&nbsp;Distributed Query"><div class="titlepage"><div><div><h3 class="title" id="d5e16828">2.3.&nbsp;Distributed Query</h3></div></div></div>
+            <p>
+            The queries are executed in parallel across one or more slices and the 
+			individual query results are merged into a single list before being
+			returned to the caller application. The <span class="emphasis"><em>merge</em></span> operation is
+			more complex for the queries that involve sorting and/or specify a 
+			range. Slice supports both sorting and range queries. 
+            </p>
+			<p>
+            Slice also supports aggregate queries where the aggregate operation 
+			is <span class="emphasis"><em>commutative</em></span> to partitioning such as 
+			<code class="classname">COUNT()</code> or <code class="classname">MAX()</code> but not <code class="classname">AVG()</code>. 
+            </p>
+         
+            <p>
+            By default, any query is executed against all available slices. 
+			However, the application can target the query only to a subset of 
+			slices by setting <span class="emphasis"><em>hint</em></span> on <code class="classname">javax.persistence.Query</code>. 
+			The hint key is  <code class="classname">openjpa.hint.slice.Target</code> and 
+            hint value is an array of slice identifiers. The following 
+            example shows how to target a query only to a pair of slices 
+			with logical identifier <code class="classname">"One"</code> and <code class="classname">"Two"</code>.
+                          
+            </p><pre class="programlisting">
+              EntityManager em = ...;
+              em.getTransaction().begin();
+              String hint = "openjpa.hint.slice.Target";
+              Query query = em.createQuery("SELECT p FROM PObject")
+				              .setHint(hint, new String[]{"One", "Two"});
+              List result = query.getResultList();
+              // verify that each instance is originating from the hinted slices
+              for (Object pc : result) {
+                 String sliceOrigin = SlicePersistence.getSlice(pc);
+                 assertTrue ("One".equals(sliceOrigin) || "Two".equals(sliceOrigin));
+              }
+              
+            </pre><p> 
+            </p>
+            
+            <p>
+            To confine queries to a subset of slices via setting query hints can be considered
+            intrusive to existing application. The alternative means of targeting queries is to 
+            configure a <span class="emphasis"><em>Query Target Policy</em></span>. This policy is configured 
+            via plug-in property <code class="classname">openjpa.slice.QueryTargetPolicy</code>. The
+            plug-in property is fully-qualified class name of an implementation
+            for <code class="classname">org.apache.openjpa.slice.QueryTargetPolicy</code> interface.
+            This interface contract allows a user application to target a query to a subset 
+            of slices based on the query and its bound parameters. The query target policy is consulted
+            only when no explicit target hint is set on the query. By default, the policy 
+            executes a query on all available slices.  
+            </p>
+            
+            <p>
+            A similar policy interface <code class="classname">org.apache.openjpa.slice.FinderTargetPolicy</code>
+            is available to target queries that originate from <code class="classname">find()</code>
+            by primary key. This finder target policy is consulted
+            only when no explicit target hint is set on the current fetch plan. By default, the policy 
+            executes a query on all available slices to find an instance by its primary key.    
+            </p>
+         </div>
+		
+         <div class="section" title="2.4.&nbsp;Data Distribution"><div class="titlepage"><div><div><h3 class="title" id="d5e16851">2.4.&nbsp;Data Distribution</h3></div></div></div>
+            <p>
+             The user application decides how the newly persistent instances be 
+             distributed across the slices. The user application specifies the 
+			 data distribution policy by implementing  
+             <code class="classname">org.apache.openjpa.slice.DistributionPolicy</code>.
+			
+			 The  <code class="classname">DistributionPolicy</code> interface
+			 is simple with a single method. The complete listing of the
+			 documented interface follows:
+		   </p><pre class="programlisting"> 
+		    
+			public interface DistributionPolicy {
+			/**
+			 * Gets the name of the slice where the given newly persistent 
+			 * instance will be stored.
+			 *  
+			 * @param pc The newly persistent or to-be-merged object. 
+			 * @param slices name of the configured slices.
+			 * @param context persistence context managing the given instance.
+			 * 
+			 * @return identifier of the slice. This name must match one of the
+			 * configured slice names. 
+			 * @see DistributedConfiguration#getSliceNames()
+			 */
+			String distribute(Object pc, List&lt;String&gt; slices, Object context);
+			}
+		
+       </pre><p>
+        </p>
+			 
+		 <p>
+			 Slice runtime invokes this user-supplied method for the newly
+			 persistent instance that is explicit argument of the 
+			 <code class="classname">javax.persistence.EntityManager.persist(Object pc)</code>
+			 method. The user application must return a valid slice name from
+			 this method to designate the target slice for the given instance.
+			 The data distribution policy may be based on the attribute 
+			 of the data itself. For example, all Customer whose first name 
+			 begins with character 'A' to 'M' will be stored in one slice 
+			 while names beginning with 'N' to 'Z' will be stored in another 
+			 slice. The noteworthy aspect of such policy implementation is 
+			 the attribute values that participate in 
+			 the distribution policy logic should be set before invoking 
+			 <code class="classname">EntityManager.persist()</code> method.
+		 </p>
+             
+		<p>
+			The user application needs to specify the target slice <span class="emphasis"><em>only</em></span>
+			for the <span class="emphasis"><em>root</em></span> instance i.e. the explicit argument for the
+			<code class="classname">EntityManager.persist(Object pc)</code> method. Slice computes
+			the transitive closure of the graph i.e. the set of all instances 
+			directly or indirectly reachable from the root instance and stores
+			them in the same target slice.  
+		</p>
+			
+		 <p> 
+		 Slice tracks the original database for existing instances. When
+		 an application issues a query, the resultant instances can be loaded 
+		 from different slices. As Slice tracks the original slice for each
+		 instance, any subsequent update to an instance is committed to the 
+		 appropriate original database slice. 
+		</p>
+            
+            <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+            <p>
+            You can find the original slice of an instance <code class="classname">pc</code> by 
+            the static utility method  
+            <code class="methodname">SlicePersistence.getSlice(pc)</code>.
+            This method returns the slice identifier associated with the
+            given <span class="emphasis"><em>managed</em></span> instance. If the instance is not
+            being managed then the method return null because any unmanaged or
+            detached instance is not associated with any slice. 
+            </p>
+            </div>
+         </div>
+         
+		<div class="section" title="2.5.&nbsp;Data Replication"><div class="titlepage"><div><div><h3 class="title" id="d5e16870">2.5.&nbsp;Data Replication</h3></div></div></div>
+			<p>
+			While Slice ensures that the transitive closure is stored in the 
+			same slice, there can be data elements that are commonly referred by
+			many instances such as Country or Currency code. Such quasi-static 
+			master data can be stored as identical copies in multiple slices. 
+			The user application must enumerate the replicated entity type names in
+			<code class="classname">openjpa.slice.ReplicatedTypes</code> as a comma-separated list
+			and implement a <code class="classname">org.apache.openjpa.slice.ReplicationPolicy</code> 
+			interface. The <code class="classname">ReplicationPolicy</code> interface 
+			is quite similar to <code class="classname">DistributionPolicy</code> 
+			interface except it returns an array of target slice names instead
+			of a single slice. 
+			</p><pre class="programlisting"> 
+             
+			 String[] replicate(Object pc, List&lt;String&gt; slices, Object context);
+        
+       </pre><p>
+		</p>
+			<p>
+				The default implementation assumes that replicated instances are
+				stored in all available slices. If any such replicated instance
+				is modified then the modification is updated to all target slices
+				to maintain the critical assumption that the state of a replicated 
+				instance is identical across all its target slices. 
+			</p>
+		</div>
+		
+         <div class="section" title="2.6.&nbsp;Heterogeneous Database"><div class="titlepage"><div><div><h3 class="title" id="d5e16879">2.6.&nbsp;Heterogeneous Database</h3></div></div></div>
+            <p> 
+              Each slice can be configured independently with its own JDBC 
+              driver and other connection parameters. Hence the target database 
+              environment can constitute of heterogeneous databases. 
+            </p>
+        </div>         
+         
+         <div class="section" title="2.7.&nbsp;Distributed Transaction"><div class="titlepage"><div><div><h3 class="title" id="d5e16882">2.7.&nbsp;Distributed Transaction</h3></div></div></div>
+            <p> 
+            The database slices participate in a global transaction provided
+            each slice is configured with a XA-compliant JDBC driver, even
+            when the persistence unit is configured for <code class="classname">RESOURCE_LOCAL</code>
+            transaction.
+            </p>
+            <p>
+            </p><div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3>
+            If any of the configured slices is not XA-compliant <span class="emphasis"><em>and</em></span> 
+            the persistence unit is configured for <code class="classname">RESOURCE_LOCAL</code>
+            transaction then each slice is committed without any two-phase
+            commit protocol. If commit on any slice fails, then atomic nature of
+            the transaction is not ensured.
+            </div><p>
+            </p>
+          </div>
+        
+         <div class="section" title="2.8.&nbsp;Collocation Constraint"><div class="titlepage"><div><div><h3 class="title" id="collocation_constraint">2.8.&nbsp;Collocation Constraint</h3></div></div></div>
+            <p> 
+            No relationship can exist across database slices. In O-R mapping parlance,
+            this condition translates to the limitation that the transitive closure of an object graph must be 
+            <span class="emphasis"><em>collocated</em></span> in the same database.
+            For example, consider a domain model where Person relates to Address.
+            Person X refers to Address A while Person Y refers to Address B. 
+            Collocation Constraint means that <span class="emphasis"><em>both</em></span> X and A 
+            must be stored in the same
+            database slice. Similarly Y and B must be stored in a single slice.
+            </p>
+            <p>
+            Slice, however, helps to maintain collocation constraint automatically.
+            The instances in the closure set of any newly persistent instance 
+            reachable via cascaded relationship is stored in the same slice.
+            The user-defined distribution policy requires to supply the slice 
+            for the root instance only.
+            </p>
+         </div>
+    </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_slice.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ref_guide_slice.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="slice_configuration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;13.&nbsp;
+    Slice: Distributed Persistence
+  &nbsp;</td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;3.&nbsp;Usage</td></tr></table></div></body></html>
\ No newline at end of file

Propchange: websites/production/openjpa/content/builds/2.4.0/apache-openjpa/docs/features_and_limitations.html
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message