Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

OdysseusNet allows the configuration of each OdysseusNode using a separate XML-based configuration file. This file is located in the ODYSSEUS_HOME folder and is called odysseusNet.conf. With the activation of OdysseusNet, the contents of the file are read once (if the file did not exist, it will be created with default values). Further changes to the file during execution are not applied (Odysseus has to be started again, then). The configuration of OdysseusNet is based on key-value-pairs,whereas each key has to be unique. Developers can add/reuse own configuration keys (and values) described in Configuration for developers.

The following text is an example of such a OdysseusNet configuration file:

Excerpt
Code Block
languagexml
firstline1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>OdysseusNet Property File edit only if you know what you are doing</comment>
<entry key="net.networkoperatorgenerator">websocket</entry>
<entry key="net.node.default.username">System</entry>
<entry key="net.nodemanager.storetype">filestore</entry>
<entry key="net.nodemanager.filename">C:/Users/Marco/odysseus/store/nodes.store</entry>
<entry key="net.node.communicator">rest</entry>
<entry key="net.querydistribute.maxport">20000</entry>
<entry key="net.remoteUpdate">false</entry>
<entry key="net.discoverer.name"
>BroadcastOdysseusNodeDiscoverer<
>BroadcastOdysseusNodeDiscoverer,IPListOdysseusNodeDiscoverer</entry>
<entry key="net.source.lifetime">3600000</entry>
<entry key="net.querydistribute.minport">10000</entry>
<entry key="net.node.preserveid">false</entry>
<entry key="net.
data.lifetime">3600000</entry> <entry key="net.
autostart"
>false<
>true</entry>
<entry key="net.querydistribute.randomport">false</entry>
<entry key="net.dd.local">true</entry>
<entry key="net.node.group">OdysseusGroup</entry>
<entry key="net.querydistribute.partition">querycloud</entry>
<entry key="net.querydistribute.allocation">querycount</entry>
<entry key="net.node.name">OdysseusNode_1554</entry>
<entry key="net.discoverer.interval">5000</entry>
<entry key="net.dd.checkinterval">30000</entry>
<entry key="net.logging.receive">false</entry>
<entry key="net.connect.selector.name">GroupSelectorComponent</entry>
</properties>

Each entry represents one key-value pair. By default, the following configuration settings are supported:

KeyDefault valueDescriptionSee
net.node.nameOdysseusNodeHuman-readable non-unique name of the OdysseusNode. If value is OdysseusNode, a randomly generated 4-digit number is added to the name (e.g., OdysseusNode_1234).

OdysseusNet

net.node.groupOdysseusGroupName of the group the node is participating in. The node connects only to other nodes with the same NodeGroup. Groups are only considered when net.connect.selector.name = GroupSelectorComponentOdysseusNet
net.node.preserveidfalseIf true, the generated nodeID is saved and restored after each start of OdysseusNet.
net.autostart
  
falseIf true, OdysseusNet is actived immediately when Odysseus starts.OdysseusNet
net.remoteUpdate
 
falseIf true, the node allows update/restart/reinstall-signals from remote nodes to be processed (do not set to true if using OdysseusStudio!). This setting is useful e.g., for RaspberryPi and remote updates.Update/Restart/Reinstall
 
net.logging.receive
 
falseIf true, the node receives and prints log messages from remote nodes.Logging
 
net.querydistribute.minport
 
10000Sets the minimum port number which is allowed to be used in transmitting data stream between distributed query parts (useful for configuring firewalls).

Distributing Queries

Query distribution strategies

 

net.querydistribute.maxport
 
20000Sets the maximum port number which is allowed to be used in transmitting data stream between distributed query parts (useful for configuring firewalls).

Distributing Queries

Query distribution strategies

 

net.querydistribute.randomport
 
falseIf true, a port is randomly selected between net.querydistribute.minport and net.querydistribute.maxport. If false, free ports are selected in sequence (beginning with net.querydistribute.minport).

Distributing Queries

Query distribution strategies

net.querydistribute.preprocess<empty>Comma-separated list of strategies of preprocessors, which are used during query distribution if the user had not specified one in the query.

Distributing Queries

Query distribution strategies

 

net.querydistribute.partition
 
querycloudDefault strategy for partitioning queries during query distribution if the user had not specified one in the query.

Distributing Queries

Query distribution strategies

net.querydistribute.modification<empty>Comma-separated list of strategies of modifications, which are used during query distribution if the user had not specified one in the query.

Distributing Queries

Query distribution strategies

 

net.querydistribute.allocation
 
querycountDefault strategy for allocating query parts to nodes if the user had not specified one in the query.

Distributing Queries

Query distribution strategies

net.querydistribute.postprocessmergeComma-separated list of strategies of postprocessors, which are used during query distribution if the user had not specified one in the query.

Distributing Queries

Query distribution strategies

 

net.discoverer.interval
 
5000Time interval in milliseconds in which the node discoverer checks for new OdysseusNodes in the network.Discovery of OdysseusNodes
 
net.discoverer.name
 
BroadcastOdysseusNodeDiscoverer
Name of the discoverer to be used to detect other nodes in the network.Discovery of OdysseusNodes
 net.data.lifetime  
net.source.lifetime
  
3600000
Time in milliseconds in which a source definition is distributed across the network.Distributing data sources
net.dd.local
 
trueIf true, the node stores distributed data locally.Distribution of (static) data
 
net.dd.checkinterval
 
30000Time interval in milliseconds in which the node checks for invalid distributed data (e.g., exceeded lifetimes).Distribution of (static) data
 
net.connect.selector.name
  
GroupSelectorComponentName of the selector which decides which connections the node has to establish.Connection to OdysseusNodes

If OdysseusNet reads a configuration setting and the value is somewhat invalid, it uses the default value.