Node Lifecycle

Life of a Node

StreamBase Runtime nodes have a defined lifecycle with four states[1]:

  • Installed

  • Started

  • Stopped

  • Removed

Installing a node

You must install a node containing your EventFlow or LiveView fragment in order to run it. If yours is the first StreamBase Runtime node installed in the current subnet, then the installation initiates StreamBase Runtime services. If other nodes are already started, your node installation joins the others in the subnet's existing Runtime fabric. As soon as a node is successfully installed, it becomes discoverable.

Starting a node

Once a node is installed, you can start the node. This starts all fragments hosted in that node to start running. StreamBase EventFlow fragments cannot accept tuples on their Input Streams until their containing node has been both installed and started. LiveView fragments cannot accept queries to their configured tables until their nodes have been installed and started.

Stopping a node

Stopping a node halts or pauses the fragments running in that node. This stops an EventFlow fragment from receiving or processing tuples, and stops a LiveView fragment from accepting queries and displaying their results. A stopped node is still discoverable in the subnet's StreamBase Runtime fabric.

Removing a node

The final stage in each node's life is to remove the node from the StreamBase Runtime fabric, which removes it from being discoverable.

Node Lifecycle in Studio

Installing and starting a node in Studio

In StreamBase Studio, you run an EventFlow fragment with the Run button in Studio's top toolbar, or by right-clicking on the top-level module's canvas and selecting Run AsEventFlow fragment.

You run a LiveView fragment with the green Run button on the top right of the LiveView Project Viewer, or by selecting the fragment's project in the Project Explorer view, right-clicking, and selecting Run AsLiveView project.

When you run a fragment in Studio, Studio handles the installation of your fragment into a node and starting it. You can run the same fragment multiple times in Studio, and you can run different fragments and fragment types at the same time.

Studio assigns a nodename based on a configurable naming pattern. The default cluster name for Studio-initiated nodes is the system login name in effect when Studio started.

Studio installs nodes into the same StreamBase Runtime fabric that exists on the current subnet. If Studio starts the first node in the subnet, that initiates StreamBase Runtime services for the subnet.

Stopping a node in Studio

Stop an EventFlow fragment node in Studio by clicking the red Stop button in Studio's toolbar. Stop a LiveView fragment node by clicking the red and blue Stop button.

When you stop running a fragment in Studio, Studio stops but does not remove the node. This allows Studio to reuse the same node for the next in-Studio run of the same fragment.

Removing a node in Studio

Studio keeps Studio-installed nodes in their Installed state, even if none of them are currently started and running.

On exit, Studio stops and removes all nodes it installed since the beginning of that Studio session.

You can also stop and remove nodes manually using buttons on the top right side of the Clusters view. The default display in the Clusters view is the set of nodes started by Studio (plus any nodes installed outside of Studio using the same cluster name). You can optionally set the view to display all nodes in the current subnet.

Node Lifecycle at the Command Line

To deploy an EventFlow fragment outside of Studio, use the epadmin command to install and start a node containing your fragment. On Windows, you must use a StreamBase Command Prompt. On macOS and Linux, use a shell that has been configured for StreamBase.

Installing a node with epadmin

Unlike in Studio, you must first create a separate StreamBase project of type StreamBase Application, configure it to treat your fragment as a dependency, and then create an application archive file that encapsulates the StreamBase Application. It is this application archive file that you install into a node with epadmin. This process is described in Deploy with epadmin.

Install a node with a command like the following. This example assumes you have navigated to the target subfolder of the Studio workspace project folder for your StreamBase Application project.

epadmin install node nodename=A.sbuser application=deployment-application.zip
    nodedirectory=~/tmp/nodedirs

Notes:

  • Assigning a single letter name for nodes is a documentation convention for simplicity and clarity. Your site might have a naming convention for nodes, or you can use the same names that Studio assigns.

  • To avoid confusion, use the same cluster name that Studio uses, which is your login name by default. This places both Studio-launched and epadmin-launched nodes in the same cluster so that you can administer all nodes together.

  • The application archives generated by Studio generally have much longer names than shown here.

  • The tilde convention to designate your home directory is not recognized on Windows by default. You can use %HOMEDRIVE%%HOMEDIR% instead, or just use the full path to the folder of interest.

Starting a node with epadmin

Once the node is installed, issue a command like the following to start the node:

epadmin servicename=A.sbuser start node

Use the nodename assigned with node install as the servicename for node start and other epadmin commands.

Stopping a node with epadmin

Stop a node with a command like the following:

epadmin servicename=A.sbuser stop node
Removing a node with epadmin

Stop a node with a command like the following:

epadmin servicename=A.sbuser remove node

 



[1] There is a fifth state, Quiesced, that is only used as part of supporting systemD startup scripts on Linux.