[jboss-svn-commits] JBL Code SVN: r25606 - in labs/jbosstm/enterprise: trunk/Programmers_Guide/en-US and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Mar 11 22:13:34 EDT 2009
Author: irooskov at redhat.com
Date: 2009-03-11 22:13:34 -0400 (Wed, 11 Mar 2009)
New Revision: 25606
Modified:
labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter.xml
labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_02.xml
labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_03.xml
labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_07.xml
labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter.xml
labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_02.xml
labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_03.xml
labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_07.xml
Log:
updated transaction guide with JBPAPP-1712 fixes
Modified: labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter.xml 2009-03-12 00:44:31 UTC (rev 25605)
+++ labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter.xml 2009-03-12 02:13:34 UTC (rev 25606)
@@ -25,7 +25,7 @@
<imageobject>
<imagedata align="center" fileref="images/TXCore_class_hierarchy.png" />
</imageobject>
- <caption> Txcore class hierarchy </caption>
+ <caption>Figure 1: Txcore class hierarchy </caption>
</mediaobject>
<para>Apart from specifying the scopes of transactions, and setting appropriate locks within objects, the application programmer does not have any other responsibilities: <classname>TxCore</classname> and <emphasis>Transactional Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will be registered with, and be driven by, the appropriate transactions, and crash recovery mechanisms are invoked automatically in the event of failures.</para>
@@ -124,13 +124,13 @@
<section>
<title>The life-cycle of a Transactional Object for Java </title>
- <para>A persistent object not in use is assumed to be held in a <emphasis>passive</emphasis> state with its state residing in an object store and <emphasis>activated</emphasis> on demand. The fundamental life cycle of a persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="figure_2"/>.</para>
+ <para>A persistent object not in use is assumed to be held in a <emphasis>passive</emphasis> state with its state residing in an object store and <emphasis>activated</emphasis> on demand. The fundamental life cycle of a persistent object in <emphasis>TXOJ</emphasis> is shown in figure 2.</para>
<mediaobject id="figure_2">
<imageobject>
<imagedata align="center" fileref="images/Persistent_Object_Lifecycle.png" />
</imageobject>
- <caption> The lifecycle of a persistent object. </caption>
+ <caption>Figure 2: The lifecycle of a persistent object. </caption>
</mediaobject>
<itemizedlist>
@@ -153,7 +153,7 @@
<listitem><para>a purely local implementation, where locks are maintained within the memory of the virtual machine which created them; this implementation has better performance than when writing locks to the local disk, but objects cannot be shared between virtual machines. Importantly, it is a basic Java object with no requirements which can be affected by the SecurityManager</para></listitem>
</itemizedlist>
- <para>The primary programmer interface to the concurrency controller is via the setlock operation. By default, the runtime system enforces strict two-phase locking following a multiple reader, single writer policy on a per object basis. However, as shown in <xref linkend="figure_1"/>, by inheriting from the <classname>Lock</classname> class it is possible for programmers to provide their own lock implementations with different lock conflict rules to enable <firstterm>type specific concurrency control</firstterm>.</para>
+ <para>The primary programmer interface to the concurrency controller is via the setlock operation. By default, the runtime system enforces strict two-phase locking following a multiple reader, single writer policy on a per object basis. However, as shown in figure 1, by inheriting from the <classname>Lock</classname> class it is possible for programmers to provide their own lock implementations with different lock conflict rules to enable <firstterm>type specific concurrency control</firstterm>.</para>
<para>Lock acquisition is (of necessity) under programmer control, since just as <classname>StateManager</classname> cannot determine if an operation modifies an object, <classname>LockManager</classname> cannot determine if an operation requires a read or write lock. Lock release, however, is under control of the system and requires no further intervention by the programmer. This ensures that the two-phase property can be correctly maintained.</para>
Modified: labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_02.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_02.xml 2009-03-12 00:44:31 UTC (rev 25605)
+++ labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_02.xml 2009-03-12 02:13:34 UTC (rev 25606)
@@ -275,13 +275,13 @@
<para><emphasis>TxCore</emphasis> supports two models for objects, which as we shall show affect how an objects state and concurrency control are implemented:</para>
<itemizedlist>
- <listitem><para><termdef>SINGLE</termdef>: only a single copy of the object exists within the application; this will reside within a single JVM, and all clients must address their invocations to this server. This model provides better performance, but represents a single point of failure, and in a multi-threaded environment may not protect the object from corruption if a single thread fails.</para>
+ <listitem><para>SINGLE: only a single copy of the object exists within the application; this will reside within a single JVM, and all clients must address their invocations to this server. This model provides better performance, but represents a single point of failure, and in a multi-threaded environment may not protect the object from corruption if a single thread fails.</para>
<mediaobject id="figure_3">
<imageobject>
<imagedata align="center" fileref="images/Single_Object.png" />
</imageobject>
- <caption> Single Object Model</caption>
+ <caption>Figure 3: Single Object Model</caption>
</mediaobject>
</listitem>
@@ -292,7 +292,7 @@
<imageobject>
<imagedata align="center" fileref="images/Multiple_Object.png" />
</imageobject>
- <caption> Multiple Object Model</caption>
+ <caption>Figure 4: Multiple Object Model</caption>
</mediaobject>
</listitem>
</itemizedlist>
Modified: labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_03.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_03.xml 2009-03-12 00:44:31 UTC (rev 25605)
+++ labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_03.xml 2009-03-12 02:13:34 UTC (rev 25606)
@@ -151,10 +151,10 @@
<imageobject>
<imagedata align="center" fileref="images/Independent_Top-Level.png" />
</imageobject>
- <caption> Independent Top-Level Action</caption>
+ <caption>Figure 5: Independent Top-Level Action</caption>
</mediaobject>
- <para><xref linkend="figure_5"/> shows a typical nesting of atomic actions, where action B is nested within action A. Although atomic action C is logically nested within action B (it had its Begin operation invoked while B was active) because it is an independent top-level action, it will commit or abort independently of the other actions within the structure. Because of the nature of independent top-level actions they should be used with caution and only in situations where their use has been carefully examined.</para>
+ <para>Figure 5 shows a typical nesting of atomic actions, where action B is nested within action A. Although atomic action C is logically nested within action B (it had its Begin operation invoked while B was active) because it is an independent top-level action, it will commit or abort independently of the other actions within the structure. Because of the nature of independent top-level actions they should be used with caution and only in situations where their use has been carefully examined.</para>
<para>Top-level actions can be used within an application by declaring and using instances of the class <classname>TopLevelTransaction</classname>. They are used in exactly the same way as other transactions.</para>
Modified: labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_07.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_07.xml 2009-03-12 00:44:31 UTC (rev 25605)
+++ labs/jbosstm/enterprise/tags/EAP_4_2_7/Programmers_Guide/en-US/Chapter_07.xml 2009-03-12 02:13:34 UTC (rev 25606)
@@ -8,228 +8,316 @@
<section>
<title>Options</title>
<para>
- The following table shows the configuration features, with default values shown in italics. More details about each option can be found in the relevant sections of this document.
+ The following shows the configuration features, with possible values shown. More details about each option can be found in the relevant sections of this document.
</para>
- <table>
- <title>TxCore configuration options.</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- Configuration Name
- </entry>
- <entry>
- Possible Values
- </entry>
- <entry>
- Description
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.storeSync
- </entry>
- <entry>
- ON/OFF
- </entry>
- <entry>
- Turns synchronization of the object store on or off. Use with caution.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.storeType
- </entry>
- <entry>
- ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore
- </entry>
- <entry>
- Specify the type of object store implementation to use.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.hashedDirectories
- </entry>
- <entry>
- 255/any integer value
- </entry>
- <entry>
- Set the number of directories to hash object states over for the HashedStore object store implementation.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.txoj.lockstore.lockStoreType
- </entry>
- <entry>
- BasicLockStore/BasicPersistentLockStore
- </entry>
- <entry>
- Specify the type of the lock store implementation to use.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.txoj.lockstore.lockStoreDir
- </entry>
- <entry>
- Windows: .\LockStore
+ <itemizedlist>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.storeSync
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: ON/OFF
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Turns synchronization of the object store on or off. Use with caution.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.storeType
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Specify the type of object store implementation to use.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.hashedDirectories
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: 255/any integer value
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Set the number of directories to hash object states over for the HashedStore object store implementation.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.txoj.lockstore.lockStoreType
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: BasicLockStore/BasicPersistentLockStore
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Specify the type of the lock store implementation to use.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.txoj.lockstore.lockStoreDir
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: Windows: .\LockStore
Unix: ./LockStore
- </entry>
- <entry>
- Specify the location of the lock store.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.objectStoreDir
- </entry>
- <entry>
- Any location the application can write to.
- </entry>
- <entry>
- Specify the location of the object store.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.localOSRoot
- </entry>
- <entry>
- defaultStore
- </entry>
- <entry>
- Specify the name of the object store root.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.actionStore
- </entry>
- <entry>
- ActionStore/HashedActionStore/JDBCActionStore
- </entry>
- <entry>
- The transaction log implementation to use.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.asyncCommit
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Turns on or off (default) asynchronous commit.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.asyncPrepare
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Turns on or off (default) asynchronous prepare.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.transactionSync
- </entry>
- <entry>
- ON/OFF
- </entry>
- <entry>
- Turns synchronization of the object store on or off. Use with caution.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess
- </entry>
- <entry>
- JDBCAccess class name
- </entry>
- <entry>
- The JDBCAccess implementation to use for user-level object stores.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess
- </entry>
- <entry>
- JDBCAccess class name
- </entry>
- <entry>
- The JDBCAccess implementation to use for transaction object stores.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.commitOnePhase
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Enable or disable the one-phase commit optimization.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.readonlyOptimisation
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Enable or disable read-only optimization for the second phase abort.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.enableStatistics
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Start/stop collecting transaction statistic information.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.startDisabled
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Start with the transaction system enabled or disabled. Toggle via the com.arjuna.ats.arjuna.coordinator.TxControl class.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.defaultTimeout
- </entry>
- <entry>
- Integer
- </entry>
- <entry>
- Timeout in milliseconds
- </entry>
- </row>
- </tbody>
- </tgroup>
-
-
- </table>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Specify the location of the lock store.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.objectStoreDir
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: Any location the application can write to.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Specify the location of the object store.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.localOSRoot
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: defaultStore
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Specify the name of the object store root.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.actionStore
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: ActionStore/HashedActionStore/JDBCActionStore
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: The transaction log implementation to use.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.asyncCommit
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Turns on or off (default) asynchronous commit.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.asyncPrepare
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Turns on or off (default) asynchronous prepare.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.transactionSync
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: ON/OFF
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Turns synchronization of the object store on or off. Use with caution.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: JDBCAccess class name
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: The JDBCAccess implementation to use for user-level object stores.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: JDBCAccess class name
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: The JDBCAccess implementation to use for transaction object stores.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.commitOnePhase
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Enable or disable the one-phase commit optimization.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.readonlyOptimisation
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Enable or disable read-only optimization for the second phase abort.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.enableStatistics
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Start/stop collecting transaction statistic information.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.startDisabled
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Start with the transaction system enabled or disabled. Toggle via the com.arjuna.ats.arjuna.coordinator.TxControl class.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.defaultTimeout
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: Integer
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Timeout in milliseconds
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
</section>
</chapter>
\ No newline at end of file
Modified: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter.xml 2009-03-12 00:44:31 UTC (rev 25605)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter.xml 2009-03-12 02:13:34 UTC (rev 25606)
@@ -25,7 +25,7 @@
<imageobject>
<imagedata align="center" fileref="images/TXCore_class_hierarchy.png" />
</imageobject>
- <caption> Txcore class hierarchy </caption>
+ <caption>Figure 1: Txcore class hierarchy </caption>
</mediaobject>
<para>Apart from specifying the scopes of transactions, and setting appropriate locks within objects, the application programmer does not have any other responsibilities: <classname>TxCore</classname> and <emphasis>Transactional Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will be registered with, and be driven by, the appropriate transactions, and crash recovery mechanisms are invoked automatically in the event of failures.</para>
@@ -124,13 +124,13 @@
<section>
<title>The life-cycle of a Transactional Object for Java </title>
- <para>A persistent object not in use is assumed to be held in a <emphasis>passive</emphasis> state with its state residing in an object store and <emphasis>activated</emphasis> on demand. The fundamental life cycle of a persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="figure_2"/>.</para>
+ <para>A persistent object not in use is assumed to be held in a <emphasis>passive</emphasis> state with its state residing in an object store and <emphasis>activated</emphasis> on demand. The fundamental life cycle of a persistent object in <emphasis>TXOJ</emphasis> is shown in figure 2.</para>
<mediaobject id="figure_2">
<imageobject>
<imagedata align="center" fileref="images/Persistent_Object_Lifecycle.png" />
</imageobject>
- <caption> The lifecycle of a persistent object. </caption>
+ <caption>Figure 2: The lifecycle of a persistent object. </caption>
</mediaobject>
<itemizedlist>
@@ -153,7 +153,7 @@
<listitem><para>a purely local implementation, where locks are maintained within the memory of the virtual machine which created them; this implementation has better performance than when writing locks to the local disk, but objects cannot be shared between virtual machines. Importantly, it is a basic Java object with no requirements which can be affected by the SecurityManager</para></listitem>
</itemizedlist>
- <para>The primary programmer interface to the concurrency controller is via the setlock operation. By default, the runtime system enforces strict two-phase locking following a multiple reader, single writer policy on a per object basis. However, as shown in <xref linkend="figure_1"/>, by inheriting from the <classname>Lock</classname> class it is possible for programmers to provide their own lock implementations with different lock conflict rules to enable <firstterm>type specific concurrency control</firstterm>.</para>
+ <para>The primary programmer interface to the concurrency controller is via the setlock operation. By default, the runtime system enforces strict two-phase locking following a multiple reader, single writer policy on a per object basis. However, as shown in figure 1, by inheriting from the <classname>Lock</classname> class it is possible for programmers to provide their own lock implementations with different lock conflict rules to enable <firstterm>type specific concurrency control</firstterm>.</para>
<para>Lock acquisition is (of necessity) under programmer control, since just as <classname>StateManager</classname> cannot determine if an operation modifies an object, <classname>LockManager</classname> cannot determine if an operation requires a read or write lock. Lock release, however, is under control of the system and requires no further intervention by the programmer. This ensures that the two-phase property can be correctly maintained.</para>
Modified: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_02.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_02.xml 2009-03-12 00:44:31 UTC (rev 25605)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_02.xml 2009-03-12 02:13:34 UTC (rev 25606)
@@ -275,13 +275,13 @@
<para><emphasis>TxCore</emphasis> supports two models for objects, which as we shall show affect how an objects state and concurrency control are implemented:</para>
<itemizedlist>
- <listitem><para><termdef>SINGLE</termdef>: only a single copy of the object exists within the application; this will reside within a single JVM, and all clients must address their invocations to this server. This model provides better performance, but represents a single point of failure, and in a multi-threaded environment may not protect the object from corruption if a single thread fails.</para>
+ <listitem><para>SINGLE: only a single copy of the object exists within the application; this will reside within a single JVM, and all clients must address their invocations to this server. This model provides better performance, but represents a single point of failure, and in a multi-threaded environment may not protect the object from corruption if a single thread fails.</para>
<mediaobject id="figure_3">
<imageobject>
<imagedata align="center" fileref="images/Single_Object.png" />
</imageobject>
- <caption> Single Object Model</caption>
+ <caption>Figure 3: Single Object Model</caption>
</mediaobject>
</listitem>
@@ -292,7 +292,7 @@
<imageobject>
<imagedata align="center" fileref="images/Multiple_Object.png" />
</imageobject>
- <caption> Multiple Object Model</caption>
+ <caption>Figure 4: Multiple Object Model</caption>
</mediaobject>
</listitem>
</itemizedlist>
Modified: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_03.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_03.xml 2009-03-12 00:44:31 UTC (rev 25605)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_03.xml 2009-03-12 02:13:34 UTC (rev 25606)
@@ -151,10 +151,10 @@
<imageobject>
<imagedata align="center" fileref="images/Independent_Top-Level.png" />
</imageobject>
- <caption> Independent Top-Level Action</caption>
+ <caption>Figure 5: Independent Top-Level Action</caption>
</mediaobject>
- <para><xref linkend="figure_5"/> shows a typical nesting of atomic actions, where action B is nested within action A. Although atomic action C is logically nested within action B (it had its Begin operation invoked while B was active) because it is an independent top-level action, it will commit or abort independently of the other actions within the structure. Because of the nature of independent top-level actions they should be used with caution and only in situations where their use has been carefully examined.</para>
+ <para>Figure 5 shows a typical nesting of atomic actions, where action B is nested within action A. Although atomic action C is logically nested within action B (it had its Begin operation invoked while B was active) because it is an independent top-level action, it will commit or abort independently of the other actions within the structure. Because of the nature of independent top-level actions they should be used with caution and only in situations where their use has been carefully examined.</para>
<para>Top-level actions can be used within an application by declaring and using instances of the class <classname>TopLevelTransaction</classname>. They are used in exactly the same way as other transactions.</para>
Modified: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_07.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_07.xml 2009-03-12 00:44:31 UTC (rev 25605)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_07.xml 2009-03-12 02:13:34 UTC (rev 25606)
@@ -8,228 +8,316 @@
<section>
<title>Options</title>
<para>
- The following table shows the configuration features, with default values shown in italics. More details about each option can be found in the relevant sections of this document.
+ The following shows the configuration features, with possible values shown. More details about each option can be found in the relevant sections of this document.
</para>
- <table>
- <title>TxCore configuration options.</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- Configuration Name
- </entry>
- <entry>
- Possible Values
- </entry>
- <entry>
- Description
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.storeSync
- </entry>
- <entry>
- ON/OFF
- </entry>
- <entry>
- Turns synchronization of the object store on or off. Use with caution.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.storeType
- </entry>
- <entry>
- ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore
- </entry>
- <entry>
- Specify the type of object store implementation to use.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.hashedDirectories
- </entry>
- <entry>
- 255/any integer value
- </entry>
- <entry>
- Set the number of directories to hash object states over for the HashedStore object store implementation.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.txoj.lockstore.lockStoreType
- </entry>
- <entry>
- BasicLockStore/BasicPersistentLockStore
- </entry>
- <entry>
- Specify the type of the lock store implementation to use.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.txoj.lockstore.lockStoreDir
- </entry>
- <entry>
- Windows: .\LockStore
+ <itemizedlist>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.storeSync
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: ON/OFF
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Turns synchronization of the object store on or off. Use with caution.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.storeType
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Specify the type of object store implementation to use.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.hashedDirectories
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: 255/any integer value
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Set the number of directories to hash object states over for the HashedStore object store implementation.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.txoj.lockstore.lockStoreType
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: BasicLockStore/BasicPersistentLockStore
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Specify the type of the lock store implementation to use.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.txoj.lockstore.lockStoreDir
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: Windows: .\LockStore
Unix: ./LockStore
- </entry>
- <entry>
- Specify the location of the lock store.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.objectStoreDir
- </entry>
- <entry>
- Any location the application can write to.
- </entry>
- <entry>
- Specify the location of the object store.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.localOSRoot
- </entry>
- <entry>
- defaultStore
- </entry>
- <entry>
- Specify the name of the object store root.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.actionStore
- </entry>
- <entry>
- ActionStore/HashedActionStore/JDBCActionStore
- </entry>
- <entry>
- The transaction log implementation to use.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.asyncCommit
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Turns on or off (default) asynchronous commit.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.asyncPrepare
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Turns on or off (default) asynchronous prepare.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.transactionSync
- </entry>
- <entry>
- ON/OFF
- </entry>
- <entry>
- Turns synchronization of the object store on or off. Use with caution.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess
- </entry>
- <entry>
- JDBCAccess class name
- </entry>
- <entry>
- The JDBCAccess implementation to use for user-level object stores.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess
- </entry>
- <entry>
- JDBCAccess class name
- </entry>
- <entry>
- The JDBCAccess implementation to use for transaction object stores.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.commitOnePhase
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Enable or disable the one-phase commit optimization.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.readonlyOptimisation
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Enable or disable read-only optimization for the second phase abort.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.enableStatistics
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Start/stop collecting transaction statistic information.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.startDisabled
- </entry>
- <entry>
- YES/NO
- </entry>
- <entry>
- Start with the transaction system enabled or disabled. Toggle via the com.arjuna.ats.arjuna.coordinator.TxControl class.
- </entry>
- </row>
- <row>
- <entry>
- com.arjuna.ats.arjuna.coordinator.defaultTimeout
- </entry>
- <entry>
- Integer
- </entry>
- <entry>
- Timeout in milliseconds
- </entry>
- </row>
- </tbody>
- </tgroup>
-
-
- </table>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Specify the location of the lock store.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.objectStoreDir
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: Any location the application can write to.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Specify the location of the object store.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.localOSRoot
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: defaultStore
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Specify the name of the object store root.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.actionStore
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: ActionStore/HashedActionStore/JDBCActionStore
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: The transaction log implementation to use.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.asyncCommit
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Turns on or off (default) asynchronous commit.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.asyncPrepare
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Turns on or off (default) asynchronous prepare.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.transactionSync
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: ON/OFF
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Turns synchronization of the object store on or off. Use with caution.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: JDBCAccess class name
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: The JDBCAccess implementation to use for user-level object stores.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: JDBCAccess class name
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: The JDBCAccess implementation to use for transaction object stores.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.commitOnePhase
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Enable or disable the one-phase commit optimization.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.readonlyOptimisation
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Enable or disable read-only optimization for the second phase abort.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.enableStatistics
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Start/stop collecting transaction statistic information.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.startDisabled
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: YES/NO
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Start with the transaction system enabled or disabled. Toggle via the com.arjuna.ats.arjuna.coordinator.TxControl class.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ com.arjuna.ats.arjuna.coordinator.defaultTimeout
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Possible Values: Integer
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Description: Timeout in milliseconds
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
</section>
</chapter>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list