blob: b966aeaa6bf9a49e560f0cb88128c88453a4e504 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX">
<link rel="canonical" href="https://ignite.apache.org/releases/1.6.0/dotnetdoc/interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html" />
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>Apache Ignite.NET: Apache.Ignite.Core.Transactions.ITransaction Interface Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-61232409-1', 'auto');
ga('send', 'pageview');
</script></head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="ignite_logo.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Apache Ignite.NET
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Apache.Ignite.Core.Transactions.ITransaction Interface Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Grid cache transaction.
<a href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Ignite.Core.Transactions.ITransaction:</div>
<div class="dyncontent">
<div class="center">
<img src="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.png" usemap="#Apache.Ignite.Core.Transactions.ITransaction_map" alt=""/>
<map id="Apache.Ignite.Core.Transactions.ITransaction_map" name="Apache.Ignite.Core.Transactions.ITransaction_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a495d08a23d723c439146f6fe20c8cf0c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#a495d08a23d723c439146f6fe20c8cf0c">SetRollbackonly</a> ()</td></tr>
<tr class="memdesc:a495d08a23d723c439146f6fe20c8cf0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modify the transaction associated with the current thread such that the only possible outcome of the transaction is to roll back the transaction. <a href="#a495d08a23d723c439146f6fe20c8cf0c">More...</a><br /></td></tr>
<tr class="separator:a495d08a23d723c439146f6fe20c8cf0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba386970d0f1fdcd1244bf46591304a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#aba386970d0f1fdcd1244bf46591304a5">Commit</a> ()</td></tr>
<tr class="memdesc:aba386970d0f1fdcd1244bf46591304a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Commits this transaction. <a href="#aba386970d0f1fdcd1244bf46591304a5">More...</a><br /></td></tr>
<tr class="separator:aba386970d0f1fdcd1244bf46591304a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8700c30bff1ca96cfe1b9c6b3927072d"><td class="memItemLeft" align="right" valign="top">Task&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#a8700c30bff1ca96cfe1b9c6b3927072d">CommitAsync</a> ()</td></tr>
<tr class="memdesc:a8700c30bff1ca96cfe1b9c6b3927072d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Commits this transaction. <a href="#a8700c30bff1ca96cfe1b9c6b3927072d">More...</a><br /></td></tr>
<tr class="separator:a8700c30bff1ca96cfe1b9c6b3927072d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d8b41a1d016f44fd86a2477f8d213c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#a3d8b41a1d016f44fd86a2477f8d213c8">Rollback</a> ()</td></tr>
<tr class="memdesc:a3d8b41a1d016f44fd86a2477f8d213c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rolls back this transaction. <a href="#a3d8b41a1d016f44fd86a2477f8d213c8">More...</a><br /></td></tr>
<tr class="separator:a3d8b41a1d016f44fd86a2477f8d213c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91c8b2c7d94fad564596482232e80848"><td class="memItemLeft" align="right" valign="top">Task&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#a91c8b2c7d94fad564596482232e80848">RollbackAsync</a> ()</td></tr>
<tr class="memdesc:a91c8b2c7d94fad564596482232e80848"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rolls back this transaction. <a href="#a91c8b2c7d94fad564596482232e80848">More...</a><br /></td></tr>
<tr class="separator:a91c8b2c7d94fad564596482232e80848"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7889f571949a33575749067f3a77dfb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#ad7889f571949a33575749067f3a77dfb">AddMeta&lt; TV &gt;</a> (string name, TV val)</td></tr>
<tr class="memdesc:ad7889f571949a33575749067f3a77dfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a new metadata. <a href="#ad7889f571949a33575749067f3a77dfb">More...</a><br /></td></tr>
<tr class="separator:ad7889f571949a33575749067f3a77dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac367fc6ee988d7948b0e999bec23ce3f"><td class="memItemLeft" align="right" valign="top">TV&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#ac367fc6ee988d7948b0e999bec23ce3f">Meta&lt; TV &gt;</a> (string name)</td></tr>
<tr class="memdesc:ac367fc6ee988d7948b0e999bec23ce3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets metadata by name. <a href="#ac367fc6ee988d7948b0e999bec23ce3f">More...</a><br /></td></tr>
<tr class="separator:ac367fc6ee988d7948b0e999bec23ce3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3d32be35ef64968a3d7f32195fa9e20"><td class="memItemLeft" align="right" valign="top">TV&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#ab3d32be35ef64968a3d7f32195fa9e20">RemoveMeta&lt; TV &gt;</a> (string name)</td></tr>
<tr class="memdesc:ab3d32be35ef64968a3d7f32195fa9e20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes metadata by name. <a href="#ab3d32be35ef64968a3d7f32195fa9e20">More...</a><br /></td></tr>
<tr class="separator:ab3d32be35ef64968a3d7f32195fa9e20"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:aad4adc299a54792dd4a9b3b2f5782671"><td class="memItemLeft" align="right" valign="top">Guid&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#aad4adc299a54792dd4a9b3b2f5782671">NodeId</a><code> [get]</code></td></tr>
<tr class="memdesc:aad4adc299a54792dd4a9b3b2f5782671"><td class="mdescLeft">&#160;</td><td class="mdescRight">ID of the node on which this transaction started. <a href="#aad4adc299a54792dd4a9b3b2f5782671">More...</a><br /></td></tr>
<tr class="separator:aad4adc299a54792dd4a9b3b2f5782671"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accd45b916470bc7f2c755be9d2cefb67"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#accd45b916470bc7f2c755be9d2cefb67">ThreadId</a><code> [get]</code></td></tr>
<tr class="memdesc:accd45b916470bc7f2c755be9d2cefb67"><td class="mdescLeft">&#160;</td><td class="mdescRight">ID of the thread in which this transaction started. <a href="#accd45b916470bc7f2c755be9d2cefb67">More...</a><br /></td></tr>
<tr class="separator:accd45b916470bc7f2c755be9d2cefb67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5783d9bc8aac264528d240dc52cf906b"><td class="memItemLeft" align="right" valign="top">DateTime&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#a5783d9bc8aac264528d240dc52cf906b">StartTime</a><code> [get]</code></td></tr>
<tr class="memdesc:a5783d9bc8aac264528d240dc52cf906b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start time of this transaction on this node. <a href="#a5783d9bc8aac264528d240dc52cf906b">More...</a><br /></td></tr>
<tr class="separator:a5783d9bc8aac264528d240dc52cf906b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a633de9b4660bf52bfa5367f40d09f539"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_transactions.html#a65f263fd54a52c13d159461b31bb9e55">TransactionIsolation</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#a633de9b4660bf52bfa5367f40d09f539">Isolation</a><code> [get]</code></td></tr>
<tr class="memdesc:a633de9b4660bf52bfa5367f40d09f539"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transaction isolation level. <a href="#a633de9b4660bf52bfa5367f40d09f539">More...</a><br /></td></tr>
<tr class="separator:a633de9b4660bf52bfa5367f40d09f539"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdee6325c0d979b048fdcdd941808701"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_transactions.html#a129c7a06db650bbc53d5cf551252b0b2">TransactionConcurrency</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#abdee6325c0d979b048fdcdd941808701">Concurrency</a><code> [get]</code></td></tr>
<tr class="memdesc:abdee6325c0d979b048fdcdd941808701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transaction concurrency mode. <a href="#abdee6325c0d979b048fdcdd941808701">More...</a><br /></td></tr>
<tr class="separator:abdee6325c0d979b048fdcdd941808701"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae76ff32cd9b28656bee58266ee72b2d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_transactions.html#ad7a45a0d52428aea09ce55cf007cf917">TransactionState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#ae76ff32cd9b28656bee58266ee72b2d0">State</a><code> [get]</code></td></tr>
<tr class="memdesc:ae76ff32cd9b28656bee58266ee72b2d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current transaction state. <a href="#ae76ff32cd9b28656bee58266ee72b2d0">More...</a><br /></td></tr>
<tr class="separator:ae76ff32cd9b28656bee58266ee72b2d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a080c742967f5795c811a1fba124099ff"><td class="memItemLeft" align="right" valign="top">TimeSpan&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#a080c742967f5795c811a1fba124099ff">Timeout</a><code> [get]</code></td></tr>
<tr class="memdesc:a080c742967f5795c811a1fba124099ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timeout for this transaction. If transaction times out prior to it's completion, an exception will be thrown. TimeSpan.Zero for infinite timeout. <a href="#a080c742967f5795c811a1fba124099ff">More...</a><br /></td></tr>
<tr class="separator:a080c742967f5795c811a1fba124099ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0c4d5bd63625453306b23ca3bbe6f3f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#ad0c4d5bd63625453306b23ca3bbe6f3f">IsRollbackOnly</a><code> [get]</code></td></tr>
<tr class="memdesc:ad0c4d5bd63625453306b23ca3bbe6f3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a value indicating whether this transaction was marked as rollback-only. <a href="#ad0c4d5bd63625453306b23ca3bbe6f3f">More...</a><br /></td></tr>
<tr class="separator:ad0c4d5bd63625453306b23ca3bbe6f3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Cache transactions support the following isolation levels: </p><ul>
<li>
TransactionIsolation.ReadCommitted isolation level means that always a committed value will be provided for read operations. With this isolation level values are always read from cache global memory or persistent store every time a value is accessed. In other words, if the same key is accessed more than once within the same transaction, it may have different value every time since global cache memory may be updated concurrently by other threads. </li>
<li>
TransactionIsolation.RepeatableRead isolation level means that if a value was read once within transaction, then all consecutive reads will provide the same in-transaction value. With this isolation level accessed values are stored within in-transaction memory, so consecutive access to the same key within the same transaction will always return the value that was previously read or updated within this transaction. If concurrency is TransactionConcurrency.Pessimistic, then a lock on the key will be acquired prior to accessing the value. </li>
<li>
TransactionIsolation.Serializable isolation level means that all transactions occur in a completely isolated fashion, as if all transactions in the system had executed serially, one after the other. Read access with this level happens the same way as with TransactionIsolation.RepeatableRead level. However, in TransactionConcurrency.Optimistic mode, if some transactions cannot be serially isolated from each other, then one winner will be picked and the other transactions in conflict will result in <code>TransactionOptimisticException</code> being thrown on Java side. </li>
</ul>
<p>Cache transactions support the following concurrency models: </p><ul>
<li>
<p class="startli">TransactionConcurrency.Optimistic - in this mode all cache operations are not distributed to other nodes until <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#aba386970d0f1fdcd1244bf46591304a5" title="Commits this transaction. ">ITransaction.Commit()</a>. In this mode one <code>PREPARE</code> message will be sent to participating cache nodes to start acquiring per-transaction locks, and once all nodes reply <code>OK</code> (i.e. <code>Phase 1</code> completes successfully), a one-way <code>COMMIT</code> message is sent without waiting for reply. If it is necessary to know whenever remote nodes have committed as well, synchronous commit or synchronous rollback should be enabled via <code>CacheConfiguration.setWriteSynchronizationMode</code>. </p>
<p class="endli">Note that in this mode, optimistic failures are only possible in conjunction with TransactionIsolation.Serializable isolation level. In all other cases, optimistic transactions will never fail optimistically and will always be identically ordered on all participating Ignite nodes. </p>
</li>
<li>
TransactionConcurrency.Pessimistic - in this mode a lock is acquired on all cache operations with exception of read operations in TransactionIsolation.ReadCommitted mode. All optional filters passed into cache operations will be evaluated after successful lock acquisition. Whenever <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html#aba386970d0f1fdcd1244bf46591304a5" title="Commits this transaction. ">ITransaction.Commit()</a> is called, a single one-way <code>COMMIT</code> message is sent to participating cache nodes without waiting for reply. Note that there is no reason for distributed <code>PREPARE</code> step, as all locks have been already acquired. Just like with optimistic mode, it is possible to configure synchronous commit or rollback and wait till transaction commits on all participating remote nodes. </li>
</ul>
<p>In addition to standard <code>CacheAtomicityMode.TRANSACTIONAL</code> behavior, Ignite also supports a lighter <code>CacheAtomicityMode.ATOMIC</code> mode as well. In this mode distributed transactions and distributed locking are not supported. Disabling transactions and locking allows to achieve much higher performance and throughput ratios. It is recommended that <code>CacheAtomicityMode.TRANSACTIONAL</code> mode is used whenever full <code>ACID</code>-compliant transactions are not needed. </p>
<p>You can use cache transactions as follows: </p><div class="fragment"><div class="line">ICacheTx tx = cache.TxStart(); </div>
<div class="line"></div>
<div class="line"><span class="keywordflow">try</span> </div>
<div class="line">{</div>
<div class="line"> <span class="keywordtype">int</span> v1 = cache&lt;string, int&gt;.Get(<span class="stringliteral">&quot;k1&quot;</span>);</div>
<div class="line"></div>
<div class="line"> <span class="comment">// Check if v1 satisfies some condition before doing a put.</span></div>
<div class="line"> <span class="keywordflow">if</span> (v1 &gt; 0)</div>
<div class="line"> cache.Put&lt;string, <span class="keywordtype">int</span>&gt;(<span class="stringliteral">&quot;k1&quot;</span>, 2);</div>
<div class="line"></div>
<div class="line"> cache.Removex(<span class="stringliteral">&quot;k2);</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral"> // Commit the transaction.</span></div>
<div class="line"><span class="stringliteral"> tx.Commit();</span></div>
<div class="line"><span class="stringliteral">}</span></div>
<div class="line"><span class="stringliteral">finally </span></div>
<div class="line"><span class="stringliteral">{</span></div>
<div class="line"><span class="stringliteral"> tx.Dispose();</span></div>
<div class="line"><span class="stringliteral">}</span></div>
</div><!-- fragment --> </div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ad7889f571949a33575749067f3a77dfb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Apache.Ignite.Core.Transactions.ITransaction.AddMeta&lt; TV &gt; </td>
<td>(</td>
<td class="paramtype">string&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TV&#160;</td>
<td class="paramname"><em>val</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>Metadata name.</td></tr>
<tr><td class="paramname">val</td><td>Metadata value.</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aba386970d0f1fdcd1244bf46591304a5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Apache.Ignite.Core.Transactions.ITransaction.Commit </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8700c30bff1ca96cfe1b9c6b3927072d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Task Apache.Ignite.Core.Transactions.ITransaction.CommitAsync </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac367fc6ee988d7948b0e999bec23ce3f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TV Apache.Ignite.Core.Transactions.ITransaction.Meta&lt; TV &gt; </td>
<td>(</td>
<td class="paramtype">string&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>Metadata name.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Metadata value.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">KeyNotFoundException</td><td>If metadata key was not found.</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ab3d32be35ef64968a3d7f32195fa9e20"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TV Apache.Ignite.Core.Transactions.ITransaction.RemoveMeta&lt; TV &gt; </td>
<td>(</td>
<td class="paramtype">string&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>Metadata name.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Value of removed metadata or default value for <code>V</code> type.</dd></dl>
</div>
</div>
<a class="anchor" id="a3d8b41a1d016f44fd86a2477f8d213c8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Apache.Ignite.Core.Transactions.ITransaction.Rollback </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a91c8b2c7d94fad564596482232e80848"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Task Apache.Ignite.Core.Transactions.ITransaction.RollbackAsync </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a495d08a23d723c439146f6fe20c8cf0c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool Apache.Ignite.Core.Transactions.ITransaction.SetRollbackonly </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>True if rollback-only flag was set as a result of this operation, false if it was already set prior to this call or could not be set because transaction is already finishing up committing or rolling back. </dd></dl>
</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a class="anchor" id="abdee6325c0d979b048fdcdd941808701"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_transactions.html#a129c7a06db650bbc53d5cf551252b0b2">TransactionConcurrency</a> Apache.Ignite.Core.Transactions.ITransaction.Concurrency</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a633de9b4660bf52bfa5367f40d09f539"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_transactions.html#a65f263fd54a52c13d159461b31bb9e55">TransactionIsolation</a> Apache.Ignite.Core.Transactions.ITransaction.Isolation</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad0c4d5bd63625453306b23ca3bbe6f3f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool Apache.Ignite.Core.Transactions.ITransaction.IsRollbackOnly</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aad4adc299a54792dd4a9b3b2f5782671"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Guid Apache.Ignite.Core.Transactions.ITransaction.NodeId</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Originating node ID. </p>
</div>
</div>
<a class="anchor" id="a5783d9bc8aac264528d240dc52cf906b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">DateTime Apache.Ignite.Core.Transactions.ITransaction.StartTime</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae76ff32cd9b28656bee58266ee72b2d0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_transactions.html#ad7a45a0d52428aea09ce55cf007cf917">TransactionState</a> Apache.Ignite.Core.Transactions.ITransaction.State</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="accd45b916470bc7f2c755be9d2cefb67"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">long Apache.Ignite.Core.Transactions.ITransaction.ThreadId</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a080c742967f5795c811a1fba124099ff"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">TimeSpan Apache.Ignite.Core.Transactions.ITransaction.Timeout</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespace_apache.html">Apache</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite.html">Ignite</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core.html">Core</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_transactions.html">Transactions</a></li><li class="navelem"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction.html">ITransaction</a></li>
<li class="footer">Generated on Wed May 18 2016 16:44:13 for Apache Ignite.NET by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
</div>
</body>
</html>