﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.7.0/dotnetdoc/api/Apache.Ignite.Core.Ignition.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class Ignition
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class Ignition
   | 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.Ignition">
  
  
  <h1 id="Apache_Ignite_Core_Ignition" data-uid="Apache.Ignite.Core.Ignition" class="text-break">Class Ignition
  </h1>
  <div class="markdown level0 summary"><p>This class defines a factory for the main Ignite API.
<p>
Use <a class="xref" href="Apache.Ignite.Core.Ignition.html#Apache_Ignite_Core_Ignition_Start">Start()</a> method to start Ignite with default configuration.
<p>
All members are thread-safe and may be used concurrently from multiple threads.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><span class="xref">Ignition</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.html">Apache.Ignite.Core</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
  <h5 id="Apache_Ignite_Core_Ignition_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static class Ignition</code></pre>
  </div>
  <h3 id="fields">Fields
  </h3>
  <h4 id="Apache_Ignite_Core_Ignition_ClientConfigurationSectionName" data-uid="Apache.Ignite.Core.Ignition.ClientConfigurationSectionName">ClientConfigurationSectionName</h4>
  <div class="markdown level1 summary"><p>Default configuration section name.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public const string ClientConfigurationSectionName = &quot;igniteClientConfiguration&quot;</code></pre>
  </div>
  <h5 class="fieldValue">Field 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.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h4 id="Apache_Ignite_Core_Ignition_ConfigurationSectionName" data-uid="Apache.Ignite.Core.Ignition.ConfigurationSectionName">ConfigurationSectionName</h4>
  <div class="markdown level1 summary"><p>Default configuration section name.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public const string ConfigurationSectionName = &quot;igniteConfiguration&quot;</code></pre>
  </div>
  <h5 class="fieldValue">Field 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.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
  </h3>
  <a id="Apache_Ignite_Core_Ignition_ClientMode_" data-uid="Apache.Ignite.Core.Ignition.ClientMode*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_ClientMode" data-uid="Apache.Ignite.Core.Ignition.ClientMode">ClientMode</h4>
  <div class="markdown level1 summary"><p>Gets or sets a value indicating whether Ignite should be started in client mode.
Client nodes cannot hold data in caches.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool ClientMode { get; set; }</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.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Core_Ignition_GetAll_" data-uid="Apache.Ignite.Core.Ignition.GetAll*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_GetAll" data-uid="Apache.Ignite.Core.Ignition.GetAll">GetAll()</h4>
  <div class="markdown level1 summary"><p>Gets all started Ignite instances.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static ICollection&lt;IIgnite&gt; GetAll()</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><span class="xref">System.Collections.Generic.ICollection</span>&lt;<a class="xref" href="Apache.Ignite.Core.IIgnite.html">IIgnite</a>&gt;</td>
        <td><p>All Ignite instances.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_GetIgnite_" data-uid="Apache.Ignite.Core.Ignition.GetIgnite*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_GetIgnite" data-uid="Apache.Ignite.Core.Ignition.GetIgnite">GetIgnite()</h4>
  <div class="markdown level1 summary"><p>Gets the default Ignite instance with null name, or an instance with any name when there is only one.
<p>
Note that caller of this method should not assume that it will return the same instance every time.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgnite GetIgnite()</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.IIgnite.html">IIgnite</a></td>
        <td><p>Default Ignite instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Common.IgniteException.html">IgniteException</a></td>
        <td><p>When there is no matching Ignite instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_GetIgnite_" data-uid="Apache.Ignite.Core.Ignition.GetIgnite*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_GetIgnite_System_String_" data-uid="Apache.Ignite.Core.Ignition.GetIgnite(System.String)">GetIgnite(String)</h4>
  <div class="markdown level1 summary"><p>Gets a named Ignite instance. If Ignite name is <code>null</code> or empty string,
then default no-name Ignite will be returned. Note that caller of this method
should not assume that it will return the same instance every time.
<p>
Note that single process can run multiple Ignite instances and every Ignite instance (and its
node) can belong to a different grid. Ignite name defines what grid a particular Ignite
instance (and correspondingly its node) belongs to.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgnite GetIgnite(string name)</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">name</span></td>
        <td><p>Ignite name to which requested Ignite instance belongs. If <code>null</code>,
