﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<!-- 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>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/dotnetdoc/api/Apache.Ignite.Core.Transactions.ITransactions.html" />

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Interface ITransactions
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Interface ITransactions
   | 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>
  (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 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.Transactions.ITransactions">
  
  
  <h1 id="Apache_Ignite_Core_Transactions_ITransactions" data-uid="Apache.Ignite.Core.Transactions.ITransactions" class="text-break">Interface ITransactions
  </h1>
  <div class="markdown level0 summary"><p>Transactions facade.
<p>
All members are thread-safe and may be used concurrently from multiple threads.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Transactions.html">Apache.Ignite.Core.Transactions</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
  <h5 id="Apache_Ignite_Core_Transactions_ITransactions_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public interface ITransactions</code></pre>
  </div>
  <h3 id="properties">Properties
  </h3>
  <a id="Apache_Ignite_Core_Transactions_ITransactions_DefaultTimeout_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.DefaultTimeout*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_DefaultTimeout" data-uid="Apache.Ignite.Core.Transactions.ITransactions.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_Transactions_ITransactions_DefaultTimeoutOnPartitionMapExchange_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.DefaultTimeoutOnPartitionMapExchange*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_DefaultTimeoutOnPartitionMapExchange" data-uid="Apache.Ignite.Core.Transactions.ITransactions.DefaultTimeoutOnPartitionMapExchange">DefaultTimeoutOnPartitionMapExchange</h4>
  <div class="markdown level1 summary"><p>Gets the default transaction timeout on partition map exchange.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">TimeSpan DefaultTimeoutOnPartitionMapExchange { 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_Transactions_ITransactions_DefaultTransactionConcurrency_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.DefaultTransactionConcurrency*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_DefaultTransactionConcurrency" data-uid="Apache.Ignite.Core.Transactions.ITransactions.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_Transactions_ITransactions_DefaultTransactionIsolation_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.DefaultTransactionIsolation*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_DefaultTransactionIsolation" data-uid="Apache.Ignite.Core.Transactions.ITransactions.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_Transactions_ITransactions_Tx_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.Tx*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_Tx" data-uid="Apache.Ignite.Core.Transactions.ITransactions.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">ITransaction 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.Transactions.ITransaction.html">ITransaction</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_Transactions_ITransactions_GetLocalActiveTransactions_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.GetLocalActiveTransactions*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_GetLocalActiveTransactions" data-uid="Apache.Ignite.Core.Transactions.ITransactions.GetLocalActiveTransactions">GetLocalActiveTransactions()</h4>
  <div class="markdown level1 summary"><p>Returns a list of active transactions initiated by this node.
<p>
Returned transactions do not support next operations:
<ul><li><a class="xref" href="Apache.Ignite.Core.Transactions.ITransaction.html#Apache_Ignite_Core_Transactions_ITransaction_Commit">Commit()</a>.</li><li><a class="xref" href="Apache.Ignite.Core.Transactions.ITransaction.html#Apache_Ignite_Core_Transactions_ITransaction_CommitAsync">CommitAsync()</a>.</li><li>Get <a class="xref" href="Apache.Ignite.Core.Transactions.ITransaction.html#Apache_Ignite_Core_Transactions_ITransaction_ThreadId">ThreadId</a>.</li><li>Get <a class="xref" href="Apache.Ignite.Core.Transactions.ITransaction.html#Apache_Ignite_Core_Transactions_ITransaction_StartTime">StartTime</a>.</li><li>Get <a class="xref" href="Apache.Ignite.Core.Transactions.ITransaction.html#Apache_Ignite_Core_Transactions_ITransaction_Meta__1_System_String_">Meta&lt;TV&gt;(String)</a>.</li><li>Get <a class="xref" href="Apache.Ignite.Core.Transactions.ITransaction.html#Apache_Ignite_Core_Transactions_ITransaction_AddMeta__1_System_String___0_">AddMeta&lt;TV&gt;(String, TV)</a>.</li><li>Get <a class="xref" href="Apache.Ignite.Core.Transactions.ITransaction.html#Apache_Ignite_Core_Transactions_ITransaction_RemoveMeta__1_System_String_">RemoveMeta&lt;TV&gt;(String)</a>.</li></ul></p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ITransactionCollection GetLocalActiveTransactions()</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.Transactions.ITransactionCollection.html">ITransactionCollection</a></td>
        <td><p>Collection of <a class="xref" href="Apache.Ignite.Core.Transactions.ITransactionCollection.html">ITransactionCollection</a></p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Transactions_ITransactions_GetMetrics_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.GetMetrics*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_GetMetrics" data-uid="Apache.Ignite.Core.Transactions.ITransactions.GetMetrics">GetMetrics()</h4>
  <div class="markdown level1 summary"><p>Gets the metrics.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ITransactionMetrics GetMetrics()</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.Transactions.ITransactionMetrics.html">ITransactionMetrics</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Transactions_ITransactions_ResetMetrics_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.ResetMetrics*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_ResetMetrics" data-uid="Apache.Ignite.Core.Transactions.ITransactions.ResetMetrics">ResetMetrics()</h4>
  <div class="markdown level1 summary"><p>Resets the metrics.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void ResetMetrics()</code></pre>
  </div>
  <a id="Apache_Ignite_Core_Transactions_ITransactions_TxStart_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.TxStart*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_TxStart" data-uid="Apache.Ignite.Core.Transactions.ITransactions.TxStart">TxStart()</h4>
  <div class="markdown level1 summary"><p>Starts a transaction with default isolation (<a class="xref" href="Apache.Ignite.Core.Transactions.ITransactions.html#Apache_Ignite_Core_Transactions_ITransactions_DefaultTransactionIsolation">DefaultTransactionIsolation</a>, 
concurrency (<a class="xref" href="Apache.Ignite.Core.Transactions.ITransactions.html#Apache_Ignite_Core_Transactions_ITransactions_DefaultTransactionConcurrency">DefaultTransactionConcurrency</a>), timeout (<a class="xref" href="Apache.Ignite.Core.Transactions.ITransactions.html#Apache_Ignite_Core_Transactions_ITransactions_DefaultTimeout">DefaultTimeout</a>), 
and invalidation policy.
All defaults are set in CacheConfiguration at startup.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ITransaction 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.Transactions.ITransaction.html">ITransaction</a></td>
        <td><p>New transaction.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Transactions_ITransactions_TxStart_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.TxStart*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_TxStart_Apache_Ignite_Core_Transactions_TransactionConcurrency_Apache_Ignite_Core_Transactions_TransactionIsolation_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.TxStart(Apache.Ignite.Core.Transactions.TransactionConcurrency,Apache.Ignite.Core.Transactions.TransactionIsolation)">TxStart(TransactionConcurrency, TransactionIsolation)</h4>
  <div class="markdown level1 summary"><p>Starts new transaction with the specified concurrency and isolation.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ITransaction 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.Transactions.ITransaction.html">ITransaction</a></td>
        <td><p>New transaction.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Transactions_ITransactions_TxStart_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.TxStart*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_TxStart_Apache_Ignite_Core_Transactions_TransactionConcurrency_Apache_Ignite_Core_Transactions_TransactionIsolation_System_TimeSpan_System_Int32_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.TxStart(Apache.Ignite.Core.Transactions.TransactionConcurrency,Apache.Ignite.Core.Transactions.TransactionIsolation,System.TimeSpan,System.Int32)">TxStart(TransactionConcurrency, TransactionIsolation, TimeSpan, Int32)</h4>
  <div class="markdown level1 summary"><p>Starts new transaction with the specified concurrency and isolation.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ITransaction TxStart(TransactionConcurrency concurrency, TransactionIsolation isolation, TimeSpan timeout, int txSize)</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>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">txSize</span></td>
        <td><p>Number of entries participating in transaction (may be approximate).</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.Transactions.ITransaction.html">ITransaction</a></td>
        <td><p>New transaction.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Transactions_ITransactions_WithLabel_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.WithLabel*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_WithLabel_System_String_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.WithLabel(System.String)">WithLabel(String)</h4>
  <div class="markdown level1 summary"><p>Returns instance of Ignite Transactions to mark a transaction with a special label.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ITransactions 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></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.Transactions.ITransactions.html">ITransactions</a></td>
        <td><a class="xref" href="Apache.Ignite.Core.Transactions.ITransactions.html">ITransactions</a></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Transactions_ITransactions_WithTracing_" data-uid="Apache.Ignite.Core.Transactions.ITransactions.WithTracing*"></a>
  <h4 id="Apache_Ignite_Core_Transactions_ITransactions_WithTracing" data-uid="Apache.Ignite.Core.Transactions.ITransactions.WithTracing">WithTracing()</h4>
  <div class="markdown level1 summary"><p>Returns instance of Ignite Transactions to enable tracing for a transaction.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ITransactions WithTracing()</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.Transactions.ITransactions.html">ITransactions</a></td>
        <td><a class="xref" href="Apache.Ignite.Core.Transactions.ITransactions.html">ITransactions</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">
              <!-- <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>
