OPENJPA-735: OpenJPA support for SolidDB

git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@988341 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Fay Wang 2010-08-23 22:34:57 +00:00
parent 99332850e3
commit adfa274b34
1 changed files with 85 additions and 0 deletions

View File

@ -174,6 +174,20 @@ users, but may not support every feature of this release, please refer to the
8.3 JDBC3 (build 603), 8.4 JDBC3 (build 701)
</entry>
</row>
<row>
<entry colname="dbname">
<link linkend="dbsupport_soliddb">IBM solidDB</link>
</entry>
<entry colname="dbversion">
6.5.0.0
</entry>
<entry colname="drivname">
solidDB JDBC Drive
</entry>
<entry colname="drivversion">
2.0
</entry>
</row>
<row>
<entry colname="dbname">
<link linkend="dbsupport_sybase">Sybase Adaptive Server Enterprise</link>
@ -483,6 +497,20 @@ databases that have been fully tested against this release, please refer to the
8.1
</entry>
</row>
<row>
<entry colname="dbname">
<link linkend="dbsupport_solidDB">IBM solidDB</link>
</entry>
<entry colname="dbversion">
6.5.0.0
</entry>
<entry colname="drivname">
solidDB JDBC Driver
</entry>
<entry colname="drivversion">
2.0
</entry>
</row>
<row>
<entry colname="dbname">
<link linkend="dbsupport_sybase">Sybase Adaptive Server Enterprise</link>
@ -1253,6 +1281,63 @@ supported when using
</itemizedlist>
</section>
</section>
<section id="dbsupport_soliddb">
<title>
IBM solidDB
</title>
<example id="example_props_soliddb">
<title>
Example properties for IBM solidDB
</title>
<programlisting>
openjpa.ConnectionDriverName: solid.jdbc.SolidDriver
openjpa.ConnectionURL: jdbc:solid://localhost:2315/dba/dba
</programlisting>
</example>
<section id="dbsupport_soliddb_table_types">
<title>
M-type tables vs. D-type tables
</title>
<para>
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.
</para>
</section>
<section id="dbsupport_soliddb_concurrency_control">
<title>
Concurrency control mechanism
</title>
<para>
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.
</para>
</section>
</section>
<section id="dbsupport_sybase">
<title>
Sybase Adaptive Server