Versions Compared

Key

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

...

  • Different login services can be defined for each UDMG Server instance on the UDMG Authentication Proxy for the UDMG Admin UI. For example, Service A to access UDMG Server instance A and Service B to access UDMG Server instance B.
    This allows the user to select the UDMG Server instance to use.

    [service]
      [service.Service-A]
        protocol = "http"
        [[service.Service-A.targets]]
          hostname = "Server-A"
          port = 8080
          
      [service.Service-B]
        protocol = "http"
        [[service.Service-B.targets]]
          hostname = "Server-B"
          port = 8080



  • Each login service can have multiple UDMG Server targets that are tried one after the other during the connection request. For example Service-A is setup with Server-A and Server-B as targets.
    This allows to continue using the Service-A session even if Server-A become becomes unavailable.

    [service]
      [service.Service-A]
        protocol = "http"
    
        [[service.Service-A.targets]]
          hostname = "Server-A"
          port = 8080
        [[service.Service-A.targets]]
          hostname = "Server-B"
          port = 8080

...

  • Monitor and display data.

  • Access the database.

  • Generate reports.

Note
titleNote

Connecting to the active instance is recommended for performing transfer-related actions like add, pause, resume, and cancel.


How High Availability Works

...

The mode (status) of a cluster node indicates whether or not it is the cluster node that is currently processing work:

Active

Cluster node currently is performing all file transfers and

the

also the other system processing functions (administration, reporting, …).

It supports the local services and the processing of transfers in server and client modes. 

Passive

Cluster Node is not performing any file transfers but is available to perform the other system processing functions.

Offline

Cluster node is not running or is inoperable and needs to be restarted.


High Availability Start-Up

The following steps describe how a High Availability environment starts up:


Step 1

User starts the Cluster Nodes.

Step 2

Each cluster node reads its server.ini file.

Step 3

Each cluster node locates and connects to the database and retrieves information about the UDMG environment.

Step 4One of the nodes becomes the Active node.
It starts the local services (local FTP, SFTP, ... servers) and starts the processing of transfer requests, both in server mode and client mode.


Note
titleNote

Cluster nodes in Passive mode can perform limited system processing functions.


...

This determination is made as follows:


Step 1

The Active cluster node sends a heartbeat by updating a timestamp in the database.

The heartbeat interval is 10 seconds. It can be adjusted with the 'Heartbeat' parameter:

[controller]
; The frequency at which the heartbeat will be updated
Heartbeat = 10s

Step 2

All Passive cluster nodes check the Active cluster node's timestamp to determine if it is current.

This check runs every 20 seconds. It can be adjusted with the 'HeartbeatCheck' parameter:

[controller]
; The heartbeat to determine if this instance will be probed
HeartbeatCheck = 20s

Step 3

If a Passive cluster node determines that the Active cluster node's timestamp is stale, failover occurs: the Passive cluster node changes the mode of the Active cluster node to Offline and takes over as the Active cluster node. If more than one cluster node is operating in Passive mode, the first cluster node eligible to become Active that determines that the Active cluster node is not running becomes the Active cluster node. A stale cluster node is one whose timestamp is older than 5 minutes.

It can be adjusted with the 'Deadline' parameter:

[controller]
; The deadline to determine if this instance will be active
Deadline = 5m

What To Do If a Failover Occurs

A Passive cluster node taking over as an Active cluster node is referred to as failover. If failover occurs, the event is invisible unless you are using the Active cluster node in a browser.

If you are using the Active cluster node in a browser and the cluster node fails, you will receive a browser error. In this case, take the following steps to continue working:


Step 1

Access the new Active cluster node in your browser. 

This can be achieved by selecting the appropriate service in that UDMG Admin UI login page, provided that each UDMG Server instance is defined as a dedicated login service.

Step 2

If you were adding, deleting, or updating records at the time of the failure, check the record you were working on. Any data you had not yet saved will be lost.


...

The cluster node status is displayed by the background color of the Server Status button.

Node StatusBackground Color
Active

Transparent

Image Modified

Passive

Yellow

Image Modified

Offline

Red

Image Modified

It is also indicated by the "Controller" service Information string:

...


http(s)://serverhost:[Port]/ping




If a cluster node is active, this URL returns the status 200 (OK) and a simple one word content of ACTIVE.
 
If a cluster node is not active, this URL returns the status 403 (Forbidden, cluster node is not active) and lists the actual mode of the cluster node: PASSIVE or OFFLINE.This API is provided without authentication.

Code Block
$ curl -w "http_code=%{http_code}\n" -s http://server-A:9181/ping
ACTIVE
http_code=200$200
$ curl -w "http_code=%{http_code}\n" -s http://server-B:9182/ping
PASSIVE
http_code=403

This API is provided without authentication.

http(s)://serverhost:[Port]/api/sb_healthcheck


This URL returns information about a cluster node:

Code Block
{
    "status": "operational",
    "nodeId": "gateway_1:8080-mft-gw-0",
    "nodeHostname": "gateway_1",
    "nodeIPAddress": "172.99.0.101",
    "nodePort": "8080",
    "nodeStatus": "PASSIVE",
    "nodeUptime": "50h1m56.09356413s",
    "nodeLastUpdate": "2023-11-15T19:03:30.481154Z",
    "nodeLastActiveDate": "2023-11-13T16:57:57.026091Z"
}

This API requires authentication but no specific permissions.

http(s)://serverhost:[Port]/api/sb_mgmt_nodes

This URL returns information about all the cluster nodes:

Code Block
{
    "nodes": [
        {
            "nodeId": "gateway:8080-mft-gw-0",
            "nodeHostname": "gateway",
            "nodeIPAddress": "172.99.0.100",
            "nodePort": "8080",
            "nodeStatus": "ACTIVE",
            "nodeUptime": "16m15.413255244s",
            "nodeLastUpdate": "2023-11-09T15:24:20.562225Z",
            "nodeLastActiveDate": "2023-11-09T15:08:40.105002Z" 
        },
        {
            "nodeId": "gateway_1:8080-mft-gw-0",
            "nodeHostname": "gateway_1",
            "nodeIPAddress": "172.99.0.101",
            "nodePort": "8080",
            "nodeStatus": "PASSIVE",
            "nodeUptime": "16m0.631810433s",
            "nodeLastUpdate": "2023-11-09T15:24:35.289412Z",
            "nodeLastActiveDate": "2023-11-09T14:40:28.491424Z" 
        }
    ]
}

This API requires authentication and the 'administration read' permission.

 This can be used to direct the UDMG Admin UI and REST API requests to the active instance.

...