then Ignite instance belonging to a default no-name Ignite will be returned.</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.IIgnite.html">IIgnite</a></td>
        <td><p>An instance of named grid.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Common.IgniteException.html">IgniteException</a></td>
        <td><p>When there is no Ignite instance with specified name.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_Start_" data-uid="Apache.Ignite.Core.Ignition.Start*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_Start" data-uid="Apache.Ignite.Core.Ignition.Start">Start()</h4>
  <div class="markdown level1 summary"><p>Starts Ignite with default configuration. By default this method will
use Ignite configuration defined in <code>{IGNITE_HOME}/config/default-config.xml</code>
configuration file. If such file is not found, then all system defaults will be used.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgnite Start()</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.IIgnite.html">IIgnite</a></td>
        <td><p>Started Ignite.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_Start_" data-uid="Apache.Ignite.Core.Ignition.Start*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_Start_Apache_Ignite_Core_IgniteConfiguration_" data-uid="Apache.Ignite.Core.Ignition.Start(Apache.Ignite.Core.IgniteConfiguration)">Start(IgniteConfiguration)</h4>
  <div class="markdown level1 summary"><p>Starts Ignite with given configuration.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgnite Start(IgniteConfiguration cfg)</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.IgniteConfiguration.html">IgniteConfiguration</a></td>
        <td><span class="parametername">cfg</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.IIgnite.html">IIgnite</a></td>
        <td><p>Started Ignite.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_Start_" data-uid="Apache.Ignite.Core.Ignition.Start*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_Start_System_String_" data-uid="Apache.Ignite.Core.Ignition.Start(System.String)">Start(String)</h4>
  <div class="markdown level1 summary"><p>Starts all grids specified within given Spring XML configuration file. If Ignite with given name
is already started, then exception is thrown. In this case all instances that may
have been started so far will be stopped too.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgnite Start(string springCfgPath)</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">springCfgPath</span></td>
        <td><p>Spring XML configuration file path or URL. Note, that the path can be
absolute or relative to IGNITE_HOME.</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.IIgnite.html">IIgnite</a></td>
        <td><p>Started Ignite. If Spring configuration contains multiple Ignite instances, then the 1st
found instance is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_StartClient_" data-uid="Apache.Ignite.Core.Ignition.StartClient*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_StartClient" data-uid="Apache.Ignite.Core.Ignition.StartClient">StartClient()</h4>
  <div class="markdown level1 summary"><p>Reads <a class="xref" href="Apache.Ignite.Core.Client.IgniteClientConfiguration.html">IgniteClientConfiguration</a> from application configuration
<a class="xref" href="Apache.Ignite.Core.Client.IgniteClientConfigurationSection.html">IgniteClientConfigurationSection</a> with <a class="xref" href="Apache.Ignite.Core.Ignition.html#Apache_Ignite_Core_Ignition_ClientConfigurationSectionName">ClientConfigurationSectionName</a>
name and connects Ignite lightweight (thin) client to an Ignite node.
<p>
Thin client connects to an existing Ignite node with a socket and does not start JVM in process.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgniteClient StartClient()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Client.IIgniteClient.html">IIgniteClient</a></td>
        <td><p>Ignite client instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_StartClient_" data-uid="Apache.Ignite.Core.Ignition.StartClient*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_StartClient_Apache_Ignite_Core_Client_IgniteClientConfiguration_" data-uid="Apache.Ignite.Core.Ignition.StartClient(Apache.Ignite.Core.Client.IgniteClientConfiguration)">StartClient(IgniteClientConfiguration)</h4>
  <div class="markdown level1 summary"><p>Connects Ignite lightweight (thin) client to an Ignite node.
