[teiid-commits] teiid SVN: r1971 - trunk/documentation/reference/src/main/docbook/en-US/content.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Tue Mar 16 17:55:06 EDT 2010


Author: shawkins
Date: 2010-03-16 17:55:06 -0400 (Tue, 16 Mar 2010)
New Revision: 1971

Modified:
   trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml
Log:
TEIID-897 updating the docs for the auto wrap detect mode

Modified: trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml	2010-03-16 21:23:22 UTC (rev 1970)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml	2010-03-16 21:55:06 UTC (rev 1971)
@@ -3,11 +3,11 @@
 <chapter id="transaction_support">
 	<title>Transaction Support</title>
 	<para>
-		Teiid utilizes XA transactions for both participating in global
-		transactions and for demarcating its own local and command scoped
+		Teiid utilizes XA transactions for participating in global
+		transactions and for demarcating its local and command scoped
 		transactions.
 		<ulink url="http://www.jboss.org/jbosstm/">JBoss Transactions</ulink>
-		is used by Teiid as its internal transaction manager. See
+		is used by Teiid as its transaction manager. See
 		<ulink url="http://www.jboss.org/jbosstm/docs/index.html"> this documentation</ulink>
 		for the advanced features provided by JBoss Transactions.
 	</para>
@@ -44,6 +44,7 @@
 			</tbody>
 		</tgroup>
 	</table>
+	<para>The default transaction isolation level for Teiid is READ_COMMITTED.</para> 
 	<sect1 id="autowrap">
 		<title>AutoCommitTxn Execution Property</title>
 		<para>Since user level commands may execute multiple source
@@ -71,28 +72,39 @@
 					<row>
 						<entry>ON</entry>
 						<entry>Wrap each command in a transaction. This mode is the
-							safest, but may be burdonsome on performance.</entry>
+							safest, but may introduce performance overhead.</entry>
 					</row>
 					<row>
 						<entry>AUTO</entry>
 						<entry>
 						    This is the default setting. Will automatically wrap commands in a transaction, but only if
-							the command seems to be
-							<link linkend="updating_model_count">transactionally unsafe.</link>
+							the command seems to be transactionally unsafe.
 						</entry>
 					</row>
 				</tbody>
 			</tgroup>
 		</table>
 		<para>The concept of command safety with respect to a transaction
-			is determined by Teiid based upon command type and available
-			metadata. Whenever any INSERT, UPDATE, DELETE, or EXECUTE (with
-			update count greater than 0) command is detected and the success or
-			failure of that command is not the same as the user level command,
-			then the command is deemed unsafe without a transaction.</para>
-		<para>The update count may be set on dynamic SQL as part of the
-			command and on all other procedures as part of the procedure metadata
-			in the model.</para>
+			is determined by Teiid based upon command type, the transaction isolation level, and available
+			metadata.  A wrapping transaction is not needed if:
+			<itemizedlist>
+				<listitem>
+					<para>If a user command is fully pushed to the source.
+					</para>
+				</listitem>
+				<listitem>
+					<para>If the user command is a SELECT (including XML) or an XQuery and the transaction isolation is not REPEATABLE_READ nor SERIALIABLE.
+					</para>
+				</listitem>
+				<listitem>
+					<para>If the user command is a stored procedure and the transaction isolation is not REPEATABLE_READ nor SERIALIABLE and the 
+					<link linkend="updating_model_count">updating model count</link> is zero.
+					</para>
+				</listitem>
+			</itemizedlist>
+	    </para>
+		<para>The update count may be set on all procedures as part of 
+			the procedure metadata in the model.</para>
 	</sect1>
 	<sect1 id="updating_model_count">
 		<title>Updating Model Count</title>
@@ -110,14 +122,12 @@
 					<row>
 						<entry>Count</entry>
 						<entry>Description</entry>
-						<entry>Default For</entry>
 					</row>
 				</thead>
 				<tbody>
 					<row>
 						<entry>0</entry>
 						<entry>No updates are performed by this command.</entry>
-						<entry>Dynamic SQL instructions</entry>
 					</row>
 					<row>
 						<entry>1</entry>
@@ -127,30 +137,16 @@
 							It should not be possible for the update to succeed while the
 							command fails. Execution is not considered transactionally
 							unsafe.</entry>
-						<entry>Physical procedures, inserts, updates, and deletes
-						</entry>
 					</row>
 					<row>
 						<entry>*</entry>
 						<entry>Any number greater than 1 indicates that exection is
 							transactionally unsafe and an XA transaction will be required.
 						</entry>
-						<entry>XQuery commands</entry>
 					</row>
 				</tbody>
 			</tgroup>
 		</table>
-		<para> By default Teiid will calculate the updating model count for
-			a user query (which may be composed of many subcommands) given the
-			above table. Thus a command with a single update as a subcommand may
-			still require a transaction if the update is not tied to the success
-			of the command.</para>
-		<para>
-			Explicit values for updating model count may be set using Teiid
-			Designer and directly in the
-			<link linkend="dynamic_sql">dynamic SQL command</link>
-			.
-		</para>
 	</sect1>
 	<sect1>
 		<title>JDBC and Transactions</title>
@@ -220,27 +216,21 @@
 		<itemizedlist>
 			<listitem>
 				<para>The client setting of transaction isolation level is not
-					used. The transaction isolation level can be set on each XA
+					propogated to the connectors. The transaction isolation level can be set on each XA
 					connector, however this isolation level is fixed and cannot be
 					changed at runtime for specific connections/commands.</para>
 			</listitem>
 			<listitem>
-				<para>Since the client transaction isolation level is not used,
-					Teiid internally assumes a level of READ_COMMITTED. This implies
-					that explicit transactions are not required for user level commands
-					performing multiple reads.</para>
-			</listitem>
-			<listitem>
 				<para>Temporary tables are not transactional. For example,
 					a global temporary table will retain all inserts performed during a
 					local transaction that was rolled back.</para>
 			</listitem>
-			<listitem>
+			<!-- <listitem>
 				<para>Connectors may be set to immutable to prevent their
 					participation in transactions. This is useful in situations where
 					update commands are being issued against a source that lacks XA
 					transaction capabilities.</para>
-			</listitem>
+			</listitem>-->
 		</itemizedlist>
 	</sect1>
 </chapter>
\ No newline at end of file



More information about the teiid-commits mailing list