blob: a1591957040852c5f05866bdc6a46eca64379c1e [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Interface ITransactionsClient
| Apache Ignite.NET </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Interface ITransactionsClient
| Apache Ignite.NET ">
<meta name="generator" content="docfx 2.58.4.0">
<link rel="shortcut icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/docfx.vendor.css">
<link rel="stylesheet" href="../styles/docfx.css">
<link rel="stylesheet" href="../styles/main.css">
<meta property="docfx:navrel" content="../toc.html">
<meta property="docfx:tocrel" content="toc.html">
<meta property="docfx:rel" content="../">
</head>
<body data-spy="scroll" data-target="#affix" data-offset="120">
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search" id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</div>
</div>
</header>
<div class="container body-content">
<div id="search-results">
<div class="search-list">Search Results for <span></span></div>
<div class="sr-items">
<p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
</div>
<ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient">
<h1 id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient" class="text-break">Interface ITransactionsClient
</h1>
<div class="markdown level0 summary"><p>Ignite Thin Client transactions facade.
<p>
Transactions are bound to the thread started the transaction. After that, each cache operation within this thread
will belong to the corresponding transaction until the transaction is committed, rolled back or closed.
<p>
Should not be used with async calls.
<example>
You can use cache transactions as follows:<p>
<pre><code>using (var tx = igniteClient.GetTransactions().TxStart())
{
int v1 = cache&lt;string, int>.Get(&quot;k1&quot;);
// Check if v1 satisfies some condition before doing a put.
if (v1 > 0)
cache.Put&lt;string, int>(&quot;k1&quot;, 2);
cache.Remove(&quot;k2&quot;);
// Commit the transaction.
tx.Commit();
}</code></pre>
<p></example></p>
<p>Alternatively, <see cref="!:TransactionScope"></see> can be used to start Ignite transactions.
<example><p>
<pre><code>using (var ts = new TransactionScope())
{
int v1 = cache&lt;string, int>.Get(&quot;k1&quot;);
// Check if v1 satisfies some condition before doing a put.
if (v1 > 0)
cache.Put&lt;string, int>(&quot;k1&quot;, 2);
cache.Remove(&quot;k2&quot;);
// Commit the transaction.
ts.Complete();
}</code></pre>
<p></example></p>
</div>
<div class="markdown level0 conceptual"></div>
<h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Client.Transactions.html">Apache.Ignite.Core.Client.Transactions</a></h6>
<h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
<h5 id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public interface ITransactionsClient</code></pre>
</div>
<h3 id="properties">Properties
</h3>
<a id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_DefaultTimeout_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.DefaultTimeout*"></a>
<h4 id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_DefaultTimeout" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.DefaultTimeout">DefaultTimeout</h4>
<div class="markdown level1 summary"><p>Gets the default transaction timeout.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">TimeSpan DefaultTimeout { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">TimeSpan</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_DefaultTransactionConcurrency_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.DefaultTransactionConcurrency*"></a>
<h4 id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_DefaultTransactionConcurrency" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.DefaultTransactionConcurrency">DefaultTransactionConcurrency</h4>
<div class="markdown level1 summary"><p>Gets the default transaction concurrency.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">TransactionConcurrency DefaultTransactionConcurrency { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Transactions.TransactionConcurrency.html">TransactionConcurrency</a></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_DefaultTransactionIsolation_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.DefaultTransactionIsolation*"></a>
<h4 id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_DefaultTransactionIsolation" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.DefaultTransactionIsolation">DefaultTransactionIsolation</h4>
<div class="markdown level1 summary"><p>Gets the default transaction isolation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">TransactionIsolation DefaultTransactionIsolation { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Transactions.TransactionIsolation.html">TransactionIsolation</a></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_Tx_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.Tx*"></a>
<h4 id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_Tx" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.Tx">Tx</h4>
<div class="markdown level1 summary"><p>Gets transaction started by this thread or null if this thread does not have a transaction.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">ITransactionClient Tx { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Client.Transactions.ITransactionClient.html">ITransactionClient</a></td>
<td><p>Transaction started by this thread or null if this thread does not have a transaction.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="methods">Methods
</h3>
<a id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_TxStart_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.TxStart*"></a>
<h4 id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_TxStart" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.TxStart">TxStart()</h4>
<div class="markdown level1 summary"><p>Starts a new transaction with the default isolation level, concurrency and timeout.
<p>
Default values for transaction isolation level, concurrency and timeout can be configured via
<a class="xref" href="Apache.Ignite.Core.Client.Transactions.TransactionClientConfiguration.html">TransactionClientConfiguration</a>.
<p>
Should not be used with async calls.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">ITransactionClient TxStart()</code></pre>
</div>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Client.Transactions.ITransactionClient.html">ITransactionClient</a></td>
<td><p>New transaction.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_TxStart_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.TxStart*"></a>
<h4 id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_TxStart_Apache_Ignite_Core_Transactions_TransactionConcurrency_Apache_Ignite_Core_Transactions_TransactionIsolation_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.TxStart(Apache.Ignite.Core.Transactions.TransactionConcurrency,Apache.Ignite.Core.Transactions.TransactionIsolation)">TxStart(TransactionConcurrency, TransactionIsolation)</h4>
<div class="markdown level1 summary"><p>Starts a new transaction with the specified concurrency and isolation.
<p>
Should not be used with async calls.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">ITransactionClient TxStart(TransactionConcurrency concurrency, TransactionIsolation isolation)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Transactions.TransactionConcurrency.html">TransactionConcurrency</a></td>
<td><span class="parametername">concurrency</span></td>
<td><p>Concurrency.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Transactions.TransactionIsolation.html">TransactionIsolation</a></td>
<td><span class="parametername">isolation</span></td>
<td><p>Isolation.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Client.Transactions.ITransactionClient.html">ITransactionClient</a></td>
<td><p>New transaction.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_TxStart_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.TxStart*"></a>
<h4 id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_TxStart_Apache_Ignite_Core_Transactions_TransactionConcurrency_Apache_Ignite_Core_Transactions_TransactionIsolation_TimeSpan_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.TxStart(Apache.Ignite.Core.Transactions.TransactionConcurrency,Apache.Ignite.Core.Transactions.TransactionIsolation,TimeSpan)">TxStart(TransactionConcurrency, TransactionIsolation, TimeSpan)</h4>
<div class="markdown level1 summary"><p>Starts a new transaction with the specified concurrency, isolation and timeout.
<p>
Should not be used with async calls.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">ITransactionClient TxStart(TransactionConcurrency concurrency, TransactionIsolation isolation, TimeSpan timeout)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Transactions.TransactionConcurrency.html">TransactionConcurrency</a></td>
<td><span class="parametername">concurrency</span></td>
<td><p>Concurrency.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Transactions.TransactionIsolation.html">TransactionIsolation</a></td>
<td><span class="parametername">isolation</span></td>
<td><p>Isolation.</p>
</td>
</tr>
<tr>
<td><span class="xref">TimeSpan</span></td>
<td><span class="parametername">timeout</span></td>
<td><p>Timeout. TimeSpan. Zero for indefinite timeout.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Client.Transactions.ITransactionClient.html">ITransactionClient</a></td>
<td><p>New transaction.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_WithLabel_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.WithLabel*"></a>
<h4 id="Apache_Ignite_Core_Client_Transactions_ITransactionsClient_WithLabel_System_String_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.WithLabel(System.String)">WithLabel(String)</h4>
<div class="markdown level1 summary"><p>Returns instance of <a class="xref" href="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.html">ITransactionsClient</a> to mark a transaction instance with a special label.
The label is helpful for diagnostic and exposed to some diagnostic tools like
SYS.TRANSACTIONS system view, control.sh commands, JMX TransactionsMXBean,
long-running transactions dump in logs
and <a class="xref" href="Apache.Ignite.Core.Transactions.ITransaction.html#Apache_Ignite_Core_Transactions_ITransaction_Label">Label</a> via <a class="xref" href="Apache.Ignite.Core.Transactions.ITransactions.html#Apache_Ignite_Core_Transactions_ITransactions_GetLocalActiveTransactions">GetLocalActiveTransactions()</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">ITransactionsClient WithLabel(string label)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">label</span></td>
<td><p>Label.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.html">ITransactionsClient</a></td>
<td><a class="xref" href="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.html">ITransactionsClient</a>
</td>
</tr>
</tbody>
</table>
</article>
</div>
<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<h5>In This Article</h5>
<div></div>
</nav>
</div>
</div>
</div>
</div>
<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>
© 2015 - 2019 The Apache Software Foundation
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="../styles/docfx.vendor.js"></script>
<script type="text/javascript" src="../styles/docfx.js"></script>
<script type="text/javascript" src="../styles/main.js"></script>
</body>
</html>