<p>
Thin client connects to an existing Ignite node with a socket and does not start JVM in process.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgniteClient StartClient(IgniteClientConfiguration clientConfiguration)</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.Client.IgniteClientConfiguration.html">IgniteClientConfiguration</a></td>
        <td><span class="parametername">clientConfiguration</span></td>
        <td><p>The client configuration.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Client.IIgniteClient.html">IIgniteClient</a></td>
        <td><p>Ignite client instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_StartClient_" data-uid="Apache.Ignite.Core.Ignition.StartClient*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_StartClient_System_String_" data-uid="Apache.Ignite.Core.Ignition.StartClient(System.String)">StartClient(String)</h4>
  <div class="markdown level1 summary"><p>Reads <a class="xref" href="Apache.Ignite.Core.Client.IgniteClientConfiguration.html">IgniteClientConfiguration</a> from application configuration
<a class="xref" href="Apache.Ignite.Core.Client.IgniteClientConfigurationSection.html">IgniteClientConfigurationSection</a> with specified name and connects
Ignite lightweight (thin) client to an Ignite node.
<p>
Thin client connects to an existing Ignite node with a socket and does not start JVM in process.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgniteClient StartClient(string sectionName)</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">sectionName</span></td>
        <td><p>Name of the configuration section.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Client.IIgniteClient.html">IIgniteClient</a></td>
        <td><p>Ignite client instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_StartClient_" data-uid="Apache.Ignite.Core.Ignition.StartClient*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_StartClient_System_String_System_String_" data-uid="Apache.Ignite.Core.Ignition.StartClient(System.String,System.String)">StartClient(String, String)</h4>
  <div class="markdown level1 summary"><p>Reads <a class="xref" href="Apache.Ignite.Core.IgniteConfiguration.html">IgniteConfiguration</a> from application configuration
<a class="xref" href="Apache.Ignite.Core.IgniteConfigurationSection.html">IgniteConfigurationSection</a> with specified name and starts Ignite.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgniteClient StartClient(string sectionName, string configPath)</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">sectionName</span></td>
        <td><p>Name of the section.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">configPath</span></td>
        <td><p>Path to the configuration file.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Client.IIgniteClient.html">IIgniteClient</a></td>
        <td><p>Started Ignite.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_StartFromApplicationConfiguration_" data-uid="Apache.Ignite.Core.Ignition.StartFromApplicationConfiguration*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_StartFromApplicationConfiguration" data-uid="Apache.Ignite.Core.Ignition.StartFromApplicationConfiguration">StartFromApplicationConfiguration()</h4>
  <div class="markdown level1 summary"><p>Reads <a class="xref" href="Apache.Ignite.Core.IgniteConfiguration.html">IgniteConfiguration</a> from application configuration
<a class="xref" href="Apache.Ignite.Core.IgniteConfigurationSection.html">IgniteConfigurationSection</a> with <a class="xref" href="Apache.Ignite.Core.Ignition.html#Apache_Ignite_Core_Ignition_ConfigurationSectionName">ConfigurationSectionName</a>
name and starts Ignite.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgnite StartFromApplicationConfiguration()</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.IIgnite.html">IIgnite</a></td>
        <td><p>Started Ignite.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_StartFromApplicationConfiguration_" data-uid="Apache.Ignite.Core.Ignition.StartFromApplicationConfiguration*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_StartFromApplicationConfiguration_System_String_" data-uid="Apache.Ignite.Core.Ignition.StartFromApplicationConfiguration(System.String)">StartFromApplicationConfiguration(String)</h4>
  <div class="markdown level1 summary"><p>Reads <a class="xref" href="Apache.Ignite.Core.IgniteConfiguration.html">IgniteConfiguration</a> from application configuration 
<a class="xref" href="Apache.Ignite.Core.IgniteConfigurationSection.html">IgniteConfigurationSection</a> with specified name and starts Ignite.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgnite StartFromApplicationConfiguration(string sectionName)</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">sectionName</span></td>
        <td><p>Name of the section.</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.IIgnite.html">IIgnite</a></td>
        <td><p>Started Ignite.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_StartFromApplicationConfiguration_" data-uid="Apache.Ignite.Core.Ignition.StartFromApplicationConfiguration*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_StartFromApplicationConfiguration_System_String_System_String_" data-uid="Apache.Ignite.Core.Ignition.StartFromApplicationConfiguration(System.String,System.String)">StartFromApplicationConfiguration(String, String)</h4>
  <div class="markdown level1 summary"><p>Reads <a class="xref" href="Apache.Ignite.Core.IgniteConfiguration.html">IgniteConfiguration</a> from application configuration
