> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# kinetica.HAFailoverManager

> kinetica.HAFailoverManager — Kinetica C# API

<div className="kinetica-doxygen">
  <div className="contents">
    <p>Manages high availability failover for <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> connections. <a href="#details">More...</a></p>

    <table className="memberdecls">
      <tr className="heading">
        <td colSpan="2">
          <h2 className="groupheader">
            <div id="pub-methods" />

            Public Member Functions
          </h2>
        </td>
      </tr>

      <tr className="memitem:a39f22e0c9f5764692c11536162c72d15" id="r_a39f22e0c9f5764692c11536162c72d15">
        <td className="memItemLeft" align="right" valign="top"> </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a39f22e0c9f5764692c11536162c72d15">HAFailoverManager</a> ()</td>
      </tr>

      <tr className="memdesc:a39f22e0c9f5764692c11536162c72d15">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Creates a new <a className="el" href="/content/api/cs/classkinetica_1_1HAFailoverManager" title="Manages high availability failover for Kinetica connections.">HAFailoverManager</a>. <br /></td>
      </tr>

      <tr className="separator:a39f22e0c9f5764692c11536162c72d15">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:af1da76d1b0cede3401d07ca8fcae393b" id="r_af1da76d1b0cede3401d07ca8fcae393b">
        <td className="memItemLeft" align="right" valign="top">IList\< <a className="el" href="/content/api/cs/classkinetica_1_1ClusterAddressInfo">ClusterAddressInfo</a> > </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#af1da76d1b0cede3401d07ca8fcae393b">GetHostAddresses</a> ()</td>
      </tr>

      <tr className="memdesc:af1da76d1b0cede3401d07ca8fcae393b">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets all cluster addresses. <br /></td>
      </tr>

      <tr className="separator:af1da76d1b0cede3401d07ca8fcae393b">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:af3cfe2418a461786bf43bf3e26debf82" id="r_af3cfe2418a461786bf43bf3e26debf82">
        <td className="memItemLeft" align="right" valign="top">IList\< Uri > </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#af3cfe2418a461786bf43bf3e26debf82">GetUrls</a> ()</td>
      </tr>

      <tr className="memdesc:af3cfe2418a461786bf43bf3e26debf82">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the list of URLs of the active head ranks of all clusters. <br /></td>
      </tr>

      <tr className="separator:af3cfe2418a461786bf43bf3e26debf82">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:acd4f6933f09812b264850ac6695a57df" id="r_acd4f6933f09812b264850ac6695a57df">
        <td className="memItemLeft" align="right" valign="top">IList\< Uri > </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#acd4f6933f09812b264850ac6695a57df">GetFailoverUrls</a> ()</td>
      </tr>

      <tr className="memdesc:acd4f6933f09812b264850ac6695a57df">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the list of URLs in failover order. <br /></td>
      </tr>

      <tr className="separator:acd4f6933f09812b264850ac6695a57df">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a3a1a82d1dd7cb5fd643a02b0f3338581" id="r_a3a1a82d1dd7cb5fd643a02b0f3338581">
        <td className="memItemLeft" align="right" valign="top"><a className="el" href="/content/api/cs/classkinetica_1_1ClusterAddressInfo">ClusterAddressInfo</a>? </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a3a1a82d1dd7cb5fd643a02b0f3338581">GetClusterInfo</a> ()</td>
      </tr>

      <tr className="memdesc:a3a1a82d1dd7cb5fd643a02b0f3338581">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the active cluster's information. <br /></td>
      </tr>

      <tr className="separator:a3a1a82d1dd7cb5fd643a02b0f3338581">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:ab9b40c007d5c16dd1e3d317d6ab4bc03" id="r_ab9b40c007d5c16dd1e3d317d6ab4bc03">
        <td className="memItemLeft" align="right" valign="top">Uri? </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#ab9b40c007d5c16dd1e3d317d6ab4bc03">GetUrl</a> ()</td>
      </tr>

      <tr className="memdesc:ab9b40c007d5c16dd1e3d317d6ab4bc03">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the current active URL. <br /></td>
      </tr>

      <tr className="separator:ab9b40c007d5c16dd1e3d317d6ab4bc03">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:ad5bff60b79ac53e9dcebd59ad290c845" id="r_ad5bff60b79ac53e9dcebd59ad290c845">
        <td className="memItemLeft" align="right" valign="top">void </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#ad5bff60b79ac53e9dcebd59ad290c845">AddCluster</a> (<a className="el" href="/content/api/cs/classkinetica_1_1ClusterAddressInfo">ClusterAddressInfo</a> clusterInfo)</td>
      </tr>

      <tr className="memdesc:ad5bff60b79ac53e9dcebd59ad290c845">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Adds a cluster address to the manager. <br /></td>
      </tr>

      <tr className="separator:ad5bff60b79ac53e9dcebd59ad290c845">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a7d3899bd1ec00e54cd0ba3d139275e08" id="r_a7d3899bd1ec00e54cd0ba3d139275e08">
        <td className="memItemLeft" align="right" valign="top">void </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a7d3899bd1ec00e54cd0ba3d139275e08">Initialize</a> (IList\< Uri > urls, <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica">Kinetica</a>? kinetica=null)</td>
      </tr>

      <tr className="memdesc:a7d3899bd1ec00e54cd0ba3d139275e08">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Initializes the manager with a list of URLs. <br /></td>
      </tr>

      <tr className="separator:a7d3899bd1ec00e54cd0ba3d139275e08">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:af6c6ed9c43176b2c5c2007e4f7feae97" id="r_af6c6ed9c43176b2c5c2007e4f7feae97">
        <td className="memItemLeft" align="right" valign="top">Uri </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#af6c6ed9c43176b2c5c2007e4f7feae97">SwitchUrl</a> (Uri oldUrl, int oldNumClusterSwitches, Func\< Uri, bool >? isClusterUsable=null)</td>
      </tr>

      <tr className="memdesc:af6c6ed9c43176b2c5c2007e4f7feae97">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Switches to the next available cluster URL for HA failover. <br /></td>
      </tr>

      <tr className="separator:af6c6ed9c43176b2c5c2007e4f7feae97">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>
    </table>

    <table className="memberdecls">
      <tr className="heading">
        <td colSpan="2">
          <h2 className="groupheader">
            <div id="pub-static-attribs" />

            Static Public Attributes
          </h2>
        </td>
      </tr>

      <tr className="memitem:a935fd4499a8e2d95df2e59ef2a36f4ac" id="r_a935fd4499a8e2d95df2e59ef2a36f4ac">
        <td className="memItemLeft" align="right" valign="top">const int </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a935fd4499a8e2d95df2e59ef2a36f4ac">DefaultHostManagerPort</a> = 9300</td>
      </tr>

      <tr className="memdesc:a935fd4499a8e2d95df2e59ef2a36f4ac">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">The default port used for host-manager URLs (9300). <br /></td>
      </tr>

      <tr className="separator:a935fd4499a8e2d95df2e59ef2a36f4ac">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>
    </table>

    <table className="memberdecls">
      <tr className="heading">
        <td colSpan="2">
          <h2 className="groupheader">
            <div id="properties" />

            Properties
          </h2>
        </td>
      </tr>

      <tr className="memitem:aeffea558e61399662d57c3902be3e17e" id="r_aeffea558e61399662d57c3902be3e17e">
        <td className="memItemLeft" align="right" valign="top">bool </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#aeffea558e61399662d57c3902be3e17e">DisableFailover</a><code> \[get, set]</code></td>
      </tr>

      <tr className="memdesc:aeffea558e61399662d57c3902be3e17e">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Whether failover is disabled. <br /></td>
      </tr>

      <tr className="separator:aeffea558e61399662d57c3902be3e17e">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a7fe1397743ab4b1bd56de084205ce540" id="r_a7fe1397743ab4b1bd56de084205ce540">
        <td className="memItemLeft" align="right" valign="top">bool </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a7fe1397743ab4b1bd56de084205ce540">DisableAutoDiscovery</a><code> \[get, set]</code></td>
      </tr>

      <tr className="memdesc:a7fe1397743ab4b1bd56de084205ce540">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Whether auto-discovery is disabled. <br /></td>
      </tr>

      <tr className="separator:a7fe1397743ab4b1bd56de084205ce540">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:ac27b57617e71b02bd4949e656a454640" id="r_ac27b57617e71b02bd4949e656a454640">
        <td className="memItemLeft" align="right" valign="top">int </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#ac27b57617e71b02bd4949e656a454640">HostManagerPort</a><code> \[get, set]</code></td>
      </tr>

      <tr className="memdesc:ac27b57617e71b02bd4949e656a454640">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Host manager port. <br /></td>
      </tr>

      <tr className="separator:ac27b57617e71b02bd4949e656a454640">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:ad869cd22031cf9c51d4d47e9e9464f8f" id="r_ad869cd22031cf9c51d4d47e9e9464f8f">
        <td className="memItemLeft" align="right" valign="top"><a className="el" href="/content/api/cs/namespacekinetica#ade9b42f0376512c037150b7f747790fa">HAFailoverOrder</a> </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#ad869cd22031cf9c51d4d47e9e9464f8f">FailoverOrder</a><code> \[get, set]</code></td>
      </tr>

      <tr className="memdesc:ad869cd22031cf9c51d4d47e9e9464f8f">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">HA failover order. <br /></td>
      </tr>

      <tr className="separator:ad869cd22031cf9c51d4d47e9e9464f8f">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a1b20cb2a00fe0383b2b18f6a4d454062" id="r_a1b20cb2a00fe0383b2b18f6a4d454062">
        <td className="memItemLeft" align="right" valign="top">Regex? </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a1b20cb2a00fe0383b2b18f6a4d454062">HostnameRegex</a><code> \[get, set]</code></td>
      </tr>

      <tr className="memdesc:a1b20cb2a00fe0383b2b18f6a4d454062">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Optional hostname regex for filtering URLs. <br /></td>
      </tr>

      <tr className="separator:a1b20cb2a00fe0383b2b18f6a4d454062">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a63eed8c5d17cdc124eddf76e8a842879" id="r_a63eed8c5d17cdc124eddf76e8a842879">
        <td className="memItemLeft" align="right" valign="top">ILogger </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a63eed8c5d17cdc124eddf76e8a842879">Logger</a> = Microsoft.Extensions.Logging.Abstractions.NullLogger.Instance<code> \[get, set]</code></td>
      </tr>

      <tr className="memdesc:a63eed8c5d17cdc124eddf76e8a842879">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Optional logger (category "Kinetica.HAFailover"). <br /></td>
      </tr>

      <tr className="separator:a63eed8c5d17cdc124eddf76e8a842879">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:a3c6205e50fc6f8b9403b4008c824c7c7" id="r_a3c6205e50fc6f8b9403b4008c824c7c7">
        <td className="memItemLeft" align="right" valign="top">int </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#a3c6205e50fc6f8b9403b4008c824c7c7">HARingSize</a><code> \[get]</code></td>
      </tr>

      <tr className="memdesc:a3c6205e50fc6f8b9403b4008c824c7c7">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the number of clusters in the HA ring. <br /></td>
      </tr>

      <tr className="separator:a3c6205e50fc6f8b9403b4008c824c7c7">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>

      <tr className="memitem:ab6463b71bd36735baa686a3a6a5e11d5" id="r_ab6463b71bd36735baa686a3a6a5e11d5">
        <td className="memItemLeft" align="right" valign="top">int </td>
        <td className="memItemRight" valign="bottom"><a className="el" href="#ab6463b71bd36735baa686a3a6a5e11d5">NumClusterSwitches</a><code> \[get]</code></td>
      </tr>

      <tr className="memdesc:ab6463b71bd36735baa686a3a6a5e11d5">
        <td className="mdescLeft"> </td>
        <td className="mdescRight">Gets the number of times the client has switched to a different cluster. <br /></td>
      </tr>

      <tr className="separator:ab6463b71bd36735baa686a3a6a5e11d5">
        <td className="memSeparator" colSpan="2"> </td>
      </tr>
    </table>

    <div id="details" />

    <h2 className="groupheader">Detailed Description</h2>

    <div className="textblock">
      <p>Manages high availability failover for <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> connections. </p>
      <p>This class tracks multiple cluster addresses and handles failover logic when a cluster becomes unavailable. </p>
      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L194">194</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
    </div>

    <h2 className="groupheader">Constructor & Destructor Documentation</h2>

    <div id="a39f22e0c9f5764692c11536162c72d15" />

    <h2 className="memtitle"><span className="permalink"><a href="#a39f22e0c9f5764692c11536162c72d15">◆ </a></span>HAFailoverManager()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">kinetica.HAFailoverManager.HAFailoverManager </td>
                  <td>(</td>

                  <td className="paramname">
                    <span className="paramname">
                      <span className="em" />
                    </span>
                  </td>

                  <td>)</td>

                  <td />
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Creates a new <a className="el" href="/content/api/cs/classkinetica_1_1HAFailoverManager" title="Manages high availability failover for Kinetica connections.">HAFailoverManager</a>. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L248">248</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <h2 className="groupheader">Member Function Documentation</h2>

    <div id="ad5bff60b79ac53e9dcebd59ad290c845" />

    <h2 className="memtitle"><span className="permalink"><a href="#ad5bff60b79ac53e9dcebd59ad290c845">◆ </a></span>AddCluster()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">void kinetica.HAFailoverManager.AddCluster </td>
                  <td>(</td>
                  <td className="paramtype"><a className="el" href="/content/api/cs/classkinetica_1_1ClusterAddressInfo">ClusterAddressInfo</a></td>
                  <td className="paramname"><span className="paramname"><span className="em">clusterInfo</span></span></td>
                  <td>)</td>

                  <td />
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Adds a cluster address to the manager. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L360">360</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="a3a1a82d1dd7cb5fd643a02b0f3338581" />

    <h2 className="memtitle"><span className="permalink"><a href="#a3a1a82d1dd7cb5fd643a02b0f3338581">◆ </a></span>GetClusterInfo()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname"><a className="el" href="/content/api/cs/classkinetica_1_1ClusterAddressInfo">ClusterAddressInfo</a>? kinetica.HAFailoverManager.GetClusterInfo </td>
                  <td>(</td>

                  <td className="paramname">
                    <span className="paramname">
                      <span className="em" />
                    </span>
                  </td>

                  <td>)</td>

                  <td />
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Gets the active cluster's information. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L328">328</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="acd4f6933f09812b264850ac6695a57df" />

    <h2 className="memtitle"><span className="permalink"><a href="#acd4f6933f09812b264850ac6695a57df">◆ </a></span>GetFailoverUrls()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">IList\< Uri > kinetica.HAFailoverManager.GetFailoverUrls </td>
                  <td>(</td>

                  <td className="paramname">
                    <span className="paramname">
                      <span className="em" />
                    </span>
                  </td>

                  <td>)</td>

                  <td />
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Gets the list of URLs in failover order. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L314">314</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="af1da76d1b0cede3401d07ca8fcae393b" />

    <h2 className="memtitle"><span className="permalink"><a href="#af1da76d1b0cede3401d07ca8fcae393b">◆ </a></span>GetHostAddresses()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">IList\< <a className="el" href="/content/api/cs/classkinetica_1_1ClusterAddressInfo">ClusterAddressInfo</a> > kinetica.HAFailoverManager.GetHostAddresses </td>
                  <td>(</td>

                  <td className="paramname">
                    <span className="paramname">
                      <span className="em" />
                    </span>
                  </td>

                  <td>)</td>

                  <td />
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Gets all cluster addresses. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L292">292</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="ab9b40c007d5c16dd1e3d317d6ab4bc03" />

    <h2 className="memtitle"><span className="permalink"><a href="#ab9b40c007d5c16dd1e3d317d6ab4bc03">◆ </a></span>GetUrl()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">Uri? kinetica.HAFailoverManager.GetUrl </td>
                  <td>(</td>

                  <td className="paramname">
                    <span className="paramname">
                      <span className="em" />
                    </span>
                  </td>

                  <td>)</td>

                  <td />
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Gets the current active URL. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L352">352</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="af3cfe2418a461786bf43bf3e26debf82" />

    <h2 className="memtitle"><span className="permalink"><a href="#af3cfe2418a461786bf43bf3e26debf82">◆ </a></span>GetUrls()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">IList\< Uri > kinetica.HAFailoverManager.GetUrls </td>
                  <td>(</td>

                  <td className="paramname">
                    <span className="paramname">
                      <span className="em" />
                    </span>
                  </td>

                  <td>)</td>

                  <td />
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Gets the list of URLs of the active head ranks of all clusters. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L303">303</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="a7d3899bd1ec00e54cd0ba3d139275e08" />

    <h2 className="memtitle"><span className="permalink"><a href="#a7d3899bd1ec00e54cd0ba3d139275e08">◆ </a></span>Initialize()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">void kinetica.HAFailoverManager.Initialize </td>
                  <td>(</td>
                  <td className="paramtype">IList\< Uri ></td>
                  <td className="paramname"><span className="paramname"><span className="em">urls</span></span>, </td>
                </tr>

                <tr>
                  <td className="paramkey" />

                  <td />

                  <td className="paramtype"><a className="el" href="/content/api/cs/classkinetica_1_1Kinetica">Kinetica</a>?</td>
                  <td className="paramname"><span className="paramname"><span className="em">kinetica</span></span><span className="paramdefsep"> = </span><span className="paramdefval">null</span> )</td>
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Initializes the manager with a list of URLs. </p>

        <div className="dl params">
          <div className="dt">Parameters</div>

          <div className="dd">
            <table className="params">
              <tr>
                <td className="paramname">urls</td>
                <td>The URLs to initialize with</td>
              </tr>

              <tr>
                <td className="paramname">kinetica</td>
                <td>The <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> client for system property queries</td>
              </tr>
            </table>
          </div>
        </div>

        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L373">373</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="af6c6ed9c43176b2c5c2007e4f7feae97" />

    <h2 className="memtitle"><span className="permalink"><a href="#af6c6ed9c43176b2c5c2007e4f7feae97">◆ </a></span>SwitchUrl()</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">Uri kinetica.HAFailoverManager.SwitchUrl </td>
                  <td>(</td>
                  <td className="paramtype">Uri</td>
                  <td className="paramname"><span className="paramname"><span className="em">oldUrl</span></span>, </td>
                </tr>

                <tr>
                  <td className="paramkey" />

                  <td />

                  <td className="paramtype">int</td>
                  <td className="paramname"><span className="paramname"><span className="em">oldNumClusterSwitches</span></span>, </td>
                </tr>

                <tr>
                  <td className="paramkey" />

                  <td />

                  <td className="paramtype">Func\< Uri, bool >?</td>
                  <td className="paramname"><span className="paramname"><span className="em">isClusterUsable</span></span><span className="paramdefsep"> = </span><span className="paramdefval">null</span> )</td>
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Switches to the next available cluster URL for HA failover. </p>

        <div className="dl params">
          <div className="dt">Parameters</div>

          <div className="dd">
            <table className="params">
              <tr>
                <td className="paramname">oldUrl</td>
                <td>The URL that was in use when the failure occurred</td>
              </tr>

              <tr>
                <td className="paramname">oldNumClusterSwitches</td>
                <td>The switch count before this switch was initiated</td>
              </tr>

              <tr>
                <td className="paramname">isClusterUsable</td>
                <td>Predicate deciding whether a candidate cluster may be routed to: reachable, running, and not draining. A bare liveness ping is <span className="em">not</span> sufficient – a draining cluster answers a ping but rejects queries – so this must consult the cluster's drain state (see <code>Kinetica.IsClusterUsable</code>).</td>
              </tr>
            </table>
          </div>
        </div>

        <div className="dl section return">
          <div className="dt">Returns</div>
          <div className="dd">The new URL to use</div>
        </div>

        <div className="dl exception">
          <div className="dt">Exceptions</div>

          <div className="dd">
            <table className="exception">
              <tr>
                <td className="paramname"><a className="el" href="/content/api/cs/classkinetica_1_1KineticaException" title="The exception thrown by the Kinetica client when a request fails or the server returns an error.">KineticaException</a></td>
                <td>If failover is not possible</td>
              </tr>
            </table>
          </div>
        </div>

        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L775">775</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <h2 className="groupheader">Member Data Documentation</h2>

    <div id="a935fd4499a8e2d95df2e59ef2a36f4ac" />

    <h2 className="memtitle"><span className="permalink"><a href="#a935fd4499a8e2d95df2e59ef2a36f4ac">◆ </a></span>DefaultHostManagerPort</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">const int kinetica.HAFailoverManager.DefaultHostManagerPort = 9300</td>
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel static">static</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>The default port used for host-manager URLs (9300). </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L197">197</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <h2 className="groupheader">Property Documentation</h2>

    <div id="a7fe1397743ab4b1bd56de084205ce540" />

    <h2 className="memtitle"><span className="permalink"><a href="#a7fe1397743ab4b1bd56de084205ce540">◆ </a></span>DisableAutoDiscovery</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">bool kinetica.HAFailoverManager.DisableAutoDiscovery</td>
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel get">get</span><span className="mlabel set">set</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Whether auto-discovery is disabled. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L223">223</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="aeffea558e61399662d57c3902be3e17e" />

    <h2 className="memtitle"><span className="permalink"><a href="#aeffea558e61399662d57c3902be3e17e">◆ </a></span>DisableFailover</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">bool kinetica.HAFailoverManager.DisableFailover</td>
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel get">get</span><span className="mlabel set">set</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Whether failover is disabled. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L218">218</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="ad869cd22031cf9c51d4d47e9e9464f8f" />

    <h2 className="memtitle"><span className="permalink"><a href="#ad869cd22031cf9c51d4d47e9e9464f8f">◆ </a></span>FailoverOrder</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname"><a className="el" href="/content/api/cs/namespacekinetica#ade9b42f0376512c037150b7f747790fa">HAFailoverOrder</a> kinetica.HAFailoverManager.FailoverOrder</td>
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel get">get</span><span className="mlabel set">set</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>HA failover order. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L233">233</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="a3c6205e50fc6f8b9403b4008c824c7c7" />

    <h2 className="memtitle"><span className="permalink"><a href="#a3c6205e50fc6f8b9403b4008c824c7c7">◆ </a></span>HARingSize</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">int kinetica.HAFailoverManager.HARingSize</td>
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel get">get</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Gets the number of clusters in the HA ring. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L264">264</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="ac27b57617e71b02bd4949e656a454640" />

    <h2 className="memtitle"><span className="permalink"><a href="#ac27b57617e71b02bd4949e656a454640">◆ </a></span>HostManagerPort</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">int kinetica.HAFailoverManager.HostManagerPort</td>
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel get">get</span><span className="mlabel set">set</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Host manager port. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L228">228</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="a1b20cb2a00fe0383b2b18f6a4d454062" />

    <h2 className="memtitle"><span className="permalink"><a href="#a1b20cb2a00fe0383b2b18f6a4d454062">◆ </a></span>HostnameRegex</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">Regex? kinetica.HAFailoverManager.HostnameRegex</td>
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel get">get</span><span className="mlabel set">set</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Optional hostname regex for filtering URLs. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L238">238</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="a63eed8c5d17cdc124eddf76e8a842879" />

    <h2 className="memtitle"><span className="permalink"><a href="#a63eed8c5d17cdc124eddf76e8a842879">◆ </a></span>Logger</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">ILogger kinetica.HAFailoverManager.Logger = Microsoft.Extensions.Logging.Abstractions.NullLogger.Instance</td>
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel get">get</span><span className="mlabel set">set</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Optional logger (category "Kinetica.HAFailover"). </p>
        <p>Defaults to no-op when unset. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L243">243</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <div id="ab6463b71bd36735baa686a3a6a5e11d5" />

    <h2 className="memtitle"><span className="permalink"><a href="#ab6463b71bd36735baa686a3a6a5e11d5">◆ </a></span>NumClusterSwitches</h2>

    <div className="memitem">
      <div className="memproto">
        <table className="mlabels">
          <tr>
            <td className="mlabels-left">
              <table className="memname">
                <tr>
                  <td className="memname">int kinetica.HAFailoverManager.NumClusterSwitches</td>
                </tr>
              </table>
            </td>

            <td className="mlabels-right"> <span className="mlabels"><span className="mlabel get">get</span></span> </td>
          </tr>
        </table>
      </div>

      <div className="memdoc">
        <p>Gets the number of times the client has switched to a different cluster. </p>
        <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs#L278">278</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a>.</p>
      </div>
    </div>

    <hr />

    The documentation for this class was generated from the following file:

    <ul>
      <li>Kinetica/Utils/<a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/Utils/HAFailover.cs">HAFailover.cs</a></li>
    </ul>
  </div>
</div>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.