﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.10.0/dotnetdoc/api/Apache.Ignite.Core.Client.Transactions.ITransactionsClient.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">
<!-- Yandex.Metrika counter -->
    <script type="text/javascript" >
      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
    
      ym(72949126, "init", {
           clickmap:true,
           trackLinks:true,
           accurateTrackBounce:true,
           webvisor:true
      });
    </script>
    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
    <!-- /Yandex.Metrika counter -->
<script type='text/javascript'>
    window.__lo_site_id = 284467;
    
      (function() {
        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
        })();
      </script>

    <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.24.0.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="../">
    
  
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
    
      gtag('config', 'UA-61232409-1');
    </script></head>
  <body data-spy="scroll" data-target="#affix">
    <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"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></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, <span class="xref">System.Transactions.TransactionScope</span> 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">System.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_System_TimeSpan_" data-uid="Apache.Ignite.Core.Client.Transactions.ITransactionsClient.TxStart(Apache.Ignite.Core.Transactions.TransactionConcurrency,Apache.Ignite.Core.Transactions.TransactionIsolation,System.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">System.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><span class="xref">Apache.Ignite.Core.Client.Transactions.IClientTransactions</span>
</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">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </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>
