Configuration Options to Use Specific Ports and Network Interfaces
TIBCO ActiveSpaces leverages TIBCO FTL internally to aid in connecting the different TIBCO ActiveSpaces processes so that they can communicate over the network. In certain cases, it may be desirable to specify additional configuration information when initially setting up the data grid processes to help influence what ports and network interfaces should be chosen when the processes are started.
For example, a TIBCO ActiveSpaces client application may need to connect to a TIBCO ActiveSpaces tibdgproxy that is running on a server which has a firewall. In that case, a network administrator may need to open a specific port or ports in the firewall so that the TCP connections can be made to the tibdgproxy running behind the firewall. After the tibdgproxy is started, it reads from its data grid configuration what port it should bind to when listening for incoming TCP connections to ensure that traffic can pass through the firewall.
Configure Ports
Regarding ports, the configuration option proxy_client_listen_port can be specified when creating a grid or proxy. This is the port that a proxy binds to when listening for incoming TCP connections. When specified at the grid level, all proxies inherit this value and listen for clients on this port.
grid create copyset_size=1 proxy_client_listen_port=8890 proxy create p1
This will work as long as there is only one proxy running on each machine. If two proxies are started on the same machine and both try to bind to port 8890, the second proxy will fail to start due to an error. To avoid this, override the configuration option at the proxy level when creating a specific proxy to override the listen port specified at the grid level.
proxy create proxy_client_listen_port=8891 p2
Configure Network Interfaces
Regarding network interfaces, a similar concept applies to the configuration option proxy_client_listen_subnet_mask. This can be specified at both the grid and proxy level to control which network interface the proxy binds to when listening for connections from clients. If a machine has multiple network interfaces, a specific subnet mask can be provided in a standard CIDR notation to control which interface should be selected. When specified at the grid level, all proxies inherit this value and attempt to use the specified subnet mask.
grid create copyset_size=1 proxy_client_listen_subnet_mask=10.0.1.0/24 proxy create p3
If there is a need to override this value for a specific proxy, it can also be specified at the proxy level. The options for proxy ports and proxy listen subnet masks can be combined at both the grid and proxy level.
proxy create proxy_client_listen_subnet_mask=10.0.2.0/24 p4 proxy create proxy_client_listen_subnet_mask=10.0.2.0/24 proxy_client_listen_port=8892 p5
Configure Internal Subnet Masks
For internal communication between the TIBCO ActiveSpaces server processes (tibdgproxy, tibdgnode, and tibdgkeeper), it may also be desirable to specify the subnet mask to be used for this internal communication between server processes by using the configuration option grid_internal_subnet_mask. This option is different than the other configuration options described because it does not influence the client to proxy communication. It also can only be specified at the grid level.
grid create copyset_size=1 grid_internal_subnet_mask=10.0.10.0/24
Setting this configuration option will cause all communication between proxy, node, and state keeper processes to occur on the specified interface. This option can also be combined with the two proxy configuration options proxy_client_listen_subnet_mask and proxy_client_listen_port.
grid create copyset_size=1 proxy_client_listen_subnet_mask=10.0.1.0/24 proxy_client_listen_port=8890 grid_internal_subnet_mask=10.0.10.0/24
