<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX">
<link rel="canonical" href="https://ignite.apache.org/releases/1.5.0-b1/javadoc/org/apache/ignite/cluster/ClusterNode.html" />
<!-- Generated by javadoc (version 1.7.0_21) on Tue Dec 01 23:28:50 MSK 2015 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>ClusterNode (Ignite 1.5.0-b1)</title>
<meta name="date" content="2015-12-01">
<link rel="stylesheet" type="text/css" href="../../../../javadoc.css" title="Style">

<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>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="ClusterNode (Ignite 1.5.0-b1)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ClusterNode.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em>Ignite - In-Memory Data Fabric</em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/ignite/cluster/ClusterMetrics.html" title="interface in org.apache.ignite.cluster"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/ignite/cluster/ClusterStartNodeResult.html" title="interface in org.apache.ignite.cluster"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/ignite/cluster/ClusterNode.html" target="_top">Frames</a></li>
<li><a href="ClusterNode.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.ignite.cluster</div>
<h2 title="Interface ClusterNode" class="title">Interface ClusterNode</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="strong">ClusterNode</span></pre>
<div class="block">Interface representing a single cluster node. Use <a href="../../../../org/apache/ignite/cluster/ClusterNode.html#attribute(java.lang.String)"><code>attribute(String)</code></a> or
 <a href="../../../../org/apache/ignite/cluster/ClusterNode.html#metrics()"><code>metrics()</code></a> to get static and dynamic information about cluster nodes.
 <code>ClusterNode</code> list, which includes all nodes within task topology, is provided
 to <a href="../../../../org/apache/ignite/compute/ComputeTask.html#map(java.util.List, T)"><code>ComputeTask.map(List, Object)</code></a> method.
 <p>
 <h1 class="header">Cluster Node Attributes</h1>
 You can use cluster node attributes to provide static information about a node.
 This information is initialized once within a cluster, during the node startup, and
 remains the same throughout the lifetime of a node. Use
 <a href="../../../../org/apache/ignite/configuration/IgniteConfiguration.html#getUserAttributes()"><code>IgniteConfiguration.getUserAttributes()</code></a> method to initialize your custom
 node attributes at startup. Here is an example of how to assign an attribute to a node at startup:
 <pre name="code" class="xml">
 &lt;bean class="org.apache.ignite.configuration.IgniteConfiguration">
     ...
     &lt;property name="userAttributes">
         &lt;map>
             &lt;entry key="worker" value="true"/>
         &lt;/map>
     &lt;/property>
     ...
 &lt;/bean&gt;
 </pre>
 <p>
 The system adds the following attributes automatically:
 <ul>
 <li><code>{@link System#getProperties()}</code> - All system properties.</li>
 <li><code>{@link System#getenv(String)}</code> - All environment properties.</li>
 <li><code>org.ignite.build.ver</code> - Ignite build version.</li>
 <li><code>org.apache.ignite.jit.name</code> - Name of JIT compiler used.</li>
 <li><code>org.apache.ignite.net.itf.name</code> - Name of network interface.</li>
 <li><code>org.apache.ignite.user.name</code> - Operating system user name.</li>
 <li><code>org.apache.ignite.ignite.name</code> - Ignite name (see <a href="../../../../org/apache/ignite/Ignite.html#name()"><code>Ignite.name()</code></a>).</li>
 <li>
      <code>spiName.org.apache.ignite.spi.class</code> - SPI implementation class for every SPI,
      where <code>spiName</code> is the name of the SPI (see <a href="../../../../org/apache/ignite/spi/IgniteSpi.html#getName()"><code>IgniteSpi.getName()</code></a>.
 </li>
 <li>
      <code>spiName.org.apache.ignite.spi.ver</code> - SPI version for every SPI,
      where <code>spiName</code> is the name of the SPI (see <a href="../../../../org/apache/ignite/spi/IgniteSpi.html#getName()"><code>IgniteSpi.getName()</code></a>.
 </li>
 </ul>
 <p>
 Note that all System and Environment properties for all nodes are automatically included
 into node attributes. This gives you an ability to get any information specified
 in <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/System.html?is-external=true#getProperties()" title="class or interface in java.lang"><code>System.getProperties()</code></a> about any node. So for example, in order to print out
 information about Operating System for all nodes you would do the following:
 <pre name="code" class="java">
 for (ClusterNode node : ignite.cluster().nodes()) {
     System.out.println("Operating system name: " + node.getAttribute("os.name"));
     System.out.println("Operating system architecture: " + node.getAttribute("os.arch"));
     System.out.println("Operating system version: " + node.getAttribute("os.version"));
 }
 </pre>
 <p>
 <h1 class="header">Cluster Node Metrics</h1>
 Cluster node metrics (see <a href="../../../../org/apache/ignite/cluster/ClusterNode.html#metrics()"><code>metrics()</code></a>) are updated frequently for all nodes
 and can be used to get dynamic information about a node. The frequency of update
 is often directly related to the heartbeat exchange between nodes. So if, for example,
 default <a href="../../../../org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.html" title="class in org.apache.ignite.spi.discovery.tcp"><code>TcpDiscoverySpi</code></a> is used,
 the metrics data will be updated every <code>2</code> seconds by default.
 <p>
 Grid node metrics provide information that can frequently change,
 such as Heap and Non-Heap memory utilization, CPU load, number of active and waiting
 grid jobs, etc... This information can become useful during job collision resolution or
 <a href="../../../../org/apache/ignite/compute/ComputeTask.html#map(java.util.List, T)"><code>ComputeTask.map(List, Object)</code></a> operation when jobs are
 assigned to remote nodes for execution.
 <p>
 Local node metrics are registered as <code>MBean</code> and can be accessed from
 any JMX management console. The simplest way is to use standard <code>jconsole</code>
 that comes with JDK as it also provides ability to view any node parameter
 as a graph.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#addresses()">addresses</a></strong>()</code>
<div class="block">Gets collection of addresses this node is known by.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#attribute(java.lang.String)">attribute</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Gets a node attribute.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#attributes()">attributes</a></strong>()</code>
<div class="block">Gets all node attributes.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#consistentId()">consistentId</a></strong>()</code>
<div class="block">Gets consistent globally unique node ID.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#hostNames()">hostNames</a></strong>()</code>
<div class="block">Gets collection of host names this node is known by.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#id()">id</a></strong>()</code>
<div class="block">Gets globally unique node ID.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#isClient()">isClient</a></strong>()</code>
<div class="block">Tests whether or not this node is connected to cluster as a client.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#isDaemon()">isDaemon</a></strong>()</code>
<div class="block">Tests whether or not this node is a daemon.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#isLocal()">isLocal</a></strong>()</code>
<div class="block">Tests whether or not this node is a local node.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/ignite/cluster/ClusterMetrics.html" title="interface in org.apache.ignite.cluster">ClusterMetrics</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#metrics()">metrics</a></strong>()</code>
<div class="block">Gets metrics snapshot for this node.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#order()">order</a></strong>()</code>
<div class="block">Node order within grid topology.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/ignite/lang/IgniteProductVersion.html" title="class in org.apache.ignite.lang">IgniteProductVersion</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/ignite/cluster/ClusterNode.html#version()">version</a></strong>()</code>
<div class="block">Gets node version.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="id()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>id</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;id()</pre>
<div class="block">Gets globally unique node ID. A new ID is generated every time a node restarts.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Globally unique node ID.</dd></dl>
</li>
</ul>
<a name="consistentId()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>consistentId</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;consistentId()</pre>
<div class="block">Gets consistent globally unique node ID. Unlike <a href="../../../../org/apache/ignite/cluster/ClusterNode.html#id()"><code>id()</code></a> method,
 this method returns consistent node ID which survives node restarts.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Consistent globally unique node ID.</dd></dl>
</li>
</ul>
<a name="attribute(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>attribute</h4>
<pre>@Nullable
&lt;T&gt;&nbsp;T&nbsp;attribute(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Gets a node attribute. Attributes are assigned to nodes at startup
 via <a href="../../../../org/apache/ignite/configuration/IgniteConfiguration.html#getUserAttributes()"><code>IgniteConfiguration.getUserAttributes()</code></a> method.
 <p>
 The system adds the following attributes automatically:
 <ul>
 <li><code>{@link System#getProperties()}</code> - All system properties.</li>
 <li><code>{@link System#getenv(String)}</code> - All environment properties.</li>
 <li>All attributes defined in <code>IgniteNodeAttributes</code></li>
 </ul>
 <p>
 Note that attributes cannot be changed at runtime.</div>
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>T</code> - Attribute Type.</dd><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - Attribute name. <b>Note</b> that attribute names starting with
      <code>org.apache.ignite</code> are reserved for internal use.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Attribute value or <code>null</code>.</dd></dl>
</li>
</ul>
<a name="metrics()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>metrics</h4>
<pre><a href="../../../../org/apache/ignite/cluster/ClusterMetrics.html" title="interface in org.apache.ignite.cluster">ClusterMetrics</a>&nbsp;metrics()</pre>
<div class="block">Gets metrics snapshot for this node. Note that node metrics are constantly updated
 and provide up to date information about nodes. For example, you can get
 an idea about CPU load on remote node via <a href="../../../../org/apache/ignite/cluster/ClusterMetrics.html#getCurrentCpuLoad()"><code>ClusterMetrics.getCurrentCpuLoad()</code></a>
 method and use it during <a href="../../../../org/apache/ignite/compute/ComputeTask.html#map(java.util.List, T)"><code>ComputeTask.map(List, Object)</code></a> or during collision
 resolution.
 <p>
 Node metrics are updated with some delay which is directly related to heartbeat
 frequency. For example, when used with default
 <a href="../../../../org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.html" title="class in org.apache.ignite.spi.discovery.tcp"><code>TcpDiscoverySpi</code></a> the update will happen every <code>2</code> seconds.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Runtime metrics snapshot for this node.</dd></dl>
</li>
</ul>
<a name="attributes()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>attributes</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;attributes()</pre>
<div class="block">Gets all node attributes. Attributes are assigned to nodes at startup
 via <a href="../../../../org/apache/ignite/configuration/IgniteConfiguration.html#getUserAttributes()"><code>IgniteConfiguration.getUserAttributes()</code></a> method.
 <p>
 The system adds the following attributes automatically:
 <ul>
 <li><code>{@link System#getProperties()}</code> - All system properties.</li>
 <li><code>{@link System#getenv(String)}</code> - All environment properties.</li>
 <li>All attributes defined in <code>IgniteNodeAttributes</code></li>
 </ul>
 <p>
 Note that attributes cannot be changed at runtime.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>All node attributes.</dd></dl>
</li>
</ul>
<a name="addresses()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addresses</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;addresses()</pre>
<div class="block">Gets collection of addresses this node is known by.
 <p>
 If <a href="../../../../org/apache/ignite/configuration/IgniteConfiguration.html#getLocalHost()"><code>IgniteConfiguration.getLocalHost()</code></a> value isn't <code>null</code> node will try to use that
 address for all communications and returned collection will contain only that address.
 If it is <code>null</code> then local wildcard address will be used, and Ignite
 will make the best effort to supply all addresses of that node in returned collection.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Collection of addresses.</dd></dl>
</li>
</ul>
<a name="hostNames()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hostNames</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;hostNames()</pre>
<div class="block">Gets collection of host names this node is known by.
 <p>
 If <a href="../../../../org/apache/ignite/configuration/IgniteConfiguration.html#getLocalHost()"><code>IgniteConfiguration.getLocalHost()</code></a> value isn't <code>null</code> node will try to use
 the host name of that resolved address for all communications and
 returned collection will contain only that host name.
 If that host name can not be resolved then ip address returned by method <a href="../../../../org/apache/ignite/cluster/ClusterNode.html#addresses()"><code>addresses()</code></a> is used.
 <p>
 If <a href="../../../../org/apache/ignite/configuration/IgniteConfiguration.html#getLocalHost()"><code>IgniteConfiguration.getLocalHost()</code></a> value is <code>null</code> then local wildcard address will be used,
 and this method returns host names of all addresses of that node.
 <p>
 Note: the loopback address will be omitted in results.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Collection of host names.</dd></dl>
</li>
</ul>
<a name="order()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>order</h4>
<pre>long&nbsp;order()</pre>
<div class="block">Node order within grid topology. Discovery SPIs that support node ordering will
 assign a proper order to each node and will guarantee that discovery event notifications
 for new nodes will come in proper order. All other SPIs not supporting ordering
 may choose to return node startup time here.
 <p>
 <b>NOTE</b>: in cases when discovery SPI doesn't support ordering Ignite cannot
 guarantee that orders on all nodes will be unique or chronologically correct.
 If such guarantee is required - make sure use discovery SPI that provides ordering.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Node startup order.</dd></dl>
</li>
</ul>
<a name="version()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>version</h4>
<pre><a href="../../../../org/apache/ignite/lang/IgniteProductVersion.html" title="class in org.apache.ignite.lang">IgniteProductVersion</a>&nbsp;version()</pre>
<div class="block">Gets node version.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Node version.</dd></dl>
</li>
</ul>
<a name="isLocal()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLocal</h4>
<pre>boolean&nbsp;isLocal()</pre>
<div class="block">Tests whether or not this node is a local node.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd><code>True</code> if this node is a local node, <code>false</code> otherwise.</dd></dl>
</li>
</ul>
<a name="isDaemon()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDaemon</h4>
<pre>boolean&nbsp;isDaemon()</pre>
<div class="block">Tests whether or not this node is a daemon.
 <p>
 Daemon nodes are the usual cluster nodes that participate in topology but are not
 visible on the main APIs, i.e. they are not part of any cluster group. The only
 way to see daemon nodes is to use <a href="../../../../org/apache/ignite/cluster/ClusterGroup.html#forDaemons()"><code>ClusterGroup.forDaemons()</code></a> method.
 <p>
 Daemon nodes are used primarily for management and monitoring functionality that
 is build on Ignite and needs to participate in the topology, but should be
 excluded from the "normal" topology, so that they won't participate in the task execution
 or data grid operations.
 <p>
 Application code should never use daemon nodes.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd><code>True</code> if this node is a daemon, <code>false</code> otherwise.</dd></dl>
</li>
</ul>
<a name="isClient()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isClient</h4>
<pre>boolean&nbsp;isClient()</pre>
<div class="block">Tests whether or not this node is connected to cluster as a client.
 <p>
 Do not confuse client in terms of
 discovery <a href="../../../../org/apache/ignite/spi/discovery/DiscoverySpi.html#isClientMode()"><code>DiscoverySpi.isClientMode()</code></a> and client in terms of cache
 <a href="../../../../org/apache/ignite/configuration/IgniteConfiguration.html#isClientMode()"><code>IgniteConfiguration.isClientMode()</code></a>. Cache clients cannot carry data,
 while topology clients connect to topology in a different way.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd><code>True</code> if this node is a client node, <code>false</code> otherwise.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/apache/ignite/configuration/IgniteConfiguration.html#isClientMode()"><code>IgniteConfiguration.isClientMode()</code></a>, 
<a href="../../../../org/apache/ignite/Ignition.html#isClientMode()"><code>Ignition.isClientMode()</code></a>, 
<a href="../../../../org/apache/ignite/spi/discovery/DiscoverySpi.html#isClientMode()"><code>DiscoverySpi.isClientMode()</code></a></dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ClusterNode.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em>Ignite - In-Memory Data Fabric</em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/ignite/cluster/ClusterMetrics.html" title="interface in org.apache.ignite.cluster"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/ignite/cluster/ClusterStartNodeResult.html" title="interface in org.apache.ignite.cluster"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/ignite/cluster/ClusterNode.html" target="_top">Frames</a></li>
<li><a href="ClusterNode.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px">                                     <tr>                                         <td>                                             <table style="padding-left: 0; margin: 0">                                                 <tbody style="padding: 0; margin: 0">                                                     <tr style="padding: 0; margin: 0">                                                         <td>                                                             <a target=_blank href="https://apache.org/projects/ignite.html"><nobr>2015 Copyright &#169; Apache Software Foundation</nobr></a>                                                         </td>                                                     </tr>                                                 </tbody>                                             </table>                                         </td>                                         <td width="100%" align="right" valign="center">                                             <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a>                                             <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>                                         </td>                                     </tr>                                     <tr>                                         <td colspan="2" valign="top" align="left">                                             <table style="padding-left: 0; margin: 0">                                                 <tbody style="padding: 0; margin: 0">                                                     <tr style="padding: 0; margin: 0">                                                         <td>                                                             <b>Ignite Fabric</b>                                                         </td>                                                         <td>:&nbsp;&nbsp;                                                             ver. <strong>1.5.0-b1</strong>                                                         </td>                                                     </tr>                                                     <tr style="padding: 0; margin: 0">                                                         <td>                                                             <b>Release Date</b>                                                         </td>                                                         <td>:&nbsp;&nbsp;                                                             December 1 2015                                                         </td>                                                     </tr>                                                 </tbody>                                             </table>                                         </td>                                     </tr>                                     </table></small></p>
</body>
</html>
