<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.5.0/javadoc/org/apache/ignite/transactions/package-frame.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

<!-- Generated by javadoc (1.8.0_77) on Wed May 23 17:56:20 UTC 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.ignite.transactions (Ignite 2.5.0)</title>
<meta name="date" content="2018-05-23">
<link rel="stylesheet" type="text/css" href="../../../../javadoc.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>

<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>
<h1 class="bar"><a href="../../../../org/apache/ignite/transactions/package-summary.html" target="classFrame">org.apache.ignite.transactions</a></h1>
<div class="indexContainer">
<h2 title="Interfaces">Interfaces</h2>
<ul title="Interfaces">
<li><a href="Transaction.html" title="interface in org.apache.ignite.transactions" target="classFrame"><span class="interfaceName">Transaction</span></a></li>
<li><a href="TransactionMetrics.html" title="interface in org.apache.ignite.transactions" target="classFrame"><span class="interfaceName">TransactionMetrics</span></a></li>
</ul>
<h2 title="Enums">Enums</h2>
<ul title="Enums">
<li><a href="TransactionConcurrency.html" title="enum in org.apache.ignite.transactions" target="classFrame">TransactionConcurrency</a></li>
<li><a href="TransactionIsolation.html" title="enum in org.apache.ignite.transactions" target="classFrame">TransactionIsolation</a></li>
<li><a href="TransactionState.html" title="enum in org.apache.ignite.transactions" target="classFrame">TransactionState</a></li>
</ul>
<h2 title="Exceptions">Exceptions</h2>
<ul title="Exceptions">
<li><a href="TransactionDeadlockException.html" title="class in org.apache.ignite.transactions" target="classFrame">TransactionDeadlockException</a></li>
<li><a href="TransactionException.html" title="class in org.apache.ignite.transactions" target="classFrame">TransactionException</a></li>
<li><a href="TransactionHeuristicException.html" title="class in org.apache.ignite.transactions" target="classFrame">TransactionHeuristicException</a></li>
<li><a href="TransactionOptimisticException.html" title="class in org.apache.ignite.transactions" target="classFrame">TransactionOptimisticException</a></li>
<li><a href="TransactionRollbackException.html" title="class in org.apache.ignite.transactions" target="classFrame">TransactionRollbackException</a></li>
<li><a href="TransactionTimeoutException.html" title="class in org.apache.ignite.transactions" target="classFrame">TransactionTimeoutException</a></li>
</ul>
</div>
</body>
</html>
