You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by st...@apache.org on 2015/06/01 22:19:02 UTC
svn commit: r953480 [3/37] - in
/websites/production/openjpa/content/builds/2.4.0: ./ apache-openjpa/
apache-openjpa/docs/
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. 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 2. Supported Databases"><link rel="prev" href="dbsupport_mysql.html" title="19. MySQL"><link rel="next" href="dbsupport_pointbase.html" title="21. 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.
+ Oracle
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_mysql.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_pointbase.html">Next</a></td></tr></table><hr></div><div class="section" title="20. Oracle"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_oracle">20.
+ 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 2.17.
+ 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. Using Query Hints with Oracle"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_oracle_query_hints">20.1.
+ 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 2.18.
+ 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. Known issues with Oracle"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_oracle_issues">20.2.
+ 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 2.19.
+ 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. Configuring the Use of JDBC Connections">Section 8, “
+ Configuring the Use of JDBC Connections
+ ”</a> for details.
+ </p><div class="example"><a name="dbsupport_oracle_retain_connection"></a><p class="title"><b>Example 2.20.
+ 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. 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<element:class x.y.z.EmbedValue>"
+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> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_pointbase.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">19.
+ MySQL
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 21.
+ 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. 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 2. Supported Databases"><link rel="prev" href="dbsupport_oracle.html" title="20. Oracle"><link rel="next" href="dbsupport_postgresql.html" title="22. 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.
+ Pointbase
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_oracle.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_postgresql.html">Next</a></td></tr></table><hr></div><div class="section" title="21. Pointbase"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_pointbase">21.
+ 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 2.21.
+ 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. Known issues with Pointbase"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_pointbase_issues">21.1.
+ 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> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_postgresql.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">20.
+ Oracle
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 22.
+ 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. 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 2. Supported Databases"><link rel="prev" href="dbsupport_pointbase.html" title="21. Pointbase"><link rel="next" href="dbsupport_soliddb.html" title="23. 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.
+ PostgreSQL
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_pointbase.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_soliddb.html">Next</a></td></tr></table><hr></div><div class="section" title="22. PostgreSQL"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_postgresql">22.
+ 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 2.22.
+ 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. Known issues with PostgreSQL"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_postgresql_issues">22.1.
+ 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. 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> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_soliddb.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">21.
+ Pointbase
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 23.
+ 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. 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 2. Supported Databases"><link rel="prev" href="dbsupport_postgresql.html" title="22. PostgreSQL"><link rel="next" href="dbsupport_sybase.html" title="24. 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.
+ IBM solidDB
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_postgresql.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_sybase.html">Next</a></td></tr></table><hr></div><div class="section" title="23. IBM solidDB"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_soliddb">23.
+ 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 2.23.
+ 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. M-type tables vs. D-type tables"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_soliddb_table_types">23.1.
+ 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. Concurrency control mechanism"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_soliddb_concurrency_control">23.2.
+ 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> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_sybase.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">22.
+ PostgreSQL
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 24.
+ 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. 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 2. Supported Databases"><link rel="prev" href="dbsupport_access.html" title="16. Microsoft Access"><link rel="next" href="dbsupport_foxpro.html" title="18. 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.
+ Microsoft SQL Server
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_access.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_foxpro.html">Next</a></td></tr></table><hr></div><div class="section" title="17. Microsoft SQL Server"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_sqlserver">17.
+ 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 2.13.
+ 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. Known issues with SQL Server"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_sqlserver_issues">17.1.
+ 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. 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. 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> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_foxpro.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">16.
+ Microsoft Access
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 18.
+ 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. 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 2. Supported Databases"><link rel="prev" href="dbsupport_soliddb.html" title="23. IBM solidDB"><link rel="next" href="migration_considerations.html" title="Appendix 3. 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.
+ Sybase Adaptive Server
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_soliddb.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="migration_considerations.html">Next</a></td></tr></table><hr></div><div class="section" title="24. Sybase Adaptive Server"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbsupport_sybase">24.
+ 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 2.24.
+ 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&BE_AS_JDBC_COMPLIANT_AS_POSSIBLE=true
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" title="24.1. Known issues with Sybase"><div class="titlepage"><div><div><h3 class="title" id="dbsupport_sybase_issues">24.1.
+ 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. 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. Column">Section 3, “
+ Column
+ ”</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> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="migration_considerations.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">23.
+ IBM solidDB
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix 3.
+ 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. 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 2. Supported Databases"><link rel="prev" href="dbcompatible.html" title="3. Compatible Database Matrix"><link rel="next" href="dbsupport_derby.html" title="5. 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.
+ Unverified Database Matrix
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbcompatible.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_derby.html">Next</a></td></tr></table><hr></div><div class="section" title="4. Unverified Database Matrix"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="dbunverified">4.
+ 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. Verified Database Matrix">Verified Database Matrix</a> section.
+ </p>
+ <div class="table"><a name="d5e17784"></a><p class="title"><b>Table 2.3.
+ Unverified Databases and JDBC Drivers
+ </b></p><div class="table-contents">
+
+ <table summary="
 Unverified Databases and JDBC Drivers
 " 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> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_derby.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3.
+ Compatible Database Matrix
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 5.
+ 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. 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 13. Slice: Distributed Persistence"><link rel="prev" href="ref_guide_slice.html" title="Chapter 13. Slice: Distributed Persistence"><link rel="next" href="slice_configuration.html" title="3. 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. Salient Features</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_slice.html">Prev</a> </td><th width="60%" align="center">Chapter 13.
+ Slice: Distributed Persistence
+ </th><td width="20%" align="right"> <a accesskey="n" href="slice_configuration.html">Next</a></td></tr></table><hr></div><div class="section" title="2. Salient Features"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="features_and_limitations">2. 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. Transparency"><div class="titlepage"><div><div><h3 class="title" id="d5e16816">2.1. 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. Scaling"><div class="titlepage"><div><div><h3 class="title" id="d5e16822">2.2. 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. Distributed Query"><div class="titlepage"><div><div><h3 class="title" id="d5e16828">2.3. 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. Data Distribution"><div class="titlepage"><div><div><h3 class="title" id="d5e16851">2.4. 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<String> 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. Data Replication"><div class="titlepage"><div><div><h3 class="title" id="d5e16870">2.5. 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<String> 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. Heterogeneous Database"><div class="titlepage"><div><div><h3 class="title" id="d5e16879">2.6. 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. Distributed Transaction"><div class="titlepage"><div><div><h3 class="title" id="d5e16882">2.7. 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. Collocation Constraint"><div class="titlepage"><div><div><h3 class="title" id="collocation_constraint">2.8. 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> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide_slice.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="slice_configuration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 13.
+ Slice: Distributed Persistence
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 3. 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