Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved


Chapter 16 Basic Deployment : Configuring Cluster Discovery and Internal Communication

Configuring Cluster Discovery and Internal Communication
When you add a CDD file and select Cache OM type, you must configure how the members of the cache cluster discover each other at runtime and communicate with each other once the cluster is established.
To Configure a TIBCO BusinessEvents DataGrid Cluster (Metaspace)
1.
2.
be.engine.cluster.as.discover.url
be.engine.cluster.as.listen.url
See the following sections for details on configuring these properties:
3.
a.
      be.mm.cluster.as.listen.url MMHostIP: Port
Specify the IP of the computer hosting the MM server, and an unused port.
b.
Add the value of the be.mm.cluster.as.listen.url property to the list of addresses in the be.engine.cluster.as.discover.url property, which should be present at the cluster level (so the value is identical for all potential cluster members).
The discover URL for well-known address configuration uses the following format:
   tcp://ip:port[;ip:port]*
Configuring the TIBCO BusinessEvents DataGrid Discover URL
When a cluster starts up, and also when new members join a cluster, a discovery process enables the members to discover each other. The discover URL specifies how an engine (node) listens for discovery requests from nodes attempting to join the cluster.
After the discovery is complete, the members communicate internally using a listen URL (explained in Configuring the TIBCO BusinessEvents DataGrid Listen URL).
Two types of discovery are available:
Configuration for both discovery methods is explained as follows.
A Core Engine is a node in the metaspace.
If No Other Cluster Members are Started
If a newly started node does not discover any running cluster nodes, the behavior is different depending on the type of discovery used:
Multicast (PGM) Cluster Member Discovery
The discover URL for multicast discovery uses PGM (Pragmatic General Multicast) protocol.
The discovery property is be.engine.cluster.as.discover.url. For multicast discovery, the value is a URL with the following format:
tibpgm://destinationPort/network/
The default value for the URL equates to the following value:
//7888/;239.8.8.9/
Specify the parameters as follows.
The format is as follows: interface;multicast group address
The value for interface is unique to a node. It must also be the same in both the discovery and the listen URLs for a node. If there are multiple interfaces on one machine, specify the interface you want to use and do not rely on the default value.
The value for multicast group address must be the same on all machines in the cluster.
The default value for interface is the first available interface provided by the operating system hosts file for the machine.
Note  If the desired interface is not listed in the hosts file then PGM picks the first available interface in the file. (On most operating systems, this file is called the /etc/hosts file.) If the first interface is the loopback interface (127.0.0.1) then PGM fails to start. In this case you would see a stacktrace exception in the log file such as the following:
Unicast (Well-Known Address) Cluster Member Discovery
If you cannot or do not wish to use multicast discovery in your environment, then configure unicast discovery, also known as "well-known address" or WKA discovery. These "well-known addresses" enable a newly started node to discover existing members. Unicast discovery uses the TCP protocol.
The discovery property is be.engine.cluster.as.discover.url. For unicast discovery, the value is a semicolon-separated list comprising a sub-set of all the listen URLs (which are different for each PU), using this format:
tcp://ip:port[;ip:port]*/
One cluster node in the WKA list must be running at all times  At least one cluster node specified in the well-known address list must be running at all times, so that other new members can join the cluster (metaspace). If all nodes specified in the well-known address list stop, then other nodes that are still running continue to function, but they print warnings to the console and no new members can connect to this cluster.
For WKA discovery, make discover URL a cluster-level property and listen URL a PU-level property  The discover URL property (be.engine.cluster.as.discover.url) must be present and configured identically for all potential cluster members. Therefore add this property at the cluster level of the CDD file. The listen URL property (be.engine.cluster.as.listen.url) must be present and configured differently for each possible cluster member. Therefore add this property at the PU level.
Configuring the TIBCO BusinessEvents DataGrid Listen URL
The listen URL is used for direct communication between the members of the metaspace. It is configured the same way for multicast and for unicast discovery (see Configuring the TIBCO BusinessEvents DataGrid Discover URL). The listen URL value must be different for each cluster member, so configure it at the PU level.
The listen URL uses this format:
tcp://interface:port[-EndPort |*]/
The cluster member binds to the specified interface and the specified port when creating the TCP socket. Specify the parameters as follows.
The value for interface must be the same in both the discovery and the listen URLs for a node. If there are multiple interfaces on one machine, specify the interface you want to use and do not rely on the default value.
The default value for interface is the first available interface provided by the operating system for the machine.
tcp://interface:6000/
Multiple Nodes on One Machine
If multiple nodes (engines) are running on one machine, identify each uniquely. Use the same value for interface, but a different value for port for each node.
Auto-incrementing Within a Range of Ports
If a machine has blocked some ports in the default range, or if you want to use a different range, you can configure the listen URL to start with a specified IP address and port, and optionally provide an upper limit. If the specified port is not available, TIBCO API Exchange Gateway auto-increments the port until it finds an available port, up to the specified upper limit, if any. To specify a specific range use this format:
tcp://interface:Port-EndPort/
For example, given the following listen URL, TIBCO API Exchange Gateway attempts to open port 8000 and if it is not available it tries the next port number, until it finds an available port, up to 9000 (inclusive). If none is available, it keeps retrying. Make some ports in the specified range available so that the cluster nodes can start.
tcp://interface:8000-9000/
To specify a range with the upper limit of unsigned short minus one, use this format:
tcp://interface:Port-*/
 

Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved