| // Licensed to the Apache Software Foundation (ASF) under one or more |
| // contributor license agreements. See the NOTICE file distributed with |
| // this work for additional information regarding copyright ownership. |
| // The ASF licenses this file to You under the Apache License, Version 2.0 |
| // (the "License"); you may not use this file except in compliance with |
| // the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| = Understanding Configuration |
| |
| This chapter explains different ways of setting configuration parameters in an Ignite cluster. The chapter covers the most |
| ubiquitous approaches for Java and C++ applications. |
| |
| [NOTE] |
| ==== |
| [discrete] |
| === Configuring .NET, Python, Node.JS and other programming languages |
| |
| * .NET developers: refer to the link:net-specific/net-configuration-options[Ignite.NET Configuration] section |
| * Developers of Python, Node.JS, and other programming languages: use this page to configure your |
| Java-powered Ignite cluster and link:thin-clients/getting-started-with-thin-clients[thin clients] section to set up |
| your language-specific applications that will be working with the cluster. |
| ==== |
| |
| == Overview |
| |
| You can specify custom configuration parameters by providing an instance of the javadoc:org.apache.ignite.configuration.IgniteConfiguration[] class to Ignite when starting the node. |
| You can set the parameters either programmatically or via an XML configuration file. |
| These 2 ways are fully interchangeable. |
| |
| The XML configuration file is a Spring Bean definition file that must contain the `IgniteConfiguration` bean. |
| When starting a node from the command line, pass the configuration file as a parameter to the `ignite.sh|bat` script, as follows: |
| |
| [source,shell] |
| ---- |
| ignite.sh ignite-config.xml |
| ---- |
| |
| If you don't specify a configuration file, the default file `{IGNITE_HOME}/config/default-config.xml` is used. |
| |
| == Spring XML Configuration |
| |
| To create a configuration in a Spring XML format, you need to define the |
| `IgniteConfiguration` bean and set the parameters that you want to be different from the default. For detailed information on how to use XML Schema-based configuration, see the |
| https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html[official |
| Spring documentation]. |
| |
| In the example below, we create an `IgniteConfiguration` bean, set the `workDirectory` property, and configure a link:data-modeling/data-partitioning#partitioned[partitioned cache]. |
| |
| [source,xml] |
| ---- |
| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <beans xmlns="http://www.springframework.org/schema/beans" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation=" |
| http://www.springframework.org/schema/beans |
| http://www.springframework.org/schema/beans/spring-beans.xsd"> |
| |
| <bean class="org.apache.ignite.configuration.IgniteConfiguration"> |
| <property name="workDirectory" value="/path/to/work/directory"/> |
| |
| <property name="cacheConfiguration"> |
| <bean class="org.apache.ignite.configuration.CacheConfiguration"> |
| <!-- Set the cache name. --> |
| <property name="name" value="myCache"/> |
| <!-- Set the cache mode. --> |
| <property name="cacheMode" value="PARTITIONED"/> |
| <!-- Other cache parameters. --> |
| </bean> |
| </property> |
| </bean> |
| </beans> |
| ---- |
| |
| == Programmatic Configuration |
| |
| Create an instance of the `IgniteConfiguration` class and set the required |
| parameters, as shown in the example below. |
| |
| [tabs] |
| -- |
| |
| tab:Java[] |
| [source,java] |
| ---- |
| include::{javaCodeDir}/UnderstandingConfiguration.java[tag=cfg,indent=0] |
| ---- |
| |
| See the link:{javadoc_base_url}/org/apache/ignite/configuration/IgniteConfiguration.html[IgniteConfiguration,window=_blank] javadoc for the complete list of parameters. |
| |
| tab:C#/.NET[] |
| [source,csharp] |
| ---- |
| include::code-snippets/dotnet/UnderstandingConfiguration.cs[tag=UnderstandingConfigurationProgrammatic,indent=0] |
| ---- |
| |
| See the https://ignite.apache.org/releases/{version}/dotnetdoc/api/Apache.Ignite.Core.IgniteConfiguration.html[API docs,window=_blank] for details. |
| |
| tab:C++[] |
| [source,cpp] |
| ---- |
| include::code-snippets/cpp/src/setting_work_directory.cpp[tag=setting-work-directory,indent=0] |
| ---- |
| -- |