<a class="xref" href="Apache.Ignite.Core.IgniteConfigurationSection.html">IgniteConfigurationSection</a> with specified name and starts Ignite.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgnite StartFromApplicationConfiguration(string sectionName, string configPath)</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">sectionName</span></td>
        <td><p>Name of the section.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">configPath</span></td>
        <td><p>Path to the configuration file.</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.IIgnite.html">IIgnite</a></td>
        <td><p>Started Ignite.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_Stop_" data-uid="Apache.Ignite.Core.Ignition.Stop*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_Stop_System_String_System_Boolean_" data-uid="Apache.Ignite.Core.Ignition.Stop(System.String,System.Boolean)">Stop(String, Boolean)</h4>
  <div class="markdown level1 summary"><p>Stops named grid. If <code>cancel</code> flag is set to <code>true</code> then
all jobs currently executing on local node will be interrupted. If
grid name is <code>null</code>, then default no-name Ignite will be stopped.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool Stop(string name, bool cancel)</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">name</span></td>
        <td><p>Grid name. If <code>null</code>, then default no-name Ignite will be stopped.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">cancel</span></td>
        <td><p>If <code>true</code> then all jobs currently executing will be cancelled
by calling <code>ComputeJob.cancel</code>method.</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><span class="xref">System.Boolean</span></td>
        <td><p><code>true</code> if named Ignite instance was indeed found and stopped, <code>false</code>
    othwerwise (the instance with given <code>name</code> was not found).</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_StopAll_" data-uid="Apache.Ignite.Core.Ignition.StopAll*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_StopAll_System_Boolean_" data-uid="Apache.Ignite.Core.Ignition.StopAll(System.Boolean)">StopAll(Boolean)</h4>
  <div class="markdown level1 summary"><p>Stops <strong>all</strong> started grids. If <code>cancel</code> flag is set to <code>true</code> then
all jobs currently executing on local node will be interrupted.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void StopAll(bool cancel)</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.Boolean</span></td>
        <td><span class="parametername">cancel</span></td>
        <td><p>If <code>true</code> then all jobs currently executing will be cancelled
by calling <code>ComputeJob.Cancel()</code> method.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_TryGetIgnite_" data-uid="Apache.Ignite.Core.Ignition.TryGetIgnite*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_TryGetIgnite" data-uid="Apache.Ignite.Core.Ignition.TryGetIgnite">TryGetIgnite()</h4>
  <div class="markdown level1 summary"><p>Gets the default Ignite instance with null name, or an instance with any name when there is only one.
Returns null when there are no Ignite instances started, or when there are more than one,
and none of them has null name.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgnite TryGetIgnite()</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.IIgnite.html">IIgnite</a></td>
        <td><p>An instance of default no-name grid, or null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Ignition_TryGetIgnite_" data-uid="Apache.Ignite.Core.Ignition.TryGetIgnite*"></a>
  <h4 id="Apache_Ignite_Core_Ignition_TryGetIgnite_System_String_" data-uid="Apache.Ignite.Core.Ignition.TryGetIgnite(System.String)">TryGetIgnite(String)</h4>
  <div class="markdown level1 summary"><p>Gets a named Ignite instance, or <code>null</code> if none found. If Ignite name is <code>null</code> or empty string,
then default no-name Ignite will be returned. Note that caller of this method
should not assume that it will return the same instance every time.
<p>
Note that single process can run multiple Ignite instances and every Ignite instance (and its
node) can belong to a different grid. Ignite name defines what grid a particular Ignite
instance (and correspondingly its node) belongs to.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IIgnite TryGetIgnite(string name)</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">name</span></td>
        <td><p>Ignite name to which requested Ignite instance belongs. If <code>null</code>,
then Ignite instance belonging to a default no-name Ignite will be returned.</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.IIgnite.html">IIgnite</a></td>
        <td><p>An instance of named grid, or null.</p>
</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 - 2018 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>
