<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Kudu C++ client API: kudu::client::KuduTransaction Class 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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</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 id="projectrow">
  <td id="projectalign">
   <div id="projectname">Kudu C++ client API
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>kudu</b></li><li class="navelem"><b>client</b></li><li class="navelem"><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classkudu_1_1client_1_1KuduTransaction-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">kudu::client::KuduTransaction Class Reference</div></div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="client_8h_source.html">client.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for kudu::client::KuduTransaction:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classkudu_1_1client_1_1KuduTransaction.png" alt=""/>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTransaction_1_1SerializationOptions.html">SerializationOptions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad79babbbd8bd296741fad2ed0adce55a" id="r_ad79babbbd8bd296741fad2ed0adce55a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#ad79babbbd8bd296741fad2ed0adce55a">CreateSession</a> (sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduSession.html">KuduSession</a> &gt; *session) WARN_UNUSED_RESULT</td></tr>
<tr class="separator:ad79babbbd8bd296741fad2ed0adce55a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf0b693b1ff9a44399bea3ed1f22f495" id="r_aaf0b693b1ff9a44399bea3ed1f22f495"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#aaf0b693b1ff9a44399bea3ed1f22f495">Commit</a> () WARN_UNUSED_RESULT</td></tr>
<tr class="separator:aaf0b693b1ff9a44399bea3ed1f22f495"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4347410b4f7e6a70ebc2f66b06c569ce" id="r_a4347410b4f7e6a70ebc2f66b06c569ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#a4347410b4f7e6a70ebc2f66b06c569ce">StartCommit</a> () WARN_UNUSED_RESULT</td></tr>
<tr class="separator:a4347410b4f7e6a70ebc2f66b06c569ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69b6da1caffdba1f0610f5b8ef00e4ee" id="r_a69b6da1caffdba1f0610f5b8ef00e4ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#a69b6da1caffdba1f0610f5b8ef00e4ee">IsCommitComplete</a> (bool *is_complete, <a class="el" href="classkudu_1_1Status.html">Status</a> *completion_status) WARN_UNUSED_RESULT</td></tr>
<tr class="separator:a69b6da1caffdba1f0610f5b8ef00e4ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68b5c532b44f84beabe7ae7ca46889f8" id="r_a68b5c532b44f84beabe7ae7ca46889f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#a68b5c532b44f84beabe7ae7ca46889f8">Rollback</a> () WARN_UNUSED_RESULT</td></tr>
<tr class="separator:a68b5c532b44f84beabe7ae7ca46889f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad55ec331c2e0471dca2e73b30750b5f5" id="r_ad55ec331c2e0471dca2e73b30750b5f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#ad55ec331c2e0471dca2e73b30750b5f5">Serialize</a> (std::string *serialized_txn, const <a class="el" href="classkudu_1_1client_1_1KuduTransaction_1_1SerializationOptions.html">SerializationOptions</a> &amp;options=<a class="el" href="classkudu_1_1client_1_1KuduTransaction_1_1SerializationOptions.html">SerializationOptions</a>()) const WARN_UNUSED_RESULT</td></tr>
<tr class="separator:ad55ec331c2e0471dca2e73b30750b5f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:acacb5462953dcbd8248241759ee0ba52" id="r_acacb5462953dcbd8248241759ee0ba52"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#acacb5462953dcbd8248241759ee0ba52">Deserialize</a> (const sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduClient.html">KuduClient</a> &gt; &amp;client, const std::string &amp;serialized_txn, sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a> &gt; *txn) WARN_UNUSED_RESULT</td></tr>
<tr class="separator:acacb5462953dcbd8248241759ee0ba52"><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>A class representing a multi-row transaction in Kudu. Once created using <code>KuduClient::BeginTransaction()</code> or <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#acacb5462953dcbd8248241759ee0ba52">KuduTransaction::Deserialize</a></code> method, <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a></code> instance can be used to commit or rollback the underlying multi-row transaction and create a transactional session.</p>
<dl class="section note"><dt>Note</dt><dd>The <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a></code> should be kept in scope to maintain automatic keep-alive heartbeating for the corresponding transaction. Once this object goes out of scope, the heartbeating stops and the transaction may automatically be aborted soon if no other clients do the heartbeating.</dd>
<dd>
There isn't any automation to rollback or commit the underlying transaction upon destruction of an instance of this class.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>The set of methods in this class, their behavior, and signatures are experimental and may change or disappear in future. The class itself is experimental and may change its lineage, API status, or disappear in future. </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aaf0b693b1ff9a44399bea3ed1f22f495" name="aaf0b693b1ff9a44399bea3ed1f22f495"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf0b693b1ff9a44399bea3ed1f22f495">&#9670;&#160;</a></span>Commit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduTransaction::Commit </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Commit the transaction.</p>
<p>This method automatically flushes all transactional sessions created off this transaction handle via <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#ad79babbbd8bd296741fad2ed0adce55a">KuduTransaction::CreateSession()</a></code>, initiates committing the transaction, and then waits for the commit phase to finalize. The flushing of all the derivative transactional sessions helps avoiding unintentional data loss when those sessions are not flushed explicitly before committing. No new operations should be pushed into the derivative transactional sessions created off this handle once the method has been called.</p>
<dl class="section return"><dt>Returns</dt><dd>Returns <code><a class="el" href="classkudu_1_1Status.html#adaff3248b2f66041d0a7dd59f118b7ac">Status::OK()</a></code> if all the stages of the transaction's commit sequence were successful, i.e. the status of various pre-commit work, the status of starting the commit phase, the status of the commit phase itself once it's completed. Returns non-OK status of the very first failed stage of the transaction's commit sequence. </dd></dl>

</div>
</div>
<a id="ad79babbbd8bd296741fad2ed0adce55a" name="ad79babbbd8bd296741fad2ed0adce55a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad79babbbd8bd296741fad2ed0adce55a">&#9670;&#160;</a></span>CreateSession()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduTransaction::CreateSession </td>
          <td>(</td>
          <td class="paramtype">sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduSession.html">KuduSession</a> &gt; *&#160;</td>
          <td class="paramname"><em>session</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a new <code><a class="el" href="classkudu_1_1client_1_1KuduSession.html" title="Representation of a Kudu client session.">KuduSession</a></code> with "transactional" semantics.</p>
<p>Every write operation performed in the context of the newly created "transactional" session becomes a part of the corresponding multi-row transaction represented by an instance of this class. Multiple sessions can be created in the context of the same multi-row distributed transaction by the same or different Kudu clients residing on a single or multiple nodes.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">session</td><td>The result session object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>

</div>
</div>
<a id="acacb5462953dcbd8248241759ee0ba52" name="acacb5462953dcbd8248241759ee0ba52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acacb5462953dcbd8248241759ee0ba52">&#9670;&#160;</a></span>Deserialize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduTransaction::Deserialize </td>
          <td>(</td>
          <td class="paramtype">const sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduClient.html">KuduClient</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>serialized_txn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a> &gt; *&#160;</td>
          <td class="paramname"><em>txn</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Re-create <a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a> object given its serialized representation.</p>
<p>This method doesn't perform any RPC under the hood. The newly created object automatically does or does not send keep-alive messages depending on the <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction_1_1SerializationOptions.html#a8b492133e20407e1242a229ecfb44e7d">KuduTransaction::SerializationOptions::enable_keepalive()</a></code> setting when the original <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a></code> object was serialized using <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#ad55ec331c2e0471dca2e73b30750b5f5">KuduTransaction::Serialize()</a></code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">client</td><td>Client instance to bound the result object to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">serialized_txn</td><td>String containing serialized representation of <a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a> object. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">txn</td><td>The result <a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a> object, wrapped into a smart pointer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>

</div>
</div>
<a id="a69b6da1caffdba1f0610f5b8ef00e4ee" name="a69b6da1caffdba1f0610f5b8ef00e4ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69b6da1caffdba1f0610f5b8ef00e4ee">&#9670;&#160;</a></span>IsCommitComplete()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduTransaction::IsCommitComplete </td>
          <td>(</td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>is_complete</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkudu_1_1Status.html">Status</a> *&#160;</td>
          <td class="paramname"><em>completion_status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether the commit has completed i.e. no longer in progress of finalizing.</p>
<p>This method checks for the transaction's commit status, setting the <code>is_complete</code> out parameter to <code>true</code> and the <code>completion_status</code> parameter to the finalization status of the commit process, assuming the method returning <code><a class="el" href="classkudu_1_1Status.html#adaff3248b2f66041d0a7dd59f118b7ac">Status::OK()</a></code>. The happy case is when the method returns <code><a class="el" href="classkudu_1_1Status.html#adaff3248b2f66041d0a7dd59f118b7ac">Status::OK()</a></code>, <code>is_complete</code> is set to <code>true</code> and <code>completion_status</code> is set to <code><a class="el" href="classkudu_1_1Status.html#adaff3248b2f66041d0a7dd59f118b7ac">Status::OK()</a></code> &ndash; that means the transaction has successfully finalized its commit phase.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">is_complete</td><td>Whether the process of finalizing the commit of the transaction has ended, including both success and failure outcomes. In other words, the value of this out parameter indicates whether the finalization of the transaction's commit phase is no longer in progress: it already succeeded or failed by the time of processing the request. This parameter is assigned a meaningful value iff the method returns <code><a class="el" href="classkudu_1_1Status.html#adaff3248b2f66041d0a7dd59f118b7ac">Status::OK()</a></code>. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">completion_status</td><td>The status of finalization of the transaction's commit phase: <ul>
<li><a class="el" href="classkudu_1_1Status.html#adaff3248b2f66041d0a7dd59f118b7ac">Status::OK()</a> if the commit phase successfully finalized </li>
<li>non-OK status if the commit phase failed to finalize This parameter is assigned a meaningful value iff the method returns <code><a class="el" href="classkudu_1_1Status.html#adaff3248b2f66041d0a7dd59f118b7ac">Status::OK()</a></code>. </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result status of querying the transaction's commit status. Both <code>is_complete</code> and <code>completion_status</code> are set iff the method returns <code><a class="el" href="classkudu_1_1Status.html#adaff3248b2f66041d0a7dd59f118b7ac">Status::OK()</a></code>. </dd></dl>

</div>
</div>
<a id="a68b5c532b44f84beabe7ae7ca46889f8" name="a68b5c532b44f84beabe7ae7ca46889f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68b5c532b44f84beabe7ae7ca46889f8">&#9670;&#160;</a></span>Rollback()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduTransaction::Rollback </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Rollback/abort the transaction.</p>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>

</div>
</div>
<a id="ad55ec331c2e0471dca2e73b30750b5f5" name="ad55ec331c2e0471dca2e73b30750b5f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad55ec331c2e0471dca2e73b30750b5f5">&#9670;&#160;</a></span>Serialize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduTransaction::Serialize </td>
          <td>(</td>
          <td class="paramtype">std::string *&#160;</td>
          <td class="paramname"><em>serialized_txn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classkudu_1_1client_1_1KuduTransaction_1_1SerializationOptions.html">SerializationOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em> = <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction_1_1SerializationOptions.html">SerializationOptions</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Export the information on this transaction in a serialized form.</p>
<p>The serialized information on a Kudu transaction can be passed among different Kudu clients running at multiple nodes, so those separate Kudu clients can perform operations to be a part of the same distributed transaction. The resulting string is referred as "transaction token" and can be deserialized into a transaction handle (i.e. an object of the <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a></code> class) via the <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#acacb5462953dcbd8248241759ee0ba52">KuduTransaction::Deserialize()</a></code> method.</p>
<p>This method doesn't perform any RPC under the hood. The behavior of this method is controlled by <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction_1_1SerializationOptions.html">SerializationOptions</a></code> set for this transaction handle.</p>
<dl class="section note"><dt>Note</dt><dd>The representation of the data in the serialized form (i.e. the format of a Kudu transaction token) is an implementation detail, not a part of the public API.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">serialized_txn</td><td>Result string to output the serialized transaction information. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options to use when serializing the handle (optional). If omitted, the default serialization parameters are used &ndash; the same as it would be for a default-constructed instance of <a class="el" href="classkudu_1_1client_1_1KuduTransaction_1_1SerializationOptions.html">SerializationOptions</a> used for this parameter. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>

</div>
</div>
<a id="a4347410b4f7e6a70ebc2f66b06c569ce" name="a4347410b4f7e6a70ebc2f66b06c569ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4347410b4f7e6a70ebc2f66b06c569ce">&#9670;&#160;</a></span>StartCommit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduTransaction::StartCommit </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Start committing this transaction, but don't wait for the commit phase to finalize.</p>
<p>This method initiates the commit phase for this transaction, not waiting for the commit phase to finalize. It requires all the transactional sessions created off this handle via <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#ad79babbbd8bd296741fad2ed0adce55a">KuduTransaction::CreateSession()</a></code> to be flushed already. No new operations should be pushed into the derivative transactional sessions created off this handle once the method has been called. To check for the transaction's commit status, use the <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#a69b6da1caffdba1f0610f5b8ef00e4ee">KuduTransaction::IsCommitComplete()</a></code> method.</p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classkudu_1_1Status.html" title="A representation of an operation&#39;s outcome.">Status</a> of starting the commit phase for this transaction if all the transactional sessions created off this handle are flushed, otherwise returns <code><a class="el" href="classkudu_1_1Status.html#a65232f9f7de16f12db13e6c55137c48b">Status::IllegalState()</a></code>. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/kudu/client/<a class="el" href="client_8h_source.html">client.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/>
<address class="footer">
  <small>Generated for Kudu version 1.17.0 on Mon Sep 4 2023 19:49:30 by Doxygen 1.9.8</small>
  <br>
  <small>Copyright © 2023 The Apache Software Foundation.</small>
</address>
</body>
</